El soporte nativo para monitorear aplicaciones JMX existe en forma de un demonio de Zabbix llamado "Zabbix Java gateway", disponible desde Zabbix 2.0. Zabbix Java gateway es un demonio escrito en Java. Para saber el valor de un contador JMX particular en un equipo, el servidor Zabbix consulta a Zabbix Java gateway, que utiliza la API de administración JMX para consultar a la aplicación que nos interesa de forma remota. La aplicación no necesita ningún software adicional instalado, solo tiene que iniciarse con la opción -Dcom.sun.management.jmxremote
en la línea de comando.
Java gateway acepta la conexión entrante del servidor Zabbix o proxy y solo se puede usar como un "proxy pasivo". A diferencia del proxy de Zabbix, también se puede usar desde el proxy Zabbix (los proxies Zabbix no se pueden encadenar). El acceso a cada Java gateway se configura directamente en el servidor Zabbix o en el archivo de configuración del proxy, por lo que solo se puede configurar un Java gateway por servidor Zabbix o proxy Zabbix. Si un equipo tiene métricas de tipo Agente JMX y métricas de otro tipo, solo las métricas Agente JMX se enviarán al Java gateway para su recuperación.
Cuando una métrica debe actualizarse a través de una puerta de enlace Java, un servidor Zabbix o un proxy se conectará a la puerta de enlace de Java y solicitará el valor, que la puerta de enlace Java, a su vez, recupera y devolverá al servidor o proxy. De este modo, la puerta de enlace Java no almacena en caché ningún valor.
El servidor o proxy Zabbix tiene un tipo específico de procesos que se conectan al Gateway Java, controlado por la opción StartJavaPollers. Internamente, la puerta de enlace Java inicia múltiples subprocesos, controlados por lña opción START_POLLERS. Del lado del servidor, si una conexión tarda más que el Tiempo de espera en segundos, finalizará, pero es posible que la puerta de enlace Java aún esté ocupada recuperando el valor del contador JMX. Para solucionar esto, existe la opción TIMEOUT en la puerta de enlace de Java que permite establecer el tiempo de espera de red para las operaciones JMX.
El servidor o proxy Zabbix intentará agrupar solicitudes en un único objetivo JMX tanto como sea posible (dependiendo de los intervalos de métricas) y enviarlas a la puerta de enlace de Java en una única conexión para un mejor rendimiento.
Se sugiere tener StartJavaPollers menor o igual a START_POLLERS; de lo contrario, puede haber situaciones en las que no haya hilos disponibles en la puerta de enlace de Java para atender las solicitudes entrantes; en tal caso, la puerta de enlace Java utiliza ThreadPoolExecutor.CallerRunsPolicy, es decir que el hilo principal atenderá la solicitud entrante y no aceptará cualquier nueva solicitud temporalmente.
Si está intentando monitorear aplicaciones Java basadas en Wildfly con la puerta de enlace Java Zabbix, instale el último jboss-client.jar disponible en la [página de descarga de Wildfly] (https://www.wildfly.org/downloads/).
Puede instalar Java Gateway desde las fuentes o desde los paquetes, descargadolos del [sitio web de Zabbix] (http://www.zabbix.com/download.php).
Usando los enlaces a continuación puede acceder a información sobre cómo obtener y ejecutar la puerta de enlace Java de Zabbix, cómo configurar el servidor Zabbix (o proxy Zabbix) para use la puerta de enlace Java de Zabbix para el monitoreo JMX y cómo configurar las métricas Zabbix en la interfaz de Zabbix que corresponden a contadores JMX específicos.
Instalación desde | Instrucciones | Instrucciones |
---|---|---|
Fuentes | Instalación | Configuración |
Paquetes RHEL | Instalación | Configuración |
Paquetes Debian/Ubuntu | Instalación | Configuración |