Nagios Monitor Tomcat JMX
1. Download the check_jmx from http://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/check_jmx/details
2. Modify check_jmx to accept the arguments with space
From
RDIR=`dirname $0`
java -cp $RDIR/jmxquery.jar org.nagios.JMXQuery $@
To
RDIR=`dirname $0`
java -cp $RDIR/jmxquery.jar org.nagios.JMXQuery "$@"
3. Copy the files in check_jmx/nagios/plugins to /usr/local/nagios/libexec
4. Run the command to test:
./check_jmx -U service:jmx:rmi:///jndi/rmi://192.168.204.40:8585/jmxrmi -O java.lang:type=Memory -A HeapMemoryUsage -K used -I HeapMemoryUsage -J used -vvvv -w 10000000 -c 100000000
Result: JMX WARNING HeapMemoryUsage.used=78949072{committed=129892352;init=134217728;max=259522560;used=78949072}
5. Go to folder /usr/local/nagios/etc/objects
6. Add following context into file commands.cfg
define command{
command_name check_jmx
command_line /usr/local/nagios/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://$ARG1$:$ARG2$/jmxrmi $ARG3$
}
7. Add following context into file /usr/local/nagios/etc/objects/localhost.cfg
A. JMX Memory Monitor
define service{
use local-service
host_name localhost
service_description 192.168.204.40 Tomcat JMX Memory
check_command check_jmx!192.168.204.40!8585! -O java.lang:type=Memory -A HeapMemoryUsage -K used -I HeapMemoryUsage -J used -vvvv -w 207618048 -c 233570304
}
B. Thread Monitor
define service{
use local-service
host_name localhost
service_description 192.168.204.40 Tomcat JMX Threads
check_command check_jmx!192.168.204.40!8585! -O java.lang:type=Threading -A ThreadCount -w 200 -c 500
}
C. Code Cache Memory
define service{
use local-service
host_name localhost
service_description 192.168.204.40 JMX Code Cache Memory
check_command check_jmx!192.168.204.40!8585! -O java.lang:type=MemoryPool,name="Code Cache" -A Usage -K used
}
D. ActiveSession of Thor Application
define service{
use local-service
host_name localhost
service_description 192.168.204.40 JMX Thor activeSessions
check_command check_jmx!192.168.204.40!8585! -O Catalina:type=Manager,context=/Thor,host=localhost -A activeSessions -vvvv -w 100 -c 200
}
Attention: some tomcat need to check with command
check_jmx!192.168.204.40!8585! -O Catalina:type=Manager,path=/Thor,host=localhost -A activeSessions -vvvv -w 100 -c 200
8. make pnp4nagios paint.
Change the context of /usr/local/nagios/libexec
from
RDIR=`dirname $0`
java -cp $RDIR/jmxquery.jar org.nagios.JMXQuery "$@"
to
RDIR=`dirname $0`
OUTPUT=`java -cp $RDIR/jmxquery.jar org.nagios.JMXQuery "$@"`
EXIT_STATUS=$?
STATUS=`echo $OUTPUT`
VALUE=`echo $OUTPUT | awk '{print $NF}'`
echo "$STATUS | $VALUE"
exit $EXIT_STATUS
Well written .Keep updating
ReplyDeleteDevops Online Course