monitorear los servicios en un servidor mediante un script

Las corporaciones tanto grandes como pequeñas usan servidores para alojar en ellos gran cantidad de información y a su vez en esos servidores se realizan enormes cantidades de servicios y que es casi imposible monitorear cada uno de ellos de forma manual.  Claro en la red de redes podemos encontrar muchas aplicaciones destinadas a esa tarea, (nagios es una de ellas) pero hoy no hablaremos de alguna aplicación, sino que un script será el que nos brinde su ayuda para monitorizar los servicios en un servidor.

servidores hp


Este Script es muy sencillo asi que facilmente podemos comprender de que se trata, vamos a indicar en un archivo de texto cuales son esos servicios que deseamos monitorizar mediante el script, pero para esto primero debemos validar el servicio que queremos controlar en el servidor.  Si vamos a emplear este codigo en una distro basada en debian (por ejemplo Ubuntu) entraremos en el directorio /etc/init.d y procedemos a establecer cuales son los servicios que vamos a chequear, a continuación veran el script.

#! / 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 “Comprobar el estado del servicio, si esta down, puede ser iniciado con:  service $linea status, estaba down $TIME” | mail -s “Servicio $linea Detenido ” usuario@dominio.com

fi
done < “$FILE”

 Si queremos contar con un registro mucho más completo y también mas detallado de todo lo que sucede con los servicios que se estan ejecutando dentro del servidor, podemos establecer los parametros para que guarde en un log que maneja el Script cada incidencia indicando la hora y fecha del sistema.

Si se llegase a detener algun servicio, este se reinicia mediante el script y tambien se envía un e-mail al administrador con la información relativa del error que origino la caída del servicio, así el administrador puede chequear y realizar los correctivos.

cliente_servidor

Un detalle que debemos tener presente para que no se nos pase por alto es que cuando creamos el archivo de texto indicando los servicios que deseamos monitorear, debemos alojarlo en la misma ubicación donde coloquemos el script , mientras que el archivo de servicios.log no necesariamente debe estar en la misma ruta, podemos dejarlo en la ruta que queramos.

Muy bien, Ahora ya tenemos todo listo para comenzar a monitorizar los servicios en el servidor, solo nos falta colocarlo en un cron. como este resulta ser un proceso que es rapido y que no requiere de mucho tiempo de procesamiento, podemos hacer los ajustes necesarios para que se ejecute cada cierto tiempo (cada 5 minutos parece un tiempo razonable) y haga el analisis de cada estado de servicio; para ejecutar esta tarea solo editamos vim /etc/crontab y agregamos esta línea de codigo:

*/5 * * * * /ruta/del/script/script.sh
monitorear los servicios en un servidor mediante un script monitorear los servicios en un servidor mediante un script Reviewed by PDFREEBOOK on 15:47 Rating: 5