我已成功配置 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
验证您的 command.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