5 Passerelle Java

Aperçu

Zabbix Java gateway peut être installé à partir du code source ou des paquets.

La prise en charge native de la supervision des applications JMX existe sous la forme d'un démon Zabbix appelé "Zabbix Java gateway". Zabbix Java gateway est un démon écrit en Java. Pour obtenir la valeur d'un compteur JMX particulier sur un hôte, le serveur Zabbix interroge Zabbix Java gateway, qui utilise l'API de gestion JMX pour interroger à distance l'application concernée. L'application n'a besoin d'aucun logiciel supplémentaire installé ; elle doit simplement être démarrée avec l'option -Dcom.sun.management.jmxremote sur la ligne de commande.

Java gateway accepte les connexions entrantes du serveur Zabbix ou du proxy et ne peut être utilisé que comme un "proxy passif". Contrairement au proxy Zabbix, il peut également être utilisé depuis un proxy Zabbix (les proxies Zabbix ne peuvent pas être chaînés). L'accès à chaque Java gateway est configuré directement dans le fichier de configuration du serveur Zabbix ou du proxy, ainsi un seul Java gateway peut être configuré par serveur Zabbix ou proxy Zabbix. Si un hôte comporte des éléments de type JMX agent et des éléments d'un autre type, seuls les éléments JMX agent seront transmis à Java gateway pour récupération.

Lorsqu'un élément doit être mis à jour via Java gateway, le serveur Zabbix ou le proxy se connecte à Java gateway et demande la valeur, que Java gateway récupère ensuite et renvoie au serveur ou au proxy. Ainsi, Java gateway ne met en cache aucune valeur.

Le serveur Zabbix ou le proxy dispose d'un type spécifique de processus qui se connecte à Java gateway, contrôlé par l'option StartJavaPollers. En interne, Java gateway lance plusieurs threads, contrôlés par l'option START_POLLERS. Côté serveur, si une connexion prend plus de "Timeout" secondes, elle sera interrompue, mais Java gateway peut encore être occupé à récupérer la valeur depuis le compteur JMX. Pour résoudre ce problème, il existe l'option TIMEOUT dans Java gateway, qui permet de définir un délai d'attente pour les opérations réseau JMX.

Le serveur ou le proxy Zabbix essaiera de regrouper autant que possible les requêtes vers une même cible JMX (selon les intervalles des éléments) et de les envoyer au Java gateway dans une seule connexion pour de meilleures performances.

Il est recommandé que StartJavaPollers soit inférieur ou égal à START_POLLERS; sinon, il peut arriver qu’aucun thread ne soit disponible dans le Java gateway pour traiter les requêtes entrantes. Dans ce cas, le Java gateway utilise ThreadPoolExecutor.CallerRunsPolicy, ce qui signifie que le thread principal traitera la requête entrante et n’acceptera temporairement aucune nouvelle requête.

Si vous essayez de surveiller des applications Java basées sur Wildfly avec le Java gateway Zabbix, veuillez installer la dernière version de jboss-client.jar disponible sur la page de téléchargement de Wildfly.