h1

Monitorizar un servicio o proceso y rearrancarlo en caso de caída

02/11/2008

Frecuentemente es necesario tener servicios y procesos monitorizados y levantados las 24h. Para ello existen utilidades que monitorizan y rearracan en caso de caída o condiciones críticas del sistema, a la vez que envían alertas al administrador. Y lo hacen no sólo en base al estado del proceso si no también, si se desea, en función del entorno (RAM en uso, espacio libre en disco, etc), así como permite crear tareas de mantenimiento para evitar entrar en situaciones críticas.

En GNU/Linux uno de los más utilizados es Monit. De una manera sencilla permite controlar procesos, servicios, ficheros, memoria, CPU, puertos ó comunicaciones. En Debian ó Ubuntu se instala de manera sencilla:

$sudo apt-get install monit

Y crea el servicio que se arrancará en todos los reinicios. A contiinuación, es necesario activarlo configurando los parámetros generales de la aplicación:

$sudo nano /etc/default/monit
# You must set this variable to for monit to start
startup=1
# To change the intervals which monit should run uncomment
# and change this variable.
CHECK_INTERVALS=180

y posteriormente indicar los parámetros personalizados (condiciones a monitorizar). El fichero viene totalmente comentado por un ejemplo de cada tipología de evento monitorizable (fichero que cambia, procesos que mueren, consumo de memoria o de CPU, puerto inalcanzable…), de modo que es bastante fácil de configurar y de adaptar a situaciones persanlizadas. En mi caso pongo de ejemplo una condición para mantener demonio de aMule (amuled) arrancado si cae:

# sudo nano /etc/monit/monitrc
set daemon  60
set logfile syslog facility log_daemon
set httpd port 2812 and
use address localhost  # only accept connection from localhost
allow localhost        # allow localhost to connect to the server and
allow admin:monit      # require user 'admin' with password 'monit'
(...)
#--------------- AMULE DAEMON
check process aMule with pidfile /home/carlos/.aMule/muleLock
start program = "/etc/init.d/amule-daemon start"
stop program  = "/etc/init.d/amule-daemon stop"
if failed host localhost port 4712 then restart
(...)

Comentar que el  “set httpd port 2812″ configura un interfaz web cómodo para acceder a las estadísticas de Monit vía web. A parte, las estadísticas se pueden ver en el syslog o en el fichero que se especifique en la configuración.

About these ads

2 comentarios

  1. Hola,
    gracias por ese tutorial.
    Lo que no puedo entender es:
    allow admin:monit
    Dice que necesita la contrasena, pero dónde se escribe ésta?
    depues de monit? antes de monit? antes de los dos puntos? dónde?
    Ademas, cuando veo monitcr en el terminal, me dice que no tengo derechos para escribir! Asi es que no puedo editar éste file.
    Me gustaria saber cómo se escribe ésta rutina si apenas quisiera agregarla a la configuración existente, sin tener que editar monitrc?
    y cómo hago para guardar el file en la carpeta correspondiente?


  2. La contraseña se escribe donde como en pone el ejemplo… justamente después de “:”
    Y para editarlo y grabarlo, prueba a hacerlo como root (comando “sudo”, investiga también eso)



Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

A %d blogueros les gusta esto: