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.
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/CentOS | Installation | Configuration |
packages Debian/Ubuntu | Installation | Configuration |