Ya hablé hace tiempo de supervisord y como puede ayudarnos a gestionar programas que deben estar en ejecución y relanzarlos en caso de que tengan algun crash inesperado. Sin embargo, hay una funcionalidad de la que no habé en su momento, y es la posibilidad de recibir alertas cuando supervisord reinicia los servicios de forma automática.
Esto puede sernos util para detectar problemas con estos servicios que de otra forma pasarían inadvertidos.
Si tenemos servicios en supervisord y se reinician una vez a la semana, o incluso cada día, es posible que no nos lleguemos ni a enterar, dependiendo de la naturaleza de los mismos. Sin embargo, si recibimos un correo cada vez que son reiniciados o que fallan, y descubrimos un patrón por el cual cada dia a las 4:10 de la madrugada se reinicia, lo mismo nos pica la curiosidad por investigar qué está causando los problemas.
Lo primero que debemos hacer es instalarnos el paquete python-setuptools si no lo tenemos ya
# apt-get install python-setuptools
Despues, deberemos usar una de las herramientas de este paquete, easy_install, para bajarnos y configurar de forma automática un paquete denominado superlance
# easy_install superlance
Ahora ya tenemos instalado el paquete que nos alerta cuando supervisord reinicia un servicio, solo tenemos que editar /etc/supervisor/supervisord.conf y añadir lo siguiente al final:
[eventlistener:crashmail] command=/usr/local/bin/crashmail -p nombreprograma -p grupo:otroejemplodenombreprograma -m tuusuario@tucorreo.tld events=PROCESS_STATE