Simple Shell Script to Monitor Weblogic Resources Configured

Simple Shell Script to Monitor Weblogic Resources Configured

Below is the basic and simple scripting which will monitor weblogic resources usage like jvm usage , connection pools usage , threads usage. This scipt helps a lot in monitoring all weblogic resources configured, admins no need to log into each and every weblogic domain and monitor manually. Schedule a cronjob on daily basis , this will generate a report and sends a attachment report to admin mail. You can add extra Mbeans as per your environment. In this script weblogic commad line utility weblogic.admin is used. You can shcedule a cronjob for frequent monitoring depending on the environment. ————————————————————————————————- 
set -x 
export CLASSPATH=”/weblogic_home/server/lib/weblogic.jar” 
declare -a Port=( 8002 8003 7072 8201) 
declare -a ServerState[] 
declare -a HeapFreeCurrent[] 
declare -a HeapSizeCurrent[] 
declare -a USED[] 
declare -a ServerName[] 
declare -a ObjectName[] 
i=”0″ 
rm /usr/Weblogic_Resource_Usage_Report 
while [ $i -lt 5 ] 
do 
ServerState[$i]=`java weblogic.Admin -url 10.17.19.200:${Port[$i]} -username weblogic -password weblogic GET -pretty -type ServerRuntime -property State |grep -i State |awk ‘{print $2}’` 
HeapFreeCurrent[$i]=`java weblogic.Admin -url 10.17.19.200:${Port[$i]} -username weblogic -password weblogic GET -pretty -type JVMRuntime -property HeapFreeCurrent |grep -i HeapFreeCurrent |awk ‘{print $2}’` 
HeapSizeCurrent[$i]=`java weblogic.Admin -url 10.17.19.200:${Port[$i]} -username weblogic -password weblogic GET -pretty -type JVMRuntime -property HeapSizeCurrent |grep -i HeapSizeCurrent |awk ‘{print $2}’` 
ObjectName[$i]=`java weblogic.Admin -url 10.17.19.200:${Port[$i]} -username weblogic -password weblogic GET -pretty -type JVMRuntime -property ObjectName |grep -i ObjectName |awk ‘{print $2}’` 
USEDJVM=`expr ${HeapSizeCurrent[$i]} – ${HeapFreeCurrent[$i]}` 

USED[$i]=$USEDJVM 
echo “******”${ObjectName[$i]}:${ServerState[$i]}”******” >> /usr/Weblogic_Resource_Usage_Report 
echo “Current heap size allcated to” ${ObjectName[$i]}: ${HeapSizeCurrent[$i]}KB >> /usr/Weblogic_Resource_Usage_Report 
echo “Available heap size on” ${ObjectName[$i]}: ${HeapFreeCurrent[$i]}KB >> /usr/Weblogic_Resource_Usage_Report 
echo “Used heap on” ${ObjectName[$i]} : ${USED[$i]}KB >> /usr/Weblogic_Resource_Usage_Report 
echo “   ” >> Weblogic_Resource_Usage_Report 
echo “      Threads Usage       ” >> /usr/Weblogic_Resource_Usage_Report 
java weblogic.Admin -url 10.17.19.200:${Port[$i]} -username weblogic -password weblogic GET -pretty -type ExecuteQueueRuntime >> /usr/Weblogic_Resource_Usage_Report 
echo “    ” >> /usr/Weblogic_Resource_Usage_Report 
echo “    ” >> /usr/Weblogic_Resource_Usage_Report 
echo “      JDBC Usage       ” >> /usr/Weblogic_Resource_Usage_Report 
java weblogic.Admin -url 10.17.19.200:${Port[$i]} -username weblogic -password weblogic GET -pretty -type JDBCConnectionPoolRuntime >> /usr/Weblogic_Resource_Usage_Report 
echo “    ” >> /usr/Weblogic_Resource_Usage_Report 
echo “    ” >> /usr/Weblogic_Resource_Usage_Report 
echo “———————————————————————————————————————————————————-” >> Weblogic_Resource_Usage_Report 
i=`expr $i + 1` 
done 
uuencode /usr/Weblogic_Resource_Usage_Report WeblogicReport-`date +%m-%d-%y` | mailx -s “Weblogic Monitoring Report – 10.17.19.200 ” kartheek@solaris.com 
————————————————————————————————–