Nagios で以前に取得した SNMP 値を確認する方法

Nagios で以前に取得した SNMP 値を確認する方法

複数の SNMP エージェントを監視するように Nagios 3.2.3 を正常に構成しました。

たとえば、私はこれらのエージェントの 1 つで OID RFC1213-MIB::udpOutDatagrams.0 を監視しています。

これは正常に動作しています。OID (Nagios のサービス) の現在の値に関する次の情報を取得できます。

Current Status:   OK   (for 1d 9h 46m 24s)
Status Information: SNMP OK - 55886
Performance Data:   RFC1213-MIB::udpOutDatagrams.0=55886c
Current Attempt:    1/3  (HARD state)
Last Check Time:    06-02-2015 16:17:25
Check Type: ACTIVE
Check Latency / Duration:   0.081 / 5.304 seconds
Next Scheduled Check:   06-02-2015 16:27:25
Last State Change:  06-01-2015 06:37:25
Last Notification:  N/A (notification 0)
Is This Service Flapping?     NO   (0.00% state change)
In Scheduled Downtime?    NO  
Last Update:    06-02-2015 16:23:49  ( 0d 0h 0m 0s ago)

しかし、以前の値を表示する方法がわからないようです。

たとえば、エージェントが今日送信したデータグラムの数を知りたいとします。

Web インターフェースで見つけられるのは可用性レポートだけです。

実際に取得した値を使用したレポートを生成できれば素晴らしいと思います。

これが不可能な場合は、ログ ファイルがどこにあるかを知って、少なくとも何らかの方法でこの情報を取得できるようにしたいと思います。

答え1

Nagios はこれらの値を自動的に記録しません。これを手動で有効にする必要があります。nagios.cfg で次のパラメータを変更または追加します。

process_performance_data=1
service_perfdata_file=/var/nagios/perfdata.log
service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata

commands.cfg に次のコマンドが含まれていることを確認します。

define command{
    command_name    process-service-perfdata
    command_line    /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /usr/local/nagios/var/service-perfdata.out
}

これらの設定により、パフォーマンス データが指定されたファイルに記録されるようになります: /var/nagios/perfdata.log

関連情報