Назад | Перейти на главную страницу

"Длительный срок службы" в Nagios почему-то не нравится

В соответствии с эта страница предел $LONGSERVICEOUTPUT$ составляет 4 КБ, но в моем случае он перестает показывать остальную часть вывода после 970 байт вывода (26 строк), где есть несколько новых строк и нет длинных строк. Я использую NRPE 2.15 и Nagios 3.5.1.

Вопрос

Есть идеи, что не так?

Плагин My ​​Nagios

#!/usr/gnu/bin/sh

ZPOOL="/sbin/zpool"

if ! [ -x $ZPOOL ]; then
    echo "CRITICAL: $ZPOOL not found or not executable."
    exit 3
fi

for DEVICE in $($ZPOOL list -H -o name); do

    HEALTH="$($ZPOOL list -H -o health $DEVICE)"

    case "$HEALTH" in
        ONLINE)
            T="OK: $DEVICE ONLINE. "
            ;;
        DEGRADED)
            T="ERROR: $DEVICE DEGRADED"
            ;;
        FAULTED)
            T="ERROR: $DEVICE FAULTED"
            ;;
        OFFLINE)
            T="ERROR: $DEVICE OFFLINE"
            ;;
        REMOVED)
            T="ERROR: $DEVICE REMOVED"
            ;;
        UNAVAIL)
            T="ERROR: $DEVICE UNAVAIL"
            ;;
        FAULTED)
            T="ERROR: $DEVICE FAULTED"
            ;;
        *)
            T="CRITICAL: $HEALTH is an unknown zpool state for $DEVICE."
            ;;
    esac

    M+="$T"
    S+="$($ZPOOL status $DEVICE)"
done

echo "$M"
echo "$S"

if grep -q CRITICAL <<< "$M"; then
    exit 3
elif grep -qE 'DEGRADED|FAULTED|OFFLINE|REMOVED|UNAVAIL|FAULTED' <<< "$M"; then
    exit 2
elif grep -q ONLINE <<< "$M"; then
    exit 0
fi

Сам Nagios может обрабатывать 4 КБ вывода от плагинов, но NRPE по умолчанию ограничен 1 КБ.

Вы можете увеличить это ограничение в исходном коде и перекомпилировать, если хотите. Это определяется как MAX_PACKETBUFFER_LENGTH в include / common.h:

include/common.h:#define MAX_PACKETBUFFER_LENGTH    1024

Возможно, вам также придется изменить check_nrpe, чтобы он соответствовал новому размеру. Эти изменения задокументированы в это старое обсуждение форума, слишком.

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

Видеть Раздел "Протокол" этого случайного блога для подробностей.