Este plugin lo utilizo para monitorear x procesos en un determinado servidor. El plugin recibe 3 parámetros cada uno separado por algún descriptor que se defina. En este caso en particular yo opte por el simbolo»&» (ampersand). El primer parámetro es el proceso a monitorear, el segundo es el mínimo y máximo de procesos en ejecución y el tercero es el dueño del proceso (owner).-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#!/bin/bash # Se ingresan los parametros "proceso&1:1&nagios" etc... # Se pueden ingresar multiples parametros separados por & # Nagios exit codes STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 # Variables para almacenar resultados CRITICALS="" WARNINGS="" OKS="" # Funcisn para verificar un proceso check_process() { local descriptor="$1" IFS='&' read -r process_name range owner <<< "$descriptor" IFS=':' read -r min max <<< "$range" # Contar procesos que coinciden en la lmnea completa del comando count=$(ps -fu "$owner" | grep "$process_name" | grep -v grep | wc -l) # Elimina espacios en blanco adelante y detras de variable count count=$(echo $count) if (( count < min || count > max )); then CRITICALS="${CRITICALS}${process_name}(${count})" else OKS="${OKS}${process_name}(${count})" fi } # Procesar todos los argumentos for arg in "$@"; do check_process "$arg" done # Mostrar resultados # Verifica si la variable contiene algun valor if [[ -n "$CRITICALS" ]]; then output="CRIT:$CRITICALS" [ -n "$OKS" ] && output="$output-OK:$OKS" echo "$output" exit $STATE_CRITICAL else echo -e "OK:$OKS" exit $STATE_OK fi |
Este plugin solo reportara cuando el estado sea CRITICO, es decir el proceso este detenido, no subió con el OWNER debido o los parámetros de mínimo y máximo, estén fuera de rango. En el siguiente ejemplo lanzare el plugin para monitorear 3 procesos.
1 |
./checkparam.sh "br00 PRA&1:9&al2" "br01 PRA&1:2&al2" "br04 PRA&1:4&al2" |
Aquí, el resultado obtenido mostrara en primer lugar los procesos critico y después los procesos en estado normal (OK). Aquí el numero que aparece entre paréntesis corresponde a la cantidad de procesos que están en ejecución. El proceso «br01 PRA» aparece en estado critico, ya que indica que existen 7 procesos en ejecución, lo cual esta fuera del rango monitoreado, que indica mínimo 1 y máximo 2.-
1 |
CRIT:brsc01 PRA(7)-OK:brsc00 PRA(6)brsp04 PRA(4) |
Muchas gracias por compartir lo que sabes. Como dirian en mi pueblo «Eres lo máximo» 😉
Gracias.