On this page

5 Java gateway

Überblick

Zabbix Java gateway kann aus dem Quellcode oder aus Paketen installiert werden.

Die native Unterstützung für die Überwachung von JMX-Anwendungen ist in Form eines Zabbix-Daemons namens "Zabbix Java gateway" vorhanden. Zabbix Java gateway ist ein in Java geschriebener Daemon. Um den Wert eines bestimmten JMX-Zählers auf einem Host zu ermitteln, fragt der Zabbix Server das Zabbix Java gateway ab, das die JMX-Verwaltungs-API verwendet, um die gewünschte Anwendung remote abzufragen. Für die Anwendung muss keine zusätzliche Software installiert werden; sie muss lediglich mit der Option -Dcom.sun.management.jmxremote in der Befehlszeile gestartet werden.

Java gateway akzeptiert eingehende Verbindungen vom Zabbix Server oder Proxy und kann nur als "passiver Proxy" verwendet werden. Im Gegensatz zum Zabbix Proxy kann es auch vom Zabbix Proxy aus verwendet werden (Zabbix Proxies können nicht verkettet werden). Der Zugriff auf jedes Java gateway wird direkt in der Konfigurationsdatei des Zabbix Servers oder Proxys konfiguriert, daher kann pro Zabbix Server oder Zabbix Proxy nur ein Java gateway eingerichtet werden. Wenn ein Host Datenpunkte vom Typ JMX agent und Datenpunkte anderer Typen hat, werden nur die JMX agent-Datenpunkte zur Abfrage an das Java gateway weitergeleitet.

Wenn ein Datenpunkt über Java gateway aktualisiert werden muss, verbindet sich der Zabbix Server oder Proxy mit dem Java gateway und fordert den Wert an, den das Java gateway wiederum abruft und an den Server oder Proxy zurückgibt. Daher speichert das Java gateway keine Werte zwischen.

Der Zabbix Server oder Proxy verfügt über einen bestimmten Typ von Prozessen, die sich mit dem Java gateway verbinden und durch die Option StartJavaPollers gesteuert werden. Intern startet das Java gateway mehrere Threads, die durch die Option START_POLLERS Option gesteuert werden. Auf der Server-Seite wird eine Verbindung beendet, wenn sie länger als "Timeout" Sekunden dauert, das Java gateway kann jedoch weiterhin damit beschäftigt sein, den Wert aus dem JMX-Zähler abzurufen. Um dies zu lösen, gibt es die Option TIMEOUT im Java gateway, mit der sich ein Timeout für JMX-Netzwerkoperationen festlegen lässt.

Server oder Proxy werden versuchen, Anfragen an ein einzelnes JMX-Ziel so weit wie möglich zu bündeln (beeinflusst durch die Datenpunkt-Intervalle) und sie für eine bessere Leistung in einer einzigen Verbindung an das Java gateway zu senden.

Es wird empfohlen, StartJavaPollers kleiner oder gleich START_POLLERS zu setzen; andernfalls kann es Situationen geben, in denen im Java gateway keine Threads verfügbar sind, um eingehende Anfragen zu bearbeiten. In solchen Fällen verwendet das Java gateway ThreadPoolExecutor.CallerRunsPolicy, was bedeutet, dass der Hauptthread die eingehende Anfrage bearbeitet und vorübergehend keine neuen Anfragen annimmt.

Wenn Sie versuchen, Java-Anwendungen auf Wildfly-Basis mit dem Zabbix Java gateway zu überwachen, installieren Sie bitte die neueste jboss-client.jar, die auf der Wildfly-Downloadseite verfügbar ist.