いくつかのマシンでcheck_raidスクリプトを実行していますが、今日、マシンの1つが劣化状態にあることに気付きましたが、警告は表示されませんでした。スクリプトは「CRITICAL」を返しますが、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を返しますか?
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が正常であることを確認し、p2を無視してOK
を返します。
-r "OK"
なしで試してみて、期待どおりの結果が得られることを確認します。誤った戻り結果が続く場合は、--invert-search
を試してみます。
--invert-search
Invert search result (CRITICAL if found)