Existe soporte nativo para la monitorización de aplicaciones JMX en forma de un demonio de Zabbix llamado "Java gateway de Zabbix". El Java gateway de Zabbix es un demonio escrito en Java. Para obtener el valor de un contador JMX específico en un equipo, el servidor Zabbix consulta al Java gateway de Zabbix, 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, solo debe iniciarse con la opción -Dcom.sun.management.jmxremote
en la línea de comandos.
El Java gateway acepta conexiones entrantes desde el servidor o proxy de Zabbix y solo puede usarse como un "proxy pasivo". A diferencia del proxy de Zabbix, también puede usarse 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 solo se puede configurar un Java gateway por servidor o proxy de Zabbix. Si un equipo tiene métricas de tipo agente JMX y métricas de otro tipo, solo las métricas de tipo agente JMX se enviarán al 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 las métricas) y enviarlas al Java gateway en una sola conexión para un mejor rendimiento.
Se sugiere 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 Java gateway para atender las solicitudes entrantes; en tal caso, el Java gateway 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 Java gateway de Zabbix, por favor instale el último jboss-client.jar disponible en la página de descargas de Wildfly.
Puede instalar Java gateway ya sea desde las fuentes o desde los paquetes descargados desde el sitio web de Zabbix.
Utilizando los enlaces a continuación puede acceder a información sobre cómo obtener y ejecutar Zabbix Java gateway, cómo configurar el servidor Zabbix (o el proxy Zabbix) para utilizar Zabbix Java gateway para la monitorización JMX, y cómo configurar las métricas en el frontend de Zabbix que corresponden a contadores JMX particulares.
Instalación desde | Instrucciones | Instrucciones |
---|---|---|
Fuentes | Instalación | Configuración |
Paquetes RHEL | Instalación | Configuración |
Paquetes Debian/Ubuntu | Instalación | Configuración |