2012-01-15

Monitorizar tomcat con monit en linux CentOS

Monit nos permite también monitorizar procesos o servicios específicos (anteriormente vimos como se puede monitorzar el espacio en disco ó la CPU del sistema).

Podemos comprobar si están siendo ejecutados, si consumen demasiada CPU ó memoria, si están escuchando en el puerto TCP/IP adecuado, etc.

Para hacer esto lo más simple es usar el PID del proceso.

Para tomcat podemos definir el fichero PID definiendo la variable de entorno CATALINA_PID al nombre de un fichero que contendrá el PID de tomcat.

El script de arranque de tomcat "/etc/init.d/tomcat" quedará entonces:

#!/bin/sh
#
# chkconfig: 2345 20 80
# description: Tomcat
#
start()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid;/opt/tomcat/bin/startup.sh"
        iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}
stop()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid;/opt/tomcat/bin/shutdown.sh"
        iptables -t nat --flush
}
case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        *)
                echo $"Usage: $0 {start|stop}"
                exit 1
esac

Para monitorizar tomcat desde monit ahora debemos añadir la siguiente regla al fichero de configuración "/opt/monit/conf/monitrc":

check process tomcat with pidfile /opt/tomcat/logs/tomcat.pid
  if failed port 8080 then alert

Esta regla nos alertará por email si tomcat no está corriendo (si el PID del fichero no está en memoria) y si ese proceso no tiene abierto el puerto 8080.

No hay comentarios:

Publicar un comentario