He estado haciendo mis primeras pruebas con JMX(JMX en la wikipedia), que sirve para entre otras cosas para monitorizar aplicaciones java.

La herramienta para monitorizar que nos viene por defecto en la JDK es JConsole, a partir de Java 5, que se encuentra dentro del directorio bin de nuestro JAVA_HOME.

Para habilitar la instrumentación de JMX en Tomcat debemos buscar, dentro de catalina.bat, la variable JAVA_OPTS y añadirle los siguientes valores, separados por un espacio:

  • -Dcom.sun.management.jmxremote
  • -Dcom.sun.management.jmxremote.port=”9004″
  • -Dcom.sun.management.jmxremote.authenticate=”false”
  • -Dcom.sun.management.jmxremote.ssl=”false”

Una vez modificado, arrancamos el Tomcat y el JConsole, que nos debe dar la opción a conectarnos, en la pestaña Local, al Tomcat para monitorizarlo. Una vez conectados ya podemos ver parámetros como el consumo de memoria, número de threads…

6 Responses to “Monitorizar Tomcat con JMX”

  1. Enrique Rodriguez Lasterra Says:

    Sabes si, en caso de crear un agente JMX de mis proyectos, podría “alojarlo” en ese mismo directorio de agentes?

    La verdad es que de JMX he leido algo y he entendido poco :-(

  2. Dani Says:

    Hola Enrique,

    Ya siento no poder ayudarte, por ahora sólo he estado mirando el nivel de instrumentación.

    A mi JMX también se me está haciendo un poco complicado.

  3. Manuel Jesús Recena Soto Says:

    Hola Dani:

    Le habéis echado un vistazo a:
    http://www.lambdaprobe.org

    Un saludo

  4. Dani Says:

    Hola Manuel,

    Pues no lo conocía, saca buena pinta, a ver si saco un rato para probarlo.

    Muchas gracias.

  5. José I Says:

    Amigos tengo mi servidor linux con el tomcat conteniendo 12 Aplicaciones Web corriendo, el tema es que necesito conocer el consumo de memoria para cada una de mis aplicaciones, conocen alguna forma de hacerlo?

  6. Dani Says:

    Hola José,

    Pues la verdad que, al menos con jconsole, no hay forma de hacerlo. Aunque quizás con herramientas específicas de monitorización de tomcat como lambdaprobe se pueda llegar a hacer.

    Por simple curiosidad, ya que me choca tener 12 aplicaciones en un mismo servidor (si no son aplicaciones de uso interno, claro): ¿Aproximadamente, cuántos usuarios tienes entre todas las aplicaciones?, ¿qué características tiene el servidor?

Post A Comment