systemadmin.es > Monitorización > Monitorización proactiva con daemontools

Monitorización proactiva con daemontools

En sistemas empotrados (embedded) se suele pedir una cierta fiabilidad ante fallos. Por ejemplo, si ocurre algun fallo en un satelite no se espera que tenga que ir un astronauta a conectarse por consola, sinó que se espera que el fallo se corrija solo.

Incluso aúnque no sean sistemas empotrados, a nadie le gusta recibir un mensaje al móbil que se ha caído el BIND a las 4 de la mañana, por lo que las daemontools pueden ayudarnos a hacernos la vida mas tranquila.

Mediante la utilidad daemontools se facilita la tarea de instalar daemons y monitorizar su estado. En caso de qualquier error, si el daemon muere, éstas lo volveran a arrancar evitando que el servicio se matenga parado hasta la llegada de un operador.

Éstas suelen instalarse con qmail, pero no se limita a este, resulta útil para qualquier tipo de daemons. Para la instalación de las daemontools se puede seguir el punto 2.7 de la guia “Life with qmail“.

Una vez instalado para habilitar daemons que funcionen con las daemontools solo debemos crear en algun punto un directorio con el nombre del programa y crear un script llamado “run“:

mkdir -p /usr/local/supervise
cd /usr/local/supervise
mkdir mysql
cd mysql
vi run

En el script solo debemos ejecutar el daemon con los parametros adecuados para que no base a background, sinó que se quede en foreground. Vamos a ver unos ejemplos:

MySQL

#!/bin/bash
exec /usr/local/mysql-percona/libexec/mysqld --basedir=/usr/local/mysql-percona \
       --datadir=/usr/local/var/mysql --user=mysql \
       --pid-file=/usr/local/mysql-percona/var/piques.pid \
       --skip-external-locking --port=3306 --socket=/tmp/mysql.sock \
       --log-queries-not-using-indexes

Apache

#!/bin/bash
exec /usr/local/apache/bin/httpd -DNO_DETACH -f /usr/local/apache/conf/httpd.conf

BIND

#!/bin/bash
exec /usr/sbin/named -u named -t /var/named/chroot -f

y así muchos otros…

Control de los daemons

Tambien mediante el comando svc se pueden arrancar y parar los daemons. Sus opciones son:

  • Envia un HUP:
    svc -h /service/daemon
  • Envia un TERM y reinicia el daemon cuan este acabe:
    svc -t /service/daemon
  • Envia un TERM y mantiene apagado (down) el daemon (no lo vuelve a iniciar):
    svc -d /service/daemon
  • Vuelve a levantar (up) el servicio
    svc -u /service/daemon
  • Ejecuta una vez el servicio (ideal para debugging):
    svc -o /service/daemon

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>