如何在 Nagios 中查看先前检索到的 SNMP 值

如何在 Nagios 中查看先前检索到的 SNMP 值

我已成功配置 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

相关内容