Table of Contents

#5 Java-gateway

Overzicht

Natuurlijke ondersteuning voor het monitoren van JMX-toepassingen bestaat 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 de Zabbix Java gateway op, die de JMX-beheer-API gebruikt om de gewenste toepassing op afstand te bevragen. De toepassing heeft geen aanvullende software nodig, het hoeft alleen te worden gestart met de optie -Dcom.sun.management.jmxremote op de opdrachtregel.

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-proxies kunnen niet worden geketend). Toegang tot elke Java gateway wordt rechtstreeks geconfigureerd in het configuratiebestand van Zabbix-server of -proxy, dus slechts één Java gateway kan worden geconfigureerd per Zabbix-server of -proxy. Als een host items heeft van het type JMX-agent en items van een ander type, worden alleen de JMX-agent-items 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.

De Zabbix-server of -proxy zal proberen verzoeken aan een enkel JMX-doel zoveel mogelijk samen te voegen (beïnvloed door item-intervallen) en ze in een enkele verbinding naar de Java gateway te sturen voor betere prestaties.

Het wordt aanbevolen om StartJavaPollers kleiner dan of gelijk aan START_POLLERS te hebben, anders kan het voorkomen dat er 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 de 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