根据此页面,限制$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 中定义:您可能还必须修改 check_nrpe 以匹配新大小。这些更改也记录在这个旧论坛讨论中。
或者,您可能对来自 Opsview 的添加了类似功能的补丁感兴趣。
有关详细信息,请参阅此随机博客的“协议”部分。