Monitorización de Apache Tomcat con psi-probe.

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.
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.

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.

Comentarios

Entradas populares de este blog

Orange Pi IoT 2G Flashear memoria NAND

Usar datos gratis para proyectos IoT FreedomPop y Orange Pi 2G IoT (también Simyo).

Configurar modem GSM en la Orange Pi 2G IoT (Orange España)