BASH – Plugin NAGIOS «monitoreo de procesos» (Tips para NagiosQL).

En NagiosQL, al definir un servicio a monitorear, especificamente al ingresar un argumento, no permite poner espacios en blanco. Esto da un error al ejecutar el proceso, ya que al encontrar espacios en blanco, asume que es un nuevo argumento. Para solucionar esto se debe definir uno o varios caracteres que indicaran que corresponde a un espacio en blanco y luego en el SCRIPTS ubicado en el equipo a monitorear. Para este ejemplo, definire que la cadena «-b-» corresponde a un espacio en blanco. Luego el script ubicado en el servidor a monitorear, procede a transformar la cadena (proceso) y pone los espacios en blanco donde corresponde.

El siguiente SCRIPT puede utilizarse para monitorear cualquier proceso que este corriendo en un servidor. Utiliza 3 argumentos, el proceso a monitorear, el usuario con que corre el proceso y el minomo y maximo de procesos que corren simultaneamente (Formato min:max) :

#!/bin/bash
# parametro1  Corresponde al proceso a monitorear
# parametro2  Corresponde al usuario dueñel proceso a monitorear
# parametro3  Corresponde corresponde al minimo y maximo de procesos (min:max)

proceso=$1
usuario=$2
minmaxi=$3

# Saca el valor minimo y maximo de proceso a monitorear.
min=`echo $minmaxi | cut -d: -f1`
max=`echo $minmaxi | cut -d: -f2`

#Cambia el patron "-b-" por un espacio en blanco
proceso=`sed 's/-b-/ /g' <<< $proceso`

# El siguiente comando busca el proceso en que el paarametro2 esta al final y comienza con el usuario
# y Cuenta el numero de proceso encontrados

ps=`ps -fu $usuario | grep "$proceso" | wc -l"`

# Eliminamos los espacios en blanco, delante y detras de la variable
num=`echo $ps | sed 's/ //g'`

if [ "$num" -ge "$min" ] && [ "$num" -le "$max" ]; then
          echo "OK - $num Proceso $1 $2 ($3) $4"
            exit 0
    else
          echo "CRITICAL - $num Proceso $1 $2 ($3) $4"
            exit 2
fi
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *