Nagios의 check_mysql에서 확장된 정보에 대한 어설션

Nagios의 check_mysql에서 확장된 정보에 대한 어설션

원격 DB 서버에서 NRPE를 사용하여 플러그인을 실행하고 있는데 check_mysql서버 여부에 대한 만족스러운 데이터를 얻을 수 있습니다.프로세스필요에 따라 작동하면 플러그인이 더 많은 정보를 출력하는 것을 볼 수 있습니다.

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

결국 나는 플러그인 사양에 따라 사용자 정의 스크립팅을 작성하고 awk. 나중에 참고할 수 있도록(주의사항 구현자):

#! /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 구성의 사용자 지정 명령을 통해 이를 호출하고 측정항목과 임계값을 전달합니다. 전화하기 전에 설치에 필요한 연결을 변경해야 합니다.

피드백과 의견을 환영합니다.

관련 정보