Surveillance de Tomcat avec Zabbix et redémarrage automatique en cas de défaillance

Principe de surveillance

Zabbix utilise un module Java pour collecter les métriques de Tomcat via JMX. Le serveur Zabbix active un poller Java qui communique avec le port 10052 de la passerelle Java, laquelle interroge le port 12346 de Tomcat exposé pour JMX.

Configuration de Tomcat pour JMX

Modifiez le fichier catalina.sh dans le répertoire /opt/tomcat/bin pour activer JMX avec les paramètres suivants :

# Ajouter ces lignes au début du fichier
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JAVA_BIN=$JAVA_HOME/bin
PATH=$PATH:$JAVA_BIN
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
CATALINA_OPTS="-server -Xms256m -Xmx512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12346"

Démarrez Tomcat et vérifiez que le port 12346 est en écoute :

systemctl start tomcat
netstat -tlnp | grep 12346

Configuraton du serveur Zabbix

Pour supporter JMX, compilez Zabbix avec l'option --enable-java. Démarrez ensuite le service Java :

cd /opt/zabbix/sbin/zabbix_java
./startup.sh
netstat -tlnp | grep 10052

Modifiez le fichier de configuration de Zabbix /opt/zabbix/etc/zabbix_server.conf comme suit :

JavaGateway=192.168.1.100
JavaGatewayPort=10052
StartJavaPollers=5

Redémarrez le service Zabbix :

systemctl restart zabbix-server

Import du modèle de surveillance

Importez un modèle personnalisé pour Tomcat via l'interface web de Zabbix : accédez à Configuration > Modèles, puis utilisez la fonction d'importation avec le fichier fourni. Associez ensuite ce modèle à l'hôte Tomcat dans Configuration > Hôtes. Vérifiez que l'indicateur JMX passe au vert.

Configuration du redémarrage automatique

Activez les commandes distantes dans l'agent Zabbix en modifiant /opt/zabbix/etc/zabbix_agentd.conf :

EnableRemoteCommands=1

Redémarrez l'agent :

systemctl restart zabbix-agent

Configurez sudo pour permettre à l'utilisateur zabbix d'exécuter le script de démarrage sans mot de passe. Éditez /etc/sudoers avec visudo :

zabbix  ALL=NOPASSWD: /opt/tomcat/bin/catalina.sh start

Assurez-vous que la directive Defaults requiretty est commentée pour éviter les blocages.

Déclenchement et test

Dans l'interface Zabbix, créez un élément de données pour surveiller le port Tomcat et un déclencheur basé sur son état. Confiugrez une action pour exécuter la commande distante en cas de panne. Pour tester, arrêtez Tomcat manuellement et vérifiez qu'il redémarre automatiquement via les journaux Zabbix.

Étiquettes: Zabbix Tomcat JMX Surveillance automatisation

Publié le 27 juin à 21h54