Monitorizar servidor web para ver si está caído o no de forma automática
Probablemente, tengáis más de una vez problemas con los servidores que mantenéis. Un problema típico es que un servidor web deja de dar servicio por cualquier razón. Cuando esto pasa depende de la gravedad, podemos tomar muchas acciones. A veces con reiniciar el servidor web, un proxy caché que tengas o cualquier otro, puede ser suficiente.
Para no tener que estar pendientes, lo ideal es que tengas este proceso automatizado y se ejecute cada cierto tiempo. ¿Cómo? Veamos.
Crear el script
Este es el primer paso, deberemos crear un fichero chequeo.sh o como queráis llamarlo con permisos de escritura e incluir dentro de él las siguientes líneas:
#!/bin/bash url="aquí_tu_url"; response=$(curl -s -I -L $url | grep HTTP); status=${response#* }; status=${status:0:3}; if [ "$status" != "200" ] then // acciones a efectuar fi
Sólo necesitaréis tener instalado curl. Dentro de URL ponéis la URL que queráis vigilar, propia o externa y en acciones a efectuar pues ya veis qué os interesa más: enviaros un correo con la alarma, forzar un reinicio del servicio (service apache2 restart o service varnish restart) o llamar a otro script para cualquier otra acción.
Programar la ejecución
Todo esto está interesante, pero mucho más si lo metemos en el cron. Para ello nos vamos al fichero /etc/crontab como superusuarios e insertamos una línea más:
0-59 * * * * root sh /ruta-a-fichero/chequeo.sh
Guardamos y listo.