On this page

5 Java gateway

Panoramica

Zabbix Java gateway può essere installato dal codice sorgente o dai pacchetti.

Il supporto nativo per il monitoraggio delle applicazioni JMX esiste sotto forma di un daemon di Zabbix chiamato "Zabbix Java gateway". Zabbix Java gateway è un daemon scritto in Java. Per trovare il valore di un particolare contatore JMX su un host, Zabbix server interroga Zabbix Java gateway, che utilizza la JMX management API per interrogare da remoto l'applicazione di interesse. L'applicazione non necessita di alcun software aggiuntivo installato; deve solo essere avviata con l'opzione -Dcom.sun.management.jmxremote sulla riga di comando.

Java gateway accetta connessioni in ingresso da Zabbix server o proxy e può essere utilizzato solo come "passive proxy". A differenza di Zabbix proxy, può essere utilizzato anche da Zabbix proxy (i Zabbix proxy non possono essere concatenati). L'accesso a ciascun Java gateway è configurato direttamente nel file di configurazione di Zabbix server o proxy, pertanto può essere configurato un solo Java gateway per ciascun Zabbix server o Zabbix proxy. Se un host avrà item di tipo JMX agent e item di altri tipi, solo gli item JMX agent verranno inoltrati a Java gateway per il recupero.

Quando un item deve essere aggiornato tramite Java gateway, il server Zabbix o il proxy si connetterà al Java gateway e richiederà il valore, che a sua volta Java gateway recupera e restituisce al server o al proxy. Di conseguenza, Java gateway non memorizza nella cache alcun valore.

Il server Zabbix o il proxy dispone di un tipo specifico di processi che si connettono al Java gateway, controllati dall'opzione StartJavaPollers. Internamente, Java gateway avvia più thread, controllati dall'opzione START_POLLERS option. Sul lato server, se una connessione richiede più di "Timeout" secondi, verrà terminata, ma Java gateway potrebbe essere ancora occupato a recuperare il valore dal contatore JMX. Per risolvere questo problema, esiste l'opzione TIMEOUT in Java gateway che consente di impostare il timeout per le operazioni di rete JMX.

Zabbix server o proxy cercherà di raggruppare il più possibile le richieste verso un singolo target JMX (influenzato dagli intervalli degli item) e di inviarle al Java gateway in un'unica connessione per ottenere prestazioni migliori.

Si consiglia di impostare StartJavaPollers su un valore minore o uguale a START_POLLERS; in caso contrario, potrebbero verificarsi situazioni in cui non sono disponibili thread nel Java gateway per gestire le richieste in arrivo. In tali casi, il Java gateway utilizza ThreadPoolExecutor.CallerRunsPolicy, il che significa che il thread principale gestirà la richiesta in arrivo e temporaneamente non accetterà nuove richieste.

Se si sta cercando di monitorare applicazioni Java basate su Wildfly con Zabbix Java gateway, installare la versione più recente di jboss-client.jar disponibile nella pagina di download di Wildfly.