我正在多台机器上运行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]"
这台机器的configuration非常简单:
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?
nagios脚本匹配你的4个返回条件中的3个,这就是为什么它返回OK。
从check_snmp文档 :
-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并返回OK ,忽略p2
我会尝试没有-r "OK"并确认你得到你期望的结果。 如果返回结果不正确,我会试用--invert-search :
--invert-search Invert search result (CRITICAL if found)