Tomcat: Configurar JMX para monitorear recursos y desempeño del servidor

Buenos días, en la presente oportunidad explicaré como configurar Apache Tomcat para poder conocer el desempeño del servidor en «tiempo real», para poder utilizar herramientas como:

  • JCONSOLE

jconsole

  • JAVA VISUAL VM

jvisualvm

  • JAVA MISSION CONTROL

jmc

  1. En primer lugar debemos conocer a versión de Apache Tomcat con la que contamos, para ellos vamos a la ruta del manager y nos desplazamos hasta el final donde veremos algo como esto:
    • versiontomcat
  2. Y nos dirigimos a la siguiente dirección: http://archive.apache.org/dist/tomcat/ y navegamos hasta encontrar la versión exacta de nuestro servidor y dentro de ella vamos al directorio «/bin/extras», en mi caso queda así:
  3. Una vez allí descargamos el archivo que catalina-jmx-remote.jar
    • jmx
  4. Luego este archivo hay que copiarlo dentro de la carpeta «lib» del servidor «tomcat»
  5. Lo siguiente es configurar en el archivo «catalina.sh» o «catalina.bat» según sea UNIX o Windows respectivamente y agregar o anexar a la variable JAVA_OPTS, en IP_SERVIDOR colocamos la ip del mismo servidor.
    • JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=IP_SERVIDOR" 
  6. Como habrán notado NO he configurado el parámetro que indica el puerto esto es porque vamos a configurar el puerto de entrada y de salida de manera estática (por defecto el puerto de salida es dinámico)
    • -Dcom.sun.management.jmxremote.port=9999
      
  7. Ahora vamos al archivos «server.xml» ubicado en la carpeta «conf» y agregamos la siguiente línea, que básicamente crea un oyente que manejará las peticiones a jmx
    • <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="9999" rmiServerPortPlatform="9091" />
      
  8. Lo siguiente será reiniciar el servidor Apache Tomcat y deberá aparecer algo como esto en el log:
    • abr 11, 2016 9:08:30 AM org.apache.catalina.mbeans.JmxRemoteLifecycleListener createServer
      INFORMACIÓN: The JMX Remote Listener has configured the registry on port 9999 and the server on port 9091 for the Platform server
      
  9. Si todo hasta este punto ha salido sin problemas, lo único que quedaría sería verificar si el puerto 9999 está abierto en el firewall, pero eso es otro tema.
  10. Ahora para acceder a JMX, simplemente colocar la IP:PUERTO, en cualquiera de las herramientas antes mencionadas.
  11. CAPTURAS CON JMX
    • jconsole03
    • jconsole02
    • jconsole01
  12. CAPTURAS CON JMC
    • jmc01 jmc02
  13. CAPTURAS CON JAVA VISUALVM
    • jvisualvm01

Bueno eso sería todo ya tenemos configurado nuestro servidor para poder monitorear los recursos y su desempeño, no he colocado como agregar seguridad porque por lo general el servidor está detrás de un firewall el cual mantendrá el control de acceso sobre el puerto 9999, pero si desean saber como configurarlo en la referencia al final del post pueden encontrar como hacerlo.

Espero sea de utilidad.

Referencias:

 

 

Un comentario sobre “Tomcat: Configurar JMX para monitorear recursos y desempeño del servidor

Deja un comentario