===== Agente JMX ===== Documento Original de Samuel Ruiz ((http://samuelasir.tk/dokuwiki/doku.php?id=servicios_web:zabbix:agente_jmx)) Con Zabbix podemos monitorizar un servidor tomcat mediante un agente JMX. Para ello debemos de realizar lo siguiente: === Paso 1: instalar java. === yum install java-1.6.0 === Paso 2: instalar zabbix-java-Gateway === rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-java-gateway-2.2.3-1.el6.x86_64.rpm === Paso 3: configurar java en el equipo monitorizado === Podemos configurar el acceso mediante JMX de dos maneras * Sin autentificación java \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=12345 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -jar /usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar * Con autentificación java \ -Djava.rmi.server.hostname=x.x.x.x\ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=12345 \ -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 \ -Dcom.sun.management.jmxremote.ssl=true \ -Djavax.net.ssl.keyStore=$YOUR_KEY_STORE \ -Djavax.net.ssl.keyStorePassword=$YOUR_KEY_STORE_PASSWORD \ -Djavax.net.ssl.trustStore=$YOUR_TRUST_STORE \ -Djavax.net.ssl.trustStorePassword=$YOUR_TRUST_STORE_PASSWORD \ -Dcom.sun.management.jmxremote.ssl.need.client.auth=true \ -jar /usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar Por último reiniciamos el Tomcat === Paso 4: modificar archivo de configuración de zabbix. === Modificamos el archivo “/etc/zabbix/zabbix_server.conf” las siguientes líneas: JavaGateway: IP del servidor zabbix. JavaGatewayPort: el puerto por el que escuchará zabbix. StartJavaPollers: le daremos el valor 5. Reiniciamos el zabbix service zabbix-server restart === Paso 5: crear un nuevo host zabbix. === Configuration->host->create host {{ :seguridad:monitorizacion:zabbix2:jmx1.png?nolink&600 |}} * Debemos rellenar el nombre del host. * Añadirlo a un grupo * Agregar la interfaz JMX (el puerto será el que hayamos indicado en el paso 3). * Guardar la configuración. === Paso 6: crear un ítem a monitorizar. === Configuration->host->ítem->créate ítem {{ :seguridad:monitorizacion:zabbix2:jmx2.png?600 |}} * Name: nombre del ítem. * Type: JMX agent. * Key: ruta del ítem. * Host interface: dirección IP y puerto. * User name: usuario (si lo tiene). * Password: contraseña. * Type od information: tipo de dato que vamos a recibir. * Update interval: cada cuanto tiempo actualizaremos el ítem. * Guardamos el ítem. En el campo “key” debemos ingresar el ítem JMX. Éste se inicia con jmx[…], y dentro de este paréntesis tenemos dos datos separados por una coma: * El primero es el nombre del objeto: que representa el nombre del objeto de MBean. * El segundo es el atributo de ese objeto. Estos ítems los podemos buscar con la aplicación jconsole, aunque cuando instalas JDK ( versión 1.5) podemos encontrar la herramienta jvisualVM que está mucho más completa. ===== Enlaces ===== * http://www.denniskanbier.nl/blog/monitoring/enable-jboss-remote-jmx-monitoring-in-zabbix/ * http://www.sysads.co.uk/2014/02/install-configure-jmx-zabbix-java-gateway/ * http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html * http://www.mkyong.com/tomcat/jconsole-jmx-remote-access-on-tomcat/