Monitorizar Servidores Tomcat desde Zabbix

Paso 1

Lo primero que haremos será habilitar Java Management Extension( JMX ) en el Tomcat que queramos monitorizar.

Para habilitar la monitorización por JMX debemos de editar el fichero catalina.sh en mi caso

Añadimos la siguiente línea

Reiniciamos el servicio del tomcat

La opción Dcom.sun.management.jmxremote.authenticate=false deshabilita la autentificación y no debe usarse en producción.En producción debemos de usar las opciones -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/etc/java-6-openjdk/management/jmxremote.password \ -Dcom.sun.management.jmxremote.access.file=/etc/java-6-openjdk/management/jmxremote.access \ y crear los ficheros jmxremote.access y jmxremote.password copiando el jmxremote.access.template y cambiándole las contraseñas y los permisos para que sólo sea accesible al usuario que ejecute el Tomcat.

Si sólo queremos monitorizar temporalmente por JMX nuestro servidor

desde la consola ejecutamos

reiniciamos el servicio tomcat

Ojo este método es sólo si no tenemos declarada la variable CATALINA_OPS en el catalina.sh ya que se borrara el valor por el que acabamos de declarar y perderíamos los valores que se hubieran definido con anterioridad
Para comprobar que está habilitado, la monitorización por JMX, podemos usar el programa jconsole que viene incluido con el paquete de desarrollo jdk

Paso 2

El siguiente paso es instalar en el servidor el paquete zabbix java gateway . Si zabbix lo hemos instalado desde los repositorios ejecutamos

Editamos el fichero /etc/zabbix/zabbix_server.conf Descomentamos las siguientes líneas JavaGateway, JavaGatewayPort y StartJavaPollers

Como valor de JavaGateway ponemos la ip sel servidor donde hemos instalado el servicio. Como lo hemos instalado en el mismo servidor de zabbix el valor quedaría JavaGateway=127.0.0.1

Como valor de JavaGatewayPort dejaremos el puerto que aparece y que NO es el mismo que usamos para conectar por jmx. JavaGatewayPort=10052

Como valor de Java Pollers ponemos 5 . StartJavaPollers=5

Editamos el fichero /etc/zabbix/zabbix_java_gateway.conf

Descomentamos las siguientes opciones LISTEN_IP, LISTEN_PORT y START_POLLERS y ponemos los siguientes valores

LISTEN_IP=127.0.0.1

LISTEN_PORT=10052

START_POLLERS=5

Habilitamos el servicio zabbix-java-gateway

Arrancamos el servicio

Reiniciamos el servicio del zabbix

Paso 3

En este paso lo que haremos es añadir el host a monitorizar y asociarle una plantilla.

Nos descargamos la plantilla de https://www.zabbix.com/integrations/tomcat . Yo he utilizado la plantilla https://share.zabbix.com/official-templates/applications/tomcat-template.

La descargo y la importo al zabbix. Configuration→Templates botón de Import

Añadimos el host a monitorizar y le definimos el interface JMX

Le asociamos la plantilla que descargamos para monitorizarlo