weblogic 监控 java开源_WebLogic运行状况监控

在WebLogic的日常监控管理工作中,经常会涉及到检查JVM的各块内存空间使用状况,已经WEB模块的活动会话数等信息来分析当前JVM运行的健康状态以及历史健康记录。以下可以通过一段小脚本将jstat命令以及weblogic.Admin类中获取到的内存使用率及会话数记录到一个文件中,使用图形工具来分析JVM一天的总体运行状况。

以下假设我们的JVM运行在Linux5.4环境中,JVM版本Java HotSpot(TM) 64-Bit Server VM 1.6.0_21,监控脚本如下:

文件名:monitorjvm.sh

####################################################################

####################################################################

JAVA_HOME=/usr/jdk1.6.0_21

export JAVA_HOME

PATH=${JAVA_HOME}/bin:${PATH}

export PATH

WLS_HOME=/bea/wlserver_10.3

export WLS_HOME

CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/jconsole.jar:${WLS_HOME}/server/lib/weblogic.jar:${WLS_HOME}/server/lib/webservices.jar:.

export CLASSPATH

JVM_MONITOR_HOME=/root

export JVM_MONITOR_HOME

cd ${JVM_MONITOR_HOME}

ADM_SERVER_LIST_FILE=wlsAdmServers.properties

sysdate=`date -d today +"%Y%m%d"`

systime=`date -d today +"%H:%M:%S"`

####################################################################

# main script starting....... ###

####################################################################

username=`sed -e '/^username/!d' wlsAdmServers.properties|awk -F= '{print $2}'`

password=`sed -e '/^password/!d' wlsAdmServers.properties|awk -F= '{print $2}'`

urls=(`sed -e '/^url/!d' wlsAdmServers.properties|awk -F= '{print $2}'`)

len=${#urls[*]}

i=0

while [ $i -lt $len ]

do

#### echo "url: ${urls[$i]}" ### this code is only for testing ###

protocal=`echo ${urls[$i]}|awk -F: '{print $1}'`

hostaddress=`echo ${urls[$i]}|awk -F: '{print $2}'|awk -F// '{print $2}'`

hostname=`hostname`

port=`echo ${urls[$i]}|awk -F: '{print $3}'`

tmpmonitorfile=jvmheap_${hostname}_${port}_${sysdate}

tmpmbeanfile=appinfo_${hostaddress}_${port}_${sysdate}

tmpwebmbeanfile=webinfo_${hostaddress}_${port}_${sysdate}

JVM_PID=`/usr/sbin/lsof -i:${port}|grep LISTEN|grep ${hostname}|awk '{print $2}'`

echo "@@@ [PID:${JVM_PID}] of ${hostaddress}:${port} @@@"

if [ "${JVM_PID}" ]; then

if [ ! -f "${tmpmonitorfile}" ]; then

##### touch "${tmpmonitorfile}"

jstat -gcutil ${JVM_PID}|sed "s/^/SYSTIME\t\tPID\t/"|sed "/FGCT/!s/SYSTIME\t/${systime}/g;/FGCT/!s/PID/${JVM_PID}/g" >> ${tmpmonitorfile}

else

jstat -gcutil ${JVM_PID}|grep -v FGCT|sed "s/^/${systime}\t${JVM_PID}\t/" >> ${tmpmonitorfile}

fi

passwordtmp=`ps -ef|grep java|grep ${JVM_PID}|awk '{split($0,m);{for (item in m){if(index(m[item],"password")>0){print m[item]}}}}'|awk -F= '{print $2}'`

if [ -z "${passwordtmp}" ]; then

passwordtmp=${password}

fi

java weblogic.Admin -url ${urls[$i]} -username ${username} -password ${passwordtmp} query -pretty -pattern "*:Name=AdminServer_/web,Type=WebAppComponentRuntime,*"|sed -e '/----------/b' -e '/OpenSessions/b' -e d|sed 2"i\TIME[${systime}]" >> ${tmpwebmbeanfile}

fi

let i++

done

####################################################################

# Game Over ###

####################################################################

另外,需要一个小小的配置文件:wlsAdmServers.properties

username=weblogic

password=weblogic

url=t3://hostname1:7001

url=t3://hostname1:8001

将以上脚本添加到系统定时任务如下:

1-59/5 * * * * /root/monitorjvm.sh >/dev/null 2>&1

在添加crontab定时任务时,如果遇到系统命令找不到或无法识别的时候,试试使用全路径的命令来操作。

在以上的工作全部完成后,可以将生成的数据文件下载到本地,通过一个图形工具生成如下的报表文件,另外可以生成HTML格式的日报或者周报之类的文件,具体什么模样就可以发挥各位的想象力来做了,我做出的报表是这个样子的:

170603_8ucz_94915.jpg

170618_pLJm_94915.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值