Linux
Nagios 中的“長期服務輸出”由於某種原因而被扼殺
根據此頁面,限制
$LONGSERVICEOUTPUT$
為 4kB,但在我的情況下,它在 970 字節輸出(26 行)後停止顯示其餘輸出,其中有多個換行符沒有長行。我使用 NRPE 2.15 和 Nagios 3.5.1。問題
知道有什麼問題嗎?
我的 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 本身可以處理來自外掛的 4k 輸出,但 NRPE 預設限制為 1k。
如果需要,您可以在原始碼中提高此限制並重新編譯。它
MAX_PACKETBUFFER_LENGTH
在 include/common.h 中定義:include/common.h:#define MAX_PACKETBUFFER_LENGTH 1024
您可能還必須修改 check_nrpe 以匹配新大小。這些更改也記錄在這個舊論壇討論中。
或者,您可能對來自 Opsview 的添加了類似功能的更新檔感興趣。
有關詳細資訊,請參閱此隨機部落格的“協議”部分。