meta data de esta página
  •  

Agente JMX

Documento Original de Samuel Ruiz 1)

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

  • 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

  • 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