Plugin for Nagios which allows monitoring the internals of WebSphere Application Server.
Start here: InitialConfiguration
Currently, the following items are currently possible to monitor:
MonitorJvmHeapsize
MonitorJdbcConnectionPools
MonitorThreadPools
MonitorLiveSessions
下载地址:http://code.google.com/p/nagios-was/downloads/detail?name=check_was-0.4-bin.tar.gz&can=2&q=
安装:
[root@localhost etc]# cd /usr/local/src/tarbag/
[root@localhost tarbag]#tar zxvf check_was-0.4-bin.tar.gz -C /usr/local/nagios/libexec/check_was
[root@localhost tarbag]#cd /usr/local/nagios/libexec/check_was/
修改check_was程序:
[root@localhost check_was]# vi check_was
#!/bin/sh
PLUGIN_HOME=/usr/local/nagios/libexec/check_was
JAVA_HOME=/opt/IBM/WebSphere/AppServer/java \\这个java是websphere的java不是系统的java.
WAS_HOME=/opt/IBM/WebSphere/AppServer
$JAVA_HOME/bin/java -Dplugin.home="$PLUGIN_HOME" -cp $PLUGIN_HOME/check_was-0.4.jar:$WAS_HOME/runtimes/com.ibm.ws.admin.client_6.1.0.jar:$WAS_HOME
/runtimes/com.ibm.ws.webservices.thinclient_6.1.0.jar:$WAS_HOME
/plugins/com.ibm.ws.security.crypto_6.1.0.jar com.googlecode.nagioswas.Run $* 2> /dev/null
JAVA_HOME指定错误的话会报错:
ERROR - ADMC0053E: 启用 SOAP 连接器安全性时,系统无法创建连接到端口 8881 上的主机 localhost 的 SOAP 连接器。
修改check_was.servers
[root@localhost check_was]# vi check_was.servers
mtw.hostname=localhost
mtw.port=8881
mtw.username=yaoshi
mtw.password=www.yaoshi.com
mtw.securityenabled=true
mtw.truststore=/opt/IBM/WebSphere/AppServer/profiles/server01/etc/trust.p12
mtw.keystore=/opt/IBM/WebSphere/AppServer/profiles/server01/etc/key.p12
mtw.truststorepassword=WebAS\\这个是默认Key的密码.
mtw.keystorepassword=WebAS
mtc.hostname=localhost
mtc.port=8882
mtc.username=yaoshi
mtc.password=www.yaoshi.com
mtc.securityenabled=true
mtc.truststore=/opt/IBM/WebSphere/AppServer/profiles/server02/etc/trust.p12
mtc.keystore=/opt/IBM/WebSphere/AppServer/profiles/server02/etc/key.p12
mtc.truststorepassword=WebAS
mtc.keystorepassword=WebAS
测试
[root@localhost check_was]# ./check_was -s connectionpool -w 80 -c 90 -p mtw
OK - connection pool size: Oracle JDBC Driver 1/10 (10.0%)|oraclejdbcdriver=10.0%;80;90;
结合nagios:
修改websphere主机的nrpe.cfg
command[check_mtw_session]=/usr/local/nagios/libexec/check_was/check_was -s sessions -w 200 -c 400 -p mtw -n mtw*
command[check_mtw_jvm]=/usr/local/nagios/libexec/check_was/check_was -s heapsize -w 80 -c 90 -p mtw
command[check_mtw_jdbc]=/usr/local/nagios/libexec/check_was/check_was -s connectionpool -w 80 -c 90 -p mtw
command[check_mtw_threadpool_WebContainer]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtw -n WebContainer
command[check_mtw_threadpool_ORB.thread.pool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtw -n ORB.thread.pool
command[check_mtw_threadpool_SoapConnectorThreadPool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtw -n SoapConnectorThreadPool
command[check_mtw_threadpool_HAManager.thread.pool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtw -n HAManager.thread.pool
command[check_mtw_threadpool_MessageListenerThreadPool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtw -n MessageListenerThreadPool
command[check_mtw_threadpool_DRSThreadPool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtw -n DRSThreadPool
command[check_mtc_session]=/usr/local/nagios/libexec/check_was/check_was -s sessions -w 200 -c 400 -p mtc -n mtc*
command[check_mtc_jvm]=/usr/local/nagios/libexec/check_was/check_was -s heapsize -w 80 -c 90 -p mtc
command[check_mtc_jdbc]=/usr/local/nagios/libexec/check_was/check_was -s connectionpool -w 80 -c 90 -p mtc
command[check_mtc_threadpool_WebContainer]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtc -n WebContainer
command[check_mtc_threadpool_ORB.thread.pool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtc -n ORB.thread.pool
command[check_mtc_threadpool_SoapConnectorThreadPool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtc -n SoapConnectorThreadPool
command[check_mtc_threadpool_HAManager.thread.pool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtc -n HAManager.thread.pool
command[check_mtc_threadpool_MessageListenerThreadPool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtc -n MessageListenerThreadPool
command[check_mtc_threadpool_DRSThreadPool]=/usr/local/nagios/libexec/check_was/check_was -s threadpool -w 80 -c 90 -p mtc -n DRSThreadPool
修改Nagios 对应websphere的cfg文件:
#SERVER01 MTC
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_SESSIONS
check_command check_nrpe!check_mtw_session
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_JVM_Memery
check_command check_nrpe!check_mtw_jvm
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_JDBC_ConnectionPools
check_command check_nrpe!check_mtw_jdbc
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_threadpool_WebContainer
check_command check_nrpe!check_mtw_threadpool_WebContainer
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_threadpool_ORB.thread.pool
check_command check_nrpe!check_mtw_threadpool_ORB.thread.pool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_threadpool_SoapConnectorThreadPool
check_command check_nrpe!check_mtw_threadpool_SoapConnectorThreadPool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_threadpool_HAManager.thread.pool
check_command check_nrpe!check_mtw_threadpool_HAManager.thread.pool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_threadpool_MessageListenerThreadPool
check_command check_nrpe!check_mtw_threadpool_MessageListenerThreadPool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTW_DRSThreadPool
check_command check_nrpe!check_mtw_threadpool_DRSThreadPool
notifications_enabled 1
}
#SERVER02 MTC
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_SESSIONS
check_command check_nrpe!check_mtc_session
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_JVM_Memery
check_command check_nrpe!check_mtc_jvm
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_JDBC_ConnectionPools
check_command check_nrpe!check_mtc_jdbc
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_threadpool_WebContainer
check_command check_nrpe!check_mtc_threadpool_WebContainer
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_threadpool_ORB.thread.pool
check_command check_nrpe!check_mtc_threadpool_ORB.thread.pool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_threadpool_SoapConnectorThreadPool
check_command check_nrpe!check_mtc_threadpool_SoapConnectorThreadPool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_threadpool_HAManager.thread.pool
check_command check_nrpe!check_mtc_threadpool_HAManager.thread.pool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_threadpool_MessageListenerThreadPool
check_command check_nrpe!check_mtc_threadpool_MessageListenerThreadPool
notifications_enabled 1
}
define service{
use local-service ; Name of service template to use
host_name 192.168.100.99
service_description WAS_MTC_DRSThreadPool
check_command check_nrpe!check_mtc_threadpool_DRSThreadPool
notifications_enabled 1
}
重启nagios跟nrpe客户端
check_was可以监控的内容:
MonitorLiveSessions:
check_was -s sessions -w 200 -c 400 -p <server name> -n <host name>
可以查看某一个JVM的全部sessions也可以指定某一个应用的session 加上-n 应用名
MonitorJvmHeapsize:
check_was -s heapsize -w 80 -c 90 -p <server name>
MonitorJdbcConnectionPools 数据库连接池:
check_was -s connectionpool -w 80 -c 90 -p <server name> -n <connection pool name>
MonitorThreadPools : 线程:
check_was -s threadpool -w 80 -c 90 -p <server name> -n <thread pool name>
线程池数据
WebContainer
ORB.thread.pool
MessageListenerThreadPool
SoapConnectorThreadPool
WebContainer
HAManager.thread.pool
DRSThreadPool