Table of Contents

#5 Java-gateway

Overzicht

Er bestaat native ondersteuning voor het monitoren van JMX-toepassingen in de vorm van een Zabbix-daemon genaamd "Zabbix Java gateway", beschikbaar sinds Zabbix 2.0. Zabbix Java gateway is een daemon geschreven in Java. Om de waarde van een specifieke JMX-teller op een host te achterhalen, vraagt Zabbix-server Zabbix Java gateway om informatie, die de JMX management-API gebruikt om de gewenste toepassing op afstand te bevragen. De toepassing heeft geen aanvullende software nodig, het moet alleen worden gestart met de -Dcom.sun.management.jmxremote optie op de opdrachtregel.

De Java-gateway accepteert inkomende verbindingen van Zabbix-server of -proxy en kan alleen worden gebruikt als een "passieve proxy". In tegenstelling tot Zabbix-proxy kan het ook worden gebruikt vanuit Zabbix-proxy (Zabbix-proxy's kunnen niet worden geketend). Toegang tot elke Java-gateway wordt rechtstreeks geconfigureerd in het Zabbix-server- of -proxy-configuratiebestand, waardoor slechts één Java-gateway per Zabbix-server of -proxy kan worden geconfigureerd. Als een host items heeft van het type JMX-agent en items van een ander type, worden alleen de items van het type JMX-agent doorgegeven aan de Java-gateway voor ophalen.

Wanneer een item moet worden bijgewerkt via de Java gateway, zal de Zabbix-server of -proxy verbinding maken met de Java gateway en de waarde opvragen. Vervolgens haalt de Java gateway de waarde op en geeft deze door aan de server of proxy. Hierdoor worden er door de Java gateway geen waarden gecachet.

De Zabbix-server of -proxy heeft specifieke soorten processen die verbinding maken met de Java gateway, geregeld door de optie StartJavaPollers. Intern start de Java gateway meerdere threads op, aangestuurd door de START_POLLERS optie. Aan de serverzijde, als een verbinding langer duurt dan Timeout seconden, wordt deze beëindigd, maar de Java gateway kan nog steeds bezig zijn met het ophalen van de waarde van de JMX-teller. Om dit op te lossen, is er de TIMEOUT optie in de Java gateway waarmee de time-out voor JMX-netwerkoperaties kan worden ingesteld.

Zabbix-server of -proxy zal proberen aanvragen naar een enkel JMX-doel zoveel mogelijk te groeperen (beïnvloed door item-intervallen) en ze in een enkele verbinding naar de Java-gateway te sturen voor een betere prestatie.

Het wordt voorgesteld om StartJavaPollers kleiner dan of gelijk aan START_POLLERS te hebben. Anders kunnen er situaties ontstaan waarin geen threads beschikbaar zijn in de Java-gateway om inkomende verzoeken te verwerken. In dat geval gebruikt de Java-gateway ThreadPoolExecutor.CallerRunsPolicy, wat betekent dat de hoofdthread het inkomende verzoek zal verwerken en tijdelijk geen nieuwe verzoeken zal accepteren.

Als je probeert Wildfly-gebaseerde Java-toepassingen te monitoren met Zabbix Java gateway, installeer dan de nieuwste jboss-client.jar die beschikbaar is op de Wildfly downloadpagina.

Je kunt de Java gateway installeren vanuit de broncode of pakketten die zijn gedownload van de Zabbix-website.

Met behulp van de onderstaande links kun je informatie vinden over het verkrijgen en uitvoeren van de Zabbix Java gateway, het configureren van de Zabbix-server (of Zabbix-proxy) om de Zabbix Java gateway te gebruiken voor JMX-monitoring, en het configureren van Zabbix-items in de Zabbix-frontend die overeenkomen met specifieke JMX-tellers.

Installatie vanuit Instructies Instructies
Bronnen Installatie Opzetten
RHEL-pakketten Installatie Opzetten
Debian/Ubuntu-pakketten Installatie Opzetten