On this page

5 Java gateway

Überblick

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

Es gibt native Unterstützung für die Überwachung von JMX-Anwendungen in Form eines Zabbix-Daemons namens „Zabbix Java gateway“. Das 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-Management-API verwendet, um die betreffende Anwendung remote abzufragen. Für die Anwendung ist keine zusätzliche Softwareinstallation erforderlich; sie muss lediglich mit der Option -Dcom.sun.management.jmxremote in der Befehlszeile gestartet werden.

Das 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 von einem Zabbix Proxy aus verwendet werden (Zabbix-Proxys können nicht verkettet werden). Der Zugriff auf jedes Java gateway wird direkt in der Konfigurationsdatei des Zabbix Servers oder Proxys eingerichtet, daher kann pro Zabbix Server oder Zabbix Proxy nur ein Java gateway konfiguriert werden. Wenn ein Host Datenpunkte vom Typ JMX agent und Datenpunkte anderer Typen hat, werden nur die Datenpunkte vom Typ JMX agent zur Abfrage an das Java gateway weitergeleitet.

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

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

Der Zabbix Server oder Proxy versucht, Anfragen an ein einzelnes JMX-Ziel so weit wie möglich zu bündeln (von den Datenpunkt-Intervallen beeinflusst) und sie zur besseren Leistung über eine einzige Verbindung an das Java gateway zu senden.

Es wird empfohlen, StartJavaPollers kleiner oder gleich START_POLLERS zu halten, da es andernfalls Situationen geben kann, in denen im Java gateway keine Threads verfügbar sind, um eingehende Anfragen zu verarbeiten; in einem solchen Fall verwendet das Java gateway ThreadPoolExecutor.CallerRunsPolicy, was bedeutet, dass der Haupt-Thread die eingehende Anfrage verarbeitet und vorübergehend keine neuen Anfragen annimmt.

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