Script para monitorear los servicios en un servidor

cerosyunos

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:

#! / 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 " usuario@dominio.com
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.

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

13 thoughts on “Script para monitorear los servicios en un servidor”

  1. davidochobits says:

    Interesante aporte. Le echaré un vistazo para probarlo.

    Salu2!

  2. Anónimo says:

    No sé si “monitorear” será una nueva variante del toreo. Puede que sea algo así como torear monos. En cualquier caso ese bonito “palabro” no viene en el diccionario.

    La palabra correcta que respalda la RAE es MONITORIZAR.

    1. tannhausser says:

      @Anónimo Otro “listo” de la gramática que solo comenta en blogs para eso, haciendo el ridículo:

      http://dle.rae.es/?id=PehHKV2

      http://lema.rae.es/dpd/srv/search?id=79HjiY8E1D68S0oGfe

      http://www.fundeu.es/recomendacion/monitorizar-y-monitorear-formas-correctas-en-espanol/

      Encima poniendo mayúsculas como si eso le fuera a dar la razón XD

      1. Anónimo says:

        No soy un “listo de la gramática”. No hace falta ponerse así, hombre.

        Como bien dice el segundo enlace de la RAE que refieres, en España solo se usa el término “monitorizar”, siendo el término “monitorear” exclusivo en América.

        Mi error ha sido dar por hecho que este era un blog de España. Te pido disculpas por ello.

        Saludos.

        1. tannhausser says:

          Es un blog en español…no de España (ni siquiera está alojado ahí) y bueno..lo lee gente de todas partes.

          Entiendo que te llamará la atención el termino (vale, reconozco que yo también tenía dudas la primera vez que lo vi 🙂 ), pero da la casualidad de que en esta ocasión no escribí yo el post, sino @Anger que si es de origen latinoamericano y de vez en cuando colabora en el blog, con este tipo de post más técnicos.

          Un saludo, disculpas aceptadas y seguro que tendrás ocasión de corregirme muchas más veces (lo de revisar la ortografía como que lo llevo mal)

          1. Ainumortis says:

            La gente que se dedica a corregir la ortografía hasta la más mínima forma son las más odiosas, no porque tengan razón, puede que si, puede que no, pero les pierde su prepotencia y egocentrismo, hay cientos de palabras que no se feflejan en la Rae, pero si todo el mundo lo usa así y todo el mundo lo entiende respetando el principio de la comunicación de un lenguaje estas tarde o temprano se añaden, así que la Rae no es ni la biblia ni santo grial de lo correcto para aquellos que andan queriendo tener la razón.

            Además considero ese detalle offtopic porque hablamos de una script para la terminal y no de la ortografía, llega a ser mi blog y lo baneo.

    2. Anger says:

      Oye, Oye, Oye, el script funciona, con o sin la Horrografia, al final importa que funcione, no esta de mas que mejoremos en la ortografía y “aceptada tu critica”, pero me tomo el día para un aporte que sea funcional y de ayuda para la comunidad. Y somos criticados por una palabra. Te sale por la derecha un rm -f

  3. EV says:

    saludos; Buen post compañero; solo quería consultarte para salir de dudas, cuando tu indicas que tenemos que colocar los servicios a verificar en el archivo .txt se colocaria solo el nombre del servicio, como por ejemplo sshd named ???

    1. Anger says:

      Hola, buen día, en efecto como comentas, se debe de colocar cada servicio, linea por linea, en el archivo .txt

  4. linuxmanr4 says:

    Vaya vaya con los amigos de DesdeLinux, si más no recuerdo vendieron el sitio ¿o no? …

    1. rawBasic says:

      Sí, lo vendieron. Y estos nuevos no es la primera vez que roban descaradamente, copiando hasta el output en la terminal textual, cambiando sólo unas palabras del post. No dan crédito, y cuando se los comentas te borran los comentarios.

      Otro caso el cual les dejé un comentario y fue borrado fue:
      http://blog.desdelinux.net/reduce-el-peso-de-las-imagenes-desde-la-terminal/
      robo textual de:
      http://lamiradadelreplicante.com/2016/04/06/optimizar-imagenes-desde-la-terminal-en-linux/

      Asco dan. Saludos.

      1. tannhausser says:

        Deberían cambiarse el nombre y llamarse DesdeCopyPasteLinux. Aunque eso también les queda grande, no saben ni copiar…

      2. linuxmanr4 says:

        Es una verdadera lástima, pero era de esperarse. Ahora son redactores los que escriben las notas, una búsqueda en internet, cambiar dos o tres palabras y listo ¡a cobrar!.

Deja un comentario