Zabbix Java gateway se puede instalar desde código fuente o paquetes.
Existe soporte nativo para monitorizar aplicaciones JMX en forma de un demonio de Zabbix llamado "Zabbix Java gateway". Zabbix Java gateway es un demonio escrito en Java. Para averiguar el valor de un contador JMX en un host, el servidor Zabbix consulta a Zabbix Java gateway, que utiliza la API de gestión JMX para consultar la aplicación de interés de forma remota. La aplicación no necesita ningún software adicional instalado, sólo tiene que iniciarse con la opción -Dcom.sun.management.jmxremote en la línea de comandos.
Java gateway acepta conexiones entrantes desde el servidor o proxy de Zabbix y sólo puede utilizarse como "proxy pasivo". A diferencia del proxy de Zabbix, también puede utilizarse desde el proxy de Zabbix (los proxies de Zabbix no pueden encadenarse). El acceso a cada Java gateway se configura directamente en el archivo de configuración del servidor o proxy de Zabbix, por lo que sólo se puede configurar un Java gateway por servidor o proxy de Zabbix. Si un host tiene items de tipo JMX agent y items de otro tipo, sólo los items JMX agent se pasarán a Java gateway para su recuperación.
Cuando una métrica debe actualizarse a través del Java gateway, el servidor o proxy de Zabbix se conectará al Java gateway y solicitará el valor, que el Java gateway a su vez recupera y devuelve al servidor o proxy. Por lo tanto, el Java gateway no almacena en caché ningún valor.
El servidor o proxy de Zabbix tiene un tipo específico de procesos que se conectan al Java gateway, controlados por la opción StartJavaPollers. Internamente, el Java gateway inicia múltiples hilos, controlados por la opción START_POLLERS opción. En el lado del servidor, si una conexión tarda más de Timeout segundos, se terminará, pero el Java gateway aún podría estar ocupado recuperando el valor del contador JMX. Para resolver esto, existe la opción TIMEOUT en el Java gateway que permite establecer el tiempo de espera para las operaciones de red JMX.
El servidor o proxy de Zabbix intentará agrupar las solicitudes a un único destino JMX tanto como sea posible (afectado por los intervalos de los elementos) y enviarlas al gateway Java en una sola conexión para un mejor rendimiento.
Se recomienda que StartJavaPollers sea menor o igual que START_POLLERS, de lo contrario, podría haber situaciones en las que no haya hilos disponibles en el gateway Java para atender las solicitudes entrantes; en tal caso, el gateway Java utiliza ThreadPoolExecutor.CallerRunsPolicy, lo que significa que el hilo principal atenderá la solicitud entrante y no aceptará nuevas solicitudes temporalmente.
Si está intentando monitorizar aplicaciones Java basadas en Wildfly con el gateway Java de Zabbix, por favor instale el último jboss-client.jar disponible en la página de descargas de Wildfly.