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 
————————————————————————————————–
