我正在多台机器上运行 check_raid 脚本,今天我才注意到其中一台机器处于降级状态,但我没有收到警报。脚本返回“严重”,但 Icinga 认为它没问题。
这是我在 Icinga 机器上看到的内容(我已经更换了磁盘):
SNMP OK - "CRITICAL: tw_cli:[c3(9650SE-4LPML): u0(RAID-10): REBUILDING 65%, Cache:Ri, Drives(4): p2=DEGRADED p0,p1,p3=OK]"
这台机器的配置非常简单:
define service{
use generic-service
host_name test
service_description RAID Status
check_command check_raid
}
这是命令定义:
define command{
command_name check_raid
command_line /usr/lib/nagios/plugins/check_snmp -H $HOSTADDRESS$ -o ucdavis.80.3.1.1.13.47.117.115.114.47.98.105.110.47.112.101.114.108 -C public -r "OK"
在被检查的机器上,我在 snmpd.conf 中有以下内容:
extend .1.3.6.1.4.1.2021.80 /usr/bin/perl /usr/local/bin/check_raid.pl
我正在使用最新版本的脚本,有人知道我做错了什么吗?-r“OK”总是返回 ok 吗?
答案1
nagios 脚本匹配 4 个返回条件中的 3 个,这就是它返回 OK 的原因。
-r, --ereg=REGEX
Return OK state (for that OID) if extended regular expression REGEX matches
您的脚本返回以下内容(为了简洁起见,我对其进行了编辑):
"CRITICAL: [...] p2=DEGRADED p0,p1,p3=OK]"
看到check_snmp
p0, p1, p3 都正常,就返回OK
,忽略 p2
我会尝试不使用-r "OK"
并确认您是否获得了预期的结果。如果不正确的返回结果仍然存在,我会尝试--invert-search
:
--invert-search
Invert search result (CRITICAL if found)