You are here:-Cómo supervisar, reiniciar automáticamente y mostrar el estado actual de un servicio de Linux

Cómo supervisar, reiniciar automáticamente y mostrar el estado actual de un servicio de Linux

Para supervisar un servicio, reiníciarlo automáticamente y enviar el estado actual con HTTP a PRTG, utilice la siguiente secuencia de comandos. La secuencia de comandos básicamente comprueba si el servicio deseado está disponible o no. Si el servicio está activado, el script enviará un informe al servidor PRTG con el valor “1”. El valor “1” significa que el servicio está activo y el valor “0” significa que el servicio está inactivo o que no pudo reiniciarse correctamente. El script también envía mensajes de sensores como “$ service is running”, “$ service is down”, “$ service reiniciado correctamente” y “$ service no puede reiniciarse correctamente”.

 

Cómo utilizar el script

Guarde el script en la máquina de destino, donde puede ser ejecutado por CRON.

 

#!/bin/bash
#    ____  ____  ____________
#   / __ \/ __ \/_  __/ ____/
#  / /_/ / /_/ / / / / / __  
# / ____/ _, _/ / / / /_/ /  
#/_/   /_/ |_| /_/  \____/                         
#    NETWORK MONITOR
#-------------------
#(c) 2016 Dariusz Gorka, Paessler AG
#
#This script checks if a certain service is running.
#The script also tries to restart the service if it is not started.
#

#Enter the correct process name. (ps -e)
service=$1
#Enter the server address of your PRTG, including HTTPS/HTTP and the sensor port.
prtghost=$2
#Enter the Identification Token of the HTTP Push Data Advanced sensor.
identtoken=$3

#Check if process is running
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
  then
    #Send response to PRTG that the service is running.
    wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>1</value></result><text>Service: $service is running!</text></prtg>"
  else
    #Send response to PRTG that the service is not started.
    wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>0</value></result><text>Service: $service is down, but will restart!</text></prtg>"
    #Try to restart the service
    /etc/init.d/$service start

    #Check if restart was successfully
    if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
      then
        #Send response to PRTG that the restart was successfully
        wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>1</value></result><text>Service: $service restarted properly!</text></prtg>"
      else
        #Send response to PRTG that the restart was not succesfully
        wget -O/dev/null "$prtghost/$identtoken?content=<prtg><result><channel>$service status</channel><value>0</value></result><text>Service: $service can't restart properly! Please take action!</text></prtg>"
      fi
fi


El siguiente paso es crear el siguiente CRONTAB en su servidor Linux para usar el script. Para abrir el archivo CRONTAB, ingrese el comando “crontab -e”, como root, y pegue el código en la última línea.

*/5 * * * * /PATH/TO/THESCRIPT/script.sh <SERVICENAME> <PRTGHOST> <IDENT-TOKEN>

Por favor, tenga en cuenta para ajustar la ruta y los parámetros de la crontab, como los ejemplos a continuación!

  • <SERVICENAME>: snmpd
  • <PRTGHOST>: https://prtg.paessler.com:5050
  • <IDENT-TOKEN>: prtg-is-great

La respuesta se enviará al sensor HTTP Push Data Advanced. Por favor, cree este sensor con las siguientes configuraciones:

  • Nombre del sensor: <NOMBRE DEL SERVICIO>
  • Puerto: 5050 (Por favor, utilice un puerto diferente, o Token de Identificación para cada sensor!)
  • Fichero de Identificación: <YOUR-IDENT-TOKEN>
  • Otras opciones: Puede usar la configuración predeterminada para las otras opciones.

El último paso es establecer un límite en el canal del sensor “$ status de servicio”. Para establecer este límite, active los límites en la configuración del canal e introduzca un “1” en el “Lower Error Limit (#)”.

Last Update: febrero 28, 2017  

febrero 28, 2017   86   Ateinco    Linux, PRTG    
Total 0 Votes:
0

Tell us how can we improve this post?

+ = Verify Human or Spambot ?

Log In is required for submitting new question.

By | 2017-02-28T18:01:40+00:00 febrero 28th, 2017|0 Comments

About the Author:

Leave A Comment

Log In is required for submitting new question.