Nagios Monitor Tomcat JMX

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

Comments

Post a Comment

Popular posts from this blog

Nginx Proxy & Load Balance & LNMP

Snort+barnyard2+Snorby CentOS 6.5_64 Installation

ORACLE Error