Java gateway
Présentation générale
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 daemon Zabbix appelé « Zabbix Java gateway ».
Zabbix Java gateway est un daemon é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 ne nécessite l'installation d'aucun logiciel supplémentaire ; 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 peut uniquement être utilisé comme « 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 Zabbix ; par conséquent, 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'autres types, seuls les éléments JMX agent seront transmis à Java gateway pour être récupérés.
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 option.
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, l'option TIMEOUT de Java gateway permet de définir un délai d'attente pour les opérations réseau JMX.
Voir aussi :
- Paramètres de configuration : Zabbix Java gateway
- Installation à partir des paquets Debian/Ubuntu
- Installation à partir des paquets RHEL
- Installation à partir des sources
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.