This is a translation of the original English documentation page. Help us make it better.

5 Passerelle Java

Aperçu

Le support natif pour la surveillance des applications JMX existe sous la forme d'un démon Zabbix appelé "Passerelle Java Zabbix", disponible depuis Zabbix 2.0. La passerelle Java de Zabbix 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 la passerelle Java, qui utilise l'API de gestion JMX pour interroger l'application concernée à distance. L'application n'a pas besoin de l’installation d’un logiciel supplémentaire, il suffit de démarrer avec l'option -Dcom.sun.management.jmxremote dans la ligne de commande.

La passerelle Java accepte la connexion entrante du serveur ou du proxy Zabbix et ne peut être utilisée que comme un "proxy passif". Contrairement au proxy Zabbix, il peut également être utilisé depuis le proxy Zabbix (les proxys Zabbix ne peuvent pas être chaînés). L'accès à chaque passerelle Java est configuré directement dans le fichier de configuration du serveur Zabbix ou du proxy, ainsi une seule passerelle Java peut être configurée par serveur Zabbix ou par proxy Zabbix. Si un hôte possède des éléments de type agent JMX et des éléments d'un autre type, seuls les éléments de l'agent JMX sont transmis à la passerelle Java pour être récupérés.

Lorsqu'un élément doit être mis à jour via la passerelle Java, le serveur ou le proxy Zabbix se connecte à la passerelle Java et demande la valeur, la passerelle Java la récupère à son tour et la renvoie au serveur ou au proxy. En tant que tel, la passerelle Java ne garde aucune valeur en cache.

Le serveur ou le proxy Zabbix a un type spécifique de processus qui se connectent à la passerelle Java, contrôlée par l'option StartJavaPollers. En interne, la passerelle Java 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 terminée, néanmoins la passerelle Java peut toujours être occupée à récupérer la valeur du compteur JMX. Pour résoudre ce problème, depuis Zabbix 2.0.15, Zabbix 2.2.10 et Zabbix 2.4.5, il existe l'option TIMEOUT dans la passerelle Java qui permet de définir le 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 seule cible JMX (affectées par les intervalles d'éléments) et les enverra à la passerelle Java en une seule connexion pour de meilleures performances.

Il est suggéré d'avoir le paramètre StartJavaPollers inférieur ou égal à START_POLLERS, sinon il peut y avoir des situations où aucun thread n'est disponible dans la passerelle Java pour traiter les demandes entrantes ; dans un tel cas la passerelle Java utilise ThreadPoolExecutor.CallerRunsPolicy, ce qui signifie que le thread principal traitera la demande entrante et n'acceptera temporairement aucune nouvelle demande.

When an item has to be updated over Java gateway, Zabbix server or proxy will connect to the Java gateway and request the value, which Java gateway in turn retrieves and passes back to the server or proxy. As such, Java gateway does not cache any values.

Zabbix server or proxy has a specific type of processes that connect to Java gateway, controlled by the option StartJavaPollers. Internally, Java gateway starts multiple threads, controlled by the START_POLLERS option. On the server side, if a connection takes more than Timeout seconds, it will be terminated, but Java gateway might still be busy retrieving value from the JMX counter. To solve this, there is the TIMEOUT option in Java gateway that allows to set timeout for JMX network operations.

Zabbix server or proxy will try to pool requests to a single JMX target together as much as possible (affected by item intervals) and send them to the Java gateway in a single connection for better performance.

It is suggested to have StartJavaPollers less than or equal to START_POLLERS, otherwise there might be situations when no threads are available in the Java gateway to service incoming requests; in such a case Java gateway uses ThreadPoolExecutor.CallerRunsPolicy, meaning that the main thread will service the incoming request and temporarilylabel will not accept any new requests.

If you are trying to monitor Wildfly-based Java applications with Zabbix Java gateway, please install the latest jboss-client.jar available on the Wildfly download page.

Obtenir la passerelle Java

Vous pouvez installer la passerelle Java soit depuis les sources, soit en téléchargeant les packages depuis le site web Zabbix.

En utilisant les liens ci-dessous vous pouvez accéder aux informations sur comment récupérer et exécuter le passerelle Java Zabbix, comment configurer le serveur Zabbix (ou le proxy Zabbix) pour utiliser la passerelle Java Zabbix pour la supervision JMX, et comment configurer les éléments Zabbix dans l'interface web qui correspondent aux compteurs JMX particuliers.

Installation depuis Instructions Instructions
Sources Installation Configuration
packages RHEL Installation Configuration
packages Debian/Ubuntu Installation Configuration