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