首先,我要吐槽一下这个AIX系统,这该死的天杀的玩个锤子象拔蚌的系统,没有自动补齐,删除文本字符也跟linux不一样,这让用惯的linux的我各种蓝瘦。
这个问题是在项目中遇到的,由于没有接触过AIX和Websphere,差点哭了,请大佬帮忙测试的,此处不详细解释只写取值过程
目标:获取websphere的JDBC连接池使用率,连接数,等待的线程数
1.AIX里面好像是jpython,直接放脚本
里面的C254好像是websphere的名字,我也不太懂,按着照猫画虎改一下,下面出现的都照样改一下
perfStr=AdminControl.queryNames( 'type=Perf,process=C251,*') perfObj=AdminControl.makeObjectName( perfStr) srvrStr=AdminControl.queryNames( 'type=Server,name=C251,*') srvrObj=AdminControl.makeObjectName( srvrStr) stats=AdminControl.invoke_jmx( perfObj, 'getStatsObject', [ srvrObj,java.lang.Boolean('true')], ['javax.management.ObjectName', 'java.lang.Boolean']) print stats.getStats('connectionPoolModule').getStats('DB2').getStats('jdbc/dsejianlong').getStatistic('PercentUsed') print stats.getStats('connectionPoolModule').getStats('DB2').getStats('jdbc/dsejianlong').getStatistic('WaitingThreadCount') print stats.getStats('connectionPoolModule').getStats('DB2').getStats('jdbc/dsejianlong').getStatistic('CreateCount') print AdminControl.invoke(AdminControl.queryNames("*:name=dsejianlong,process=C251,*"), "showPoolContents")
2.放shell脚本,获取3个监控项的数据
#!/bin/ksh /WAS9/WebSphere/AppServer/bin/wsadmin.sh -lang jython -f /etc/zabbix/zabbix_agentd/WAS_C254.py > /etc/zabbix/zabbix_agentd/log/WAS_C254_tmp.log cp /etc/zabbix/zabbix_agentd/log/WAS_C254_tmp.log /etc/zabbix/zabbix_agentd/log/WAS_C254.log grep PercentUsed /etc/zabbix/zabbix_agentd/log/WAS_C254.log |awk -F'current=' '{print $2}' |awk -F',' '{print $1}' >/etc/zabbix/zabbix_agentd/log/C254_java_pool_PercentUsed.log grep "Total number of connection" /etc/zabbix/zabbix_agentd/log/WAS_C254.log |awk -F'max/min' '{print $1}' |awk -F'connections:' '{print $2}' |awk -F'(' '{print $1}' | sed 's/ //g' > /etc/zabbix/zabbix_agentd/log/C254_java_pool_connectionnumber.log #add for WaitingThreadCount grep WaitingThreadCount /etc/zabbix/zabbix_agentd/log/WAS_C254.log |awk -F'current=' '{print $2}' |awk -F',' '{print $1}' > /etc/zabbix/zabbix_agentd/log/C254_java_pool_WaitingThreadCoun t.log
3.新建一个log目录,记得在脚本中做好指向
4.在zabbix配置文件末尾添加
# JDBC Pool C254 UserParameter=C254_CJavaPool_PercentUsed.check,cat /etc/zabbix/zabbix_agentd/log/C254_java_pool_PercentUsed.log UserParameter=C254_JavaPool_Connectionnumber.check,cat /etc/zabbix/zabbix_agentd/log/C254_java_pool_connectionnumber.log UserParameter=C254_JavaPool_WaitingThreadCount.check,cat /etc/zabbix/zabbix_agentd/log/C254_java_pool_WaitingThreadCount.log
5.添加定时任务,定时执行
#JDBC C254 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /etc/zabbix/zabbix_agentd/WAS_C254_check.sh
6.web zabbix添加过程省略