Monitorización de Apache Tomcat con psi-probe.

0
23159

Monitorización de Apache Tomcat con psi-probe.

0. Índice de contenidos.


1. Introducción

Psi-probe es un monitor de Apache Tomcat
que nació como un fork de Lambda Probe, debido a la falta de soporte sobre el mismo y las dudas en cuanto a su futuro.

Psi-probe es un proyecto con licencia GPLv2 que, según describen en su propia documentación, permite monitorizar en remoto el estado
del servidor en los siguientes aspectos:

  • peticiones: dispone de un monitor de tráfico en tiempo real,
  • sesiones: analizar atributos en sesión, estimar el peso de las mismas,
  • jsp: navegar, ver el código fuente, recompilar!.
  • fuentes de datos: analizar el uso del pool de conexiones, ejecutar queries.
  • logs: ver el contenido, descargar, cambiar el nivel de trazabilidad en caliente.
  • hilos: ver la pila de ejecución, «matarlos».
  • conextores: ver el estado, usando gráficas.
  • cluester: ver el estado, usando gráficas.
  • JVM: ver el uso de memoria, lanzar el GC, reiniciar la JVM.
  • Sistema: uso de CPU, memoria,…

Está documentada su instalación tanto en Apache Tomcat como en Jboss Application Server, con el objetivo de reemplazar el tomcat manager oferciendo mucha más funcionalidad, para el primero, o simplemente de disponer de un monitor online de la salud de tu servidor, para el segundo.

2. Entorno.

El tutorial está escrito y la instalación realizada usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2.3 GHz Intel Core i7, 16GB DDR3).
  • Sistema Operativo: Mac OS Mavericks 10.9.4
  • Apache Tomcat 7.0.54.
  • psi-probe 2.2.3.


3. Instalación en Apache Tomcat.

Tras descargar el paquete de instalación
lo único que tenemos que hacer es «tirar el war» probe.war en el directorio de despliegue de Apache Tomcat y, en
función de si tenemos configurado el despliegue automático o no, configurar la aplicación web como tal, por defecto,
no habría que hacer nada más que revisar la política de autenticación y autorización de tomcat definida en el fichero
tomcat-users.xml del directorio conf.

<tomcat-users>

  <role rolename="probeuser" />
  <role rolename="poweruser" />
  <role rolename="poweruserplus" />
  <role rolename="manager" />

  <user username="admin" password="t0psecret" roles="manager" />

</tomcat-users>

Se pueden definir 4 niveles de autorización, asumiendo que manager es la más alta, con lo
que si ya tenías definido un usuario con ese rol para el Tomcat Manager, no necesitas tocar nada.

Por último, si quieres acceder a toda la información de la JVM desde probe debes habilitar el acceso en remoto
a la consola de JVM.

-Dcom.sun.management.jmxremote=true


4. Monitorización.

Una vez levantado el servidor y a través de la url que da acceso al contexto de la aplicación
http://localhost:8080/probe podremos acceder con el usuario y contraseña configurados en Tomcat
a la aplicación de monitorización.

4.1. Aplicaciones.

La primera interfaz que se muestra es la de las aplicaciones instaladas en la
que se puede comprobar que aparece el propio probe.

Pulsando sobre una aplicación podemos acceder a un breve detalle de toda la información que se recolecta sobre la misma:

Pulsando sobre la sección correspondiente podemos analizar información sobre las sesiones activas:

se pueden eliminar las sesiones, estimar el tamaño que ocupan y pulsando sobre la misma podemos ver todos los objetos que se mantienen
en la sesión del usuario en el servidor; pudiendo incluso realizar un segundo nicel de estimación del tamaño que ocupan dichos
objetos en la memoria del servidor.

Existen más opciones en el menú izquierdo, entre ellas la de visualizar el contenido del descriptor de despliegue:

los servlets configurados

y los parámetros de inicialización y de contexto de los servlets.

4.2. Fuentes de datos.

En la opción de datasources podemos ver la configuración de los mismos:



y pulsando sobre uno de ellos, se pueden realizar consultas SQL a través del mismo.



Entre las fuentes de datos y los logs podemos acceder a una opción de despliegue en caliente de aplicaciones.

4.3. Logs.

En la opción de logs podemos acceder a un listado de los ficheros que trazamos



y pulsando sobre uno de ellos al tailing del fichero:



lo interesante de la opción anterior es la posibilidad, resaltada en rojo en la imagen, de modificar en caliente
el nivel de trazabilidad del appender en cuestión.

4.4. Threads.

Desde la opción de hilos se puede acceder tanto a los que están en curso para incluso matarlos como a la configuración del pool de hilos.



4.5. Información del sistema.

En la opción para acceder a la información del sistema se puede echar un vistazo general



ver en detalle el uso de memoria de la JVM e invocar al garbage collector:



y analizar la información en relación a la memoria disponible en el sistema.



4.6. Conectores.

En la pestaña de conectores podemos acceder a la monitorización de las peticiones que se realizar a través de los
distintos conectores, disponiendo de informción gráfica sobre número de peticiones, tiempo de proceso
y volumen del tráfico de estas conexiones.



4.7. Quick check.

La última de las opciones es un chequeo rápido de la salud del servidor teniendo en cuenta el uso de las
fuentes de datos, la memoria, el número de descriptores de fichero disponibles y si las aplicaciones están
levantadas o no.




5. Referencias.


6. Conclusiones.

Si consigues colarlo en producción, disfrútalo!!! 😉

Si no, en cualquier entorno, incluso en el de desarrollo te puede servir como soporte de una monitorización del sistema
durante pruebas de carga o estrés.

Un saludo.

Jose

jmsanchez@autentia.com

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad