web-dev-qa-db-ja.com

check_snmp警告と負の値のクリティカルしきい値

DBmで測定されたいくつかの信号レベル値を照会していますが、削除デバイスのSNMPホストは、値を負の値、つまり-90dBmとして報告します。ただし、check-snmpは、しきい値の一部として負の数を処理できないようです。 OIDのコレクションの一部として値を指定すると、構文は受け入れられますが、snmp値が正に変換されるため、常にWARNING/CRITICALの結果が生成されます。

root@ops-00:/usr/local/nagios/libexec# ./check_snmp -H 192.168.1.100 -o DEVICE-MIB::AverageReceiveSNR.0,DEVICE-MIB::CurrentNoiseFloor.0 -w 10:,~:-85 -c 15:,~:-80 -vvvv
/usr/bin/snmpget -t 1 -r 5 -m ALL -v 1 [authpriv] 192.168.1.100:161 DEVICE-MIB::AverageReceiveSNR.0 DEVICE-MIB::CurrentNoiseFloor.0
DEVICE-MIB::AverageReceiveSNR.0 = INTEGER: 25
DEVICE-MIB::CurrentNoiseFloor.0 = INTEGER: -97
Processing line 1
  oidname: DEVICE-MIB::AverageReceiveSNR.0
  response:  = INTEGER: 25
Processing line 2
  oidname: DEVICE-MIB::CurrentNoiseFloor.0
  response:  = INTEGER: -97
SNMP CRITICAL - 25 *97* | DEVICE-MIB::AverageReceiveSNR.0=25 DEVICE-MIB::CurrentNoiseFloor.0=97

単一のOIDで実行すると、形式が正しくないというエラーが表示されます。

root@ops-00:/usr/local/nagios/libexec# ./check_snmp -H 192.168.1.100 -o DEVICE-MIB::CurrentNoiseFloor.0 -w ~:-85 -c ~:-80 -vvvv
Range format incorrect

編集:-w = rangeを使用すると、適切に解析されますが、値は正に変換されます。

root@ops-00:/usr/local/nagios/libexec# ./check_snmp -H 192.168.1.100 -o DEVICE-MIB::CurrentNoiseFloor.0 -w=~:-85 -c=~:-80 -vvvv
/usr/bin/snmpget -t 1 -r 5 -m ALL -v 1 [authpriv] 192.168.1.100:161 DEVICE-MIB::CurrentNoiseFloor.0
DEVICE-MIB::CurrentNoiseFloor.0 = INTEGER: -97
Processing line 1
  oidname: DEVICE-MIB::CurrentNoiseFloor.0
  response:  = INTEGER: -97
SNMP CRITICAL - *97* | DEVICE-MIB::CurrentNoiseFloor.0=97  

また、しきい値を定義せずに実行すると、正しく機能し、正しい値を返します。これによりグラフは正しくなりますが、範囲外の場合は通知が生成されません。

root@ops-00:/usr/local/nagios/libexec# ./check_snmp -H 192.168.1.100 -o DEVICE-MIB::CurrentNoiseFloor.0 -vvvv
/usr/bin/snmpget -t 1 -r 5 -m ALL -v 1 [authpriv] 192.168.1.100:161 DEVICE-MIB::CurrentNoiseFloor.0
DEVICE-MIB::CurrentNoiseFloor.0 = INTEGER: -97
Processing line 1
  oidname: DEVICE-MIB::CurrentNoiseFloor.0
  response:  = INTEGER: -97
SNMP OK - -97 | DEVICE-MIB::CurrentNoiseFloor.0=-97  

私はここで何が間違っているのですか?たとえば、ノイズフロアが-80 dBm以上の場合はクリティカル、-85〜-80 dBmの場合は警告、-85 dBm以下の場合はOKを生成するにはどうすればよいですか?負の値を処理する場合、独自のSNMPプラグインを作成する必要がありますか?

2
Oesor

-w = -85:-c = -80:は必要な構文ですが、エラーがトリガーされた場合でも、check_snmpは出力を正に変換します。バグレポートが提出されました。

3
Oesor

私はこれを-w〜:0.5 -c0.5使用しました。 〜:0.5を使用すると、負の値が許可されます。私はこれをウェブサイトから入手しました: https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT

2
ljf0021