Timbo Site

write something


Weblogic Stuck Thread Monitor

前段时间Weblogic发生了Stuck Thread的情况,运维Dump出来的东西好像都没啥可以看的 接到个写监控程序的任务,发现Stuck Thread到一个指标的话,就开始进行ThreadDump OK,开撸


WLST 与 环境设置

本地安装Windows的Weblogic,安装完成再弄个测试的Domain (看到下面的图让我想到了2012年刚毕业的那个暑假…

安装完成后,会有个叫Weblogic Scripting Tool的东西出现在开始菜单

点开,就是一堆的命令行,设置了PATHCLASSPATH,关联Weblogic中的一些东西,关闭窗口后,这些设置就都回滚了,所以需要去环境变量里面再设置好PATH和CLASSPATH,方便后面直接使用weblogic.WLST启动程序 在Linux环境下的话,也需要设置一下Profile

这个脚本在Weblogic安装目录下的\server\bin,脚本为setWLSEnv.cmd或setWLSEnv.sh


Jython

启动WLST,说是“WebLogic Server Administration Scripting Shell”,实际上就是Jython的Shell啦~ Jython在较新的Windows系统下会认不出系统,解决方法在这 –> 点基我 Jython是我目前写得最别扭的代码,Python的语法,Java的方法和库 由于与Weblogic通信交互的方法全都在Weblogic的这个Shell里面,摸了好长时间cd、pwd跳来跳去,还需要在各种config和runtime中跳来跳去,摸清楚后,写了下面的代码,其中还包含了Coherence的监控

脚本会遍历目标主机上Weblogic中的服务器,检查每台服务器中的线程数状态 当Stuck Thread的数量达到Execute Thread的一半(Ratio = 2)时,则会触发threadDump(),在执行脚本的目录下产生Dump日志 Coherence的监控,则是在Coherence中的Node发生异常,如非“MACHINE-SAFE”的状态,或诸如“ENDANGERED”这类的状态时,会立即写入日志 出现上面的情况,外围再触发消息通知,发送警报通知 脚本里面也可以集成mailx这类的工具,触发某条件后直接发送邮件通知


一些释义:


执行

将这两个文件放在同一目录,在该目录下执行

在目录下会生成Thread_Dump_ServerName.txt的Dump文件,还有Coherence监控发生异常时的coherence_status.txt文件