cerosyunos.jpg

Pequeñas o grandes corporaciones cuentan con una gran cantidad de servicios en producción en servidores, que pudiera pensarse imposible de monitorear de forma manual.

Existen gran cantidad de herramientas en internet para ello, entre ellas nagios, una de las mas completas, pero en esta ocasión decidimos desarrollar un script que permite monitorear e iniciar el servicio que le indiquemos.

El script, es muy sencillo de entender, los servicios que deseamos monitorizar se indican en un archivo de texto, validando el servicio que deseamos controlar en nuestro servidor, para el caso de distribuciones basadas en Debian, como es Ubuntu, entramos al directorio /etc/init.d y determinamos cuales queremos chequear.

Se obtiene la fecha y hora del sistema, para registrar en un log que maneja el script, las incidencias del servicio.

¿Pero, que hacer si el servicio esta inactivo?. Al momento de determinar el servicio inactivo, se inicia y se envía un email al administrador, para que valide el error puntual que origino la caída del servicio.

He aquí, el código fuente del script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#! / bin / bash
FILE=servicios.txt
TIME='date +%Y-%m-%d_%H-%m-%S'
 
while read linea; do
 
if ps ax | grep -v grep | grep $linea > /dev/null
    then
        echo "Servicio $linea esta ejecutandose"
    else
        echo "El Servicio $linea ,estaba DETENIDO, a las $TIME" >> Servicios.log
    service $linea start
    echo "Validar el estado del servicio, si esta down, puede ser iniciado con:  service $linea status, estaba down a las $TIME" | mail -s "Servicio $linea Detenido " Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
fi
 
done < "$FILE"

Debemos tomar en cuenta,  crear el archivo de servicios.txt en la misma ruta donde coloquemos el script, por aquello del tema de las rutas.

El archivo de Servicios.log podemos mudarlo a la ruta que deseamos, por solo mencionar /var/log/, para este caso, quedó en la misma ruta del script.

Ahora solo queda colocarlo en un cron. Al ser un proceso de corto tiempo de procesamiento del servidor, podemos programarlo cada 3 minutos, para que valide el estado del servicio. ¿ Como hacerlo ? editamos el vim /etc/crontab y agregamos la siguiente linea.

1
*/3 * * * * /ruta/del/script/script.sh

 

Fuente: lamiradadelreplicante

¿Quién está en línea?

Hay 14260 invitados y ningún miembro en línea