我已成功設定 Nagios 3.2.3 來監視多個 SNMP 代理程式。
例如,我正在監視其中一個代理程式上的 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)
但是,我似乎不知道如何查看以前的值。
例如,我想知道代理商今天發送了多少資料報。
我在網頁介面中只能找到可用性報告。
如果我可以產生一個使用實際檢索到的值的報告,那就太好了。
如果這是不可能的,我想知道在哪裡可以找到日誌文件,這樣我至少可以以一種或另一種方式檢索此資訊。
答案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