Table des matières

check_jmx

1 / Récupérer le plugin check_jmx vers le lien suivants: http://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/check_jmx/details

2 / Créer le script shell check_jmx

#!/bin/sh
#
# Nagios plugin to monitor Java JMX (http://java.sun.com/jmx)attributes.
# 
RDIR=`dirname $0`
OUTPUT=`/data/jdk/bin/java -cp $RDIR/jmxquery.jar org.nagios.JMXQuery $@`
EXIT_STATUS=$?
STATUS=`echo $OUTPUT`
VALUE=`echo $OUTPUT | awk '{print $NF}'`
echo "$STATUS | $VALUE"
#/app/jdk/bin/java -cp $RDIR/jmxquery.jar org.nagios.JMXQuery $@
#java -cp $RDIR/jmxquery.jar org.nagios.JMXQuery $@

ATTENTION a bien spécifier le chemin vers la commande java chez moi c’est /data/jdk/bin/java

ATTENTION grâce à ce script shell vous pourrez grapher les données JMX dans PNP4Nagios comme moi ou un autre grapheur !

3 / Le rendre executable avec un chmod oug+x

4 / Définir les variables JMX sur la WEBAPP dans le fichier setenv.sh du tomcat

  
-Dcom.sun.management.jmxremote.port=%my.jmx.port% \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false

vi setenv.sh

# JMX
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC
export JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=32 -XX:+AggressiveOpts -XX:-UseParallelGC -XX:+UseTLAB
-XX:-DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:+UseFastAccessorMethods"

ou

# JMX
export JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=2 -XX:+AggressiveOpts -XX:-UseParallelGC -XX:+UseTLAB -XX:-DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:+UseFastAccessorMethods -XX:+PrintGCDetails"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=1620"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"

ATTENTION a spécifier un port JMX “%my.jmx.port%”, moi j’ai utilisé le port 1620 les autres options servent a spécifier une authentification JMX et/ou spécifier un certificat SSL. Personnellement je n’ai ni utilisé d’authentification ni de certificats SSL.

5 / Redémarrer la JVM

4 / Définir les commandes dans le fichier nrpe.cfg

ATTENTION a spécifier l’IP du votre serveur TOMCAT

#### Définition d'un check_nb_thread
command[check_nb_thread_crm]=/usr/local/nagios//libexec/plugin/check_jmx -U service:jmx:rmi:///jndi/rmi://XXX.XXX.XXX.XXX:1620  /jmxrmi -O java.lang:type=Threading -A ThreadCount
#### Définition d'un check_nb_HeapMemoryUsage
command[check_HeapMemoryUsage_crm]=/usr/local/nagios//libexec/plugin/check_jmx -U service:jmx:rmi:///jndi/rmi://XXX.XXX.XXX.XXX:1620/jmxrmi -O java.lang:type=Memory -A HeapMemoryUsage -K used -vvv -w 90000000 -c 100000000
#### Définition d'un check_nb_NonHeapMemoryUsage
command[check_NonHeapMemoryUsage_crm]=/usr/local/nagios//libexec/plugin/check_jmx -U service:jmx:rmi:///jndi/rmi://XXX.XXX.XXX.XXX:1620/jmxrmi -O java.lang:type=Memory -A NonHeapMemoryUsage -K used -vvv -w 50000000 -c 80000000
#### Définition d'un check_nb_GCTime
command[check_GCTime_crm]=/usr/local/nagios//libexec/plugin/check_jmx -U service:jmx:rmi:///jndi/rmi://XXX.XXX.XXX.XXX:1620/jmxrmi -O java.lang:type=GarbageCollector,name=Copy -A CollectionTime -K used -vvv
#### Définition d'un check_nb_GCCount
command[check_GCCount_crm]=/usr/local/nagios//libexec/plugin/check_jmx -U service:jmx:rmi:///jndi/rmi://XXX.XXX.XXX.XXX:1620/jmxrmi -O java.lang:type=GarbageCollector,name=Copy -A CollectionCount -K used -vvv

ENJOY IT !

Jacques-Olivier

nagios/plugins/check_jmx.txt · Dernière modification: 02/03/2017 15:41 (modification externe)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0