Afirmando información extendida de check_mysql de Nagios

Afirmando información extendida de check_mysql de Nagios

Estoy ejecutando el check_mysqlcomplemento usando NRPE en un servidor de base de datos remoto y, aunque puedo obtener datos satisfactorios sobre si el servidorprocesoestá funcionando según sea necesario, veo que el complemento genera mucha más información:

user@server:/etc/nagios# /usr/lib/nagios/plugins/check_mysql -H localhost -P 3306 -u nagios -psnip
Uptime: 112398  Threads: 5  Questions: 10921804  Slow queries: 0  Opens: 4408  Flush tables: 1  Open tables: 416  Queries per second avg: 97.170|Connections=137481c;;; Open_files=0;;; Open_tables=416;;; Qcache_free_memory=1031832;;; Qcache_hits=0c;;; Qcache_inserts=0c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=9427651c;;; Qcache_queries_in_cache=0;;; Queries=10921805c;;; Questions=10917613c;;; Table_locks_waited=0c;;; Threads_connected=5;;; Threads_running=1;;; Uptime=112398c;;;

Lo que me hace pensar que puedo afirmar cosas como la cantidad de subprocesos o consultas lentas para generar estados de alerta.

La pregunta es, ¿cómo hago eso? Los complementos -wy -cparámetros solo se ocupan de la deriva del reloj maestro-esclavo, pero ninguno de los otros parámetros.
¿Necesito crear algún script de shell personalizado para analizar el resultado y luego devolver su propio resultado? ¿O hay una instalación integrada en Nagios Core para realizar ese tipo de manipulación?

Respuesta1

Al final, decidí que el mejor curso de acción sería crear un script personalizado siguiendo las especificaciones del complemento y modificar algunas cadenas con awk. Para futura referencia (implementador de advertencias):

#! /bin/bash

parse_mysql_output(){
    METRIC=`/usr/lib/nagios/plugins/check_mysql -H localhost -P 3306 -u nagios -p[REDACTED] | grep -shoP "${METRIC_NAME}: ([\d.]+)" | awk -F ': ' '{print $2}'`
    if (($(echo "$METRIC <= $WARNING_THRESHOLD" | bc -l))); then
        echo "OK - $METRIC_NAME: $METRIC"
        exit 0
    fi

    if (($(echo "$METRIC > $WARNING_THRESHOLD" | bc -l))); then
        if (($(echo "$METRIC <= $CRITICAL_THRESHOLD" | bc -l))); then
            echo "WARNING - $METRIC_NAME: $METRIC"
            exit 1
        fi
    fi

    if (($(echo "$METRIC >= $CRITICAL_THRESHOLD" | bc -l))); then
        echo "CRITICAL - $METRIC_NAME: $METRIC"
        exit 2
    fi

    echo "INDETERMINATE STATE - $METRIC_NAME: $METRIC"
    exit 3
}

if [[ -z "$1" || -z "$2" || -z "$3" ]]
then
    echo "Missing parameters! Syntax: ./`basename $0` metric warning_threshold critical_threshold"
    exit 3
else
    METRIC_NAME=$1
    WARNING_THRESHOLD=$2
    CRITICAL_THRESHOLD=$3
fi

parse_mysql_output

En el caso de uso previsto, llamaría a esto mediante un comando personalizado en la configuración NRPE y pasaría las métricas y los umbrales. Antes de llamar, deberá cambiar la conexión según lo requiera su instalación.

Comentarios y opiniones son bienvenidos.

información relacionada