5 Passerelle Java
Aperçu
Le Java gateway Zabbix peut être installé à partir du code source ou de 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 connaître 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 pas
besoin d'un 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 à Zabbix proxy, il peut également être utilisé depuis Zabbix proxy (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 possède 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 le Java gateway, le serveur Zabbix ou le proxy se connecte au Java gateway et demande la valeur, que le Java gateway récupère ensuite et renvoie au serveur ou au proxy. Ainsi, le Java gateway ne met en cache aucune valeur.
Le serveur Zabbix ou le proxy dispose d'un type spécifique de processus qui se connectent au Java gateway, contrôlé par l'option StartJavaPollers. En interne, le Java gateway démarre 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 le Java gateway peut encore être occupé à récupérer la valeur du compteur JMX. Pour résoudre ce problème, il existe l'option TIMEOUT dans le Java gateway, qui permet de définir un délai d'expiration 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 (ceci étant influencé par les intervalles des éléments) et de les envoyer au Java gateway via une seule connexion afin d’améliorer les 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 superviser des applications Java basées sur Wildfly avec le Java gateway de Zabbix, veuillez installer le dernier fichier jboss-client.jar disponible sur la page de téléchargement Wildfly.