Menú principal

Reiniciando automáticamente Unicorn con Monit

24 Jan
Published by hermes.ojeda in

Tags 

SysAdmin, Nginx, Rails

Para desplegar nuestras aplicaciones Rails utilizamos Nginx+Unicorn+Capistrano.

La tarea de Capistrano que se encarga de hacer el 'restart', lo único que hace es hacer un touch a un archivo 'restart.txt' en nuestra aplicación. Pero en realidad no reinicia nuestro servidor, específicamente Unicorn que es el que se encarga de despachar nuestra aplicación.

Para eso podemos utilizar Monit, y configurarlo para que monitoree nuestra aplicación y detecte cuándo cambio el archivo 'restart.txt' y se encargue de reiniciar nuestro servicio.

Para poder entender esta parte se harán las siguientes suposiciones:

  • Se tiene un despliegue parecido al que se explica en este railscast.
  • Se cuenta con un servicio llamado unicorn-blog, que es el que se encarga de reiniciar unicorn. (Para mayor detalle en el railscasts).

Primero instalamos Monit en nuestro servidor:

apt-get install monit

No hay que olvidarse de configurar en /etc/monit/monitrc, en la parte de httpd, para darle permisos al usuario y los grupos correspondientes.

Una vez hecho esto, creamos el siguiente archivo /etc/monit/conf.d/unicorn-blog, con el contenido a continuación:

Y listo, ahora monit se encargará de revisar cuando reiniciar nuestra aplicación Rails.