Утверждение расширенной информации из Nagios check_mysql

Я запускаю плагин check_mysql с помощью NRPE на удаленном сервере DB, и пока я могу получить удовлетворительные данные о том, не сервер процесс работает должным образом, я вижу, что плагин выводит намного больше информации:

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;;;

Это заставляет меня думать, что я могу утверждать такие вещи, как количество потоков или медленные запросы для генерации предупреждений утверждает.

Вопрос в том, как мне это сделать? Параметры плагина -w и -c имеют дело только с дрейфом тактовой частоты ведущий-ведомый, но ни с какими другими параметрами.
Нужно ли мне создавать какой-нибудь настраиваемый сценарий оболочки, чтобы проанализировать вывод, а затем вернуть собственный вывод? Или в Nagios Core есть встроенное средство для подобного рода манипуляций?

1
задан 13 January 2020 в 21:35
1 ответ

В конце концов, я решил, что лучшим вариантом действий будет создание собственных сценариев по спецификациям плагинов, а также выполнение некоторых операций по обмундированию струн с помощью awk. Для дальнейшего использования (caveat implementationor):

#! /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

В случае использования по назначению, вы вызываете это через пользовательскую команду в NRPE-конфигураторе, и передаете метрики и пороговые значения. Перед вызовом вам нужно будет изменить соединение, как это требуется для вашей установки.

Обратная связь и комментарии приветствуются.

.
0
ответ дан 14 January 2020 в 22:17

Теги

Похожие вопросы