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 è disponibile sotto forma di un
demone Zabbix chiamato "Zabbix Java gateway".
Zabbix Java gateway è un demone scritto in Java. Per ottenere il valore
di uno specifico contatore JMX su un host, Zabbix server interroga Zabbix Java
gateway, che utilizza la API di gestione
JMX
per interrogare da remoto l'applicazione di interesse. L'applicazione non
richiede l'installazione di software aggiuntivo, 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 "proxy passivo". A differenza di Zabbix proxy, può anche essere utilizzato da Zabbix proxy (i proxy Zabbix non possono essere concatenati). L'accesso a ciascun Java gateway viene 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 altro tipo, solo gli item JMX agent verranno inoltrati a Java gateway per il recupero.
Quando un item deve essere aggiornato tramite Java gateway, Zabbix server o proxy si connetterà al Java gateway e richiederà il valore, che il Java gateway a sua volta recupera e restituisce al server o al proxy. Pertanto, il Java gateway non memorizza nella cache alcun valore.
Zabbix server o proxy dispone di un tipo specifico di processi che si connettono al Java gateway, controllato dall'opzione StartJavaPollers. Internamente, il Java gateway avvia più thread, controllati dall'opzione START_POLLERS. Sul lato server, se una connessione richiede più di Timeout secondi, verrà terminata, ma il Java gateway potrebbe essere ancora occupato a recuperare il valore dal contatore JMX. Per risolvere questo problema, nel Java gateway è disponibile l'opzione TIMEOUT, che consente di impostare un timeout per le operazioni di rete JMX.
Zabbix server o proxy cercherà di raggruppare il più possibile le richieste verso un singolo target JMX (tenendo conto degli intervalli degli item) e di inviarle al Java gateway tramite un'unica connessione per ottenere prestazioni migliori.
Si consiglia di impostare StartJavaPollers a un valore minore o uguale a START_POLLERS, altrimenti potrebbero verificarsi situazioni in cui non sono disponibili thread nel Java gateway per gestire le richieste in arrivo; in tal caso 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 l'ultima versione di jboss-client.jar disponibile nella pagina di download di Wildfly.