
Monitorizar un servicio o proceso y rearrancarlo en caso de caída
02/11/2008Frecuentemente 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.
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?
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)
Interessting thoughts