据我所知,我已经正确配置了 nagiosgrapher,但日志仍报告缺少数据。例如,对于负载,在/var/log/nagiosgrapher/ngraph.log
:
2012-08-02 22:30:16 PIPE: myhost CPU Load OK - load average: 0.00, 0.00, 0.00 load1=0.000;15.000;30.000;0; load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;
2012-08-02 22:30:16 VALUES: [myhost][CPU Load]:No matching output values found...
我之前曾在 Debian 系统上配置过 Nagios 和 Nagiosgrapher,从未遇到过这样的问题,而且到目前为止也无法解决它。
系统仅使用默认插件。相关/etc/nagios3/nagios.cfg
值是:
process_performance_data=1
和
service_perfdata_command=ngraph-process-service-perfdata-pipe
我尝试以不同的顺序重新启动 Nagios 和 Nagiosgrapher,这是我在 Google 搜索中发现的,但似乎没有效果。
知道我可能做错了什么或应该去哪里查找吗?所有其他 Nagios 功能似乎在本地和远程主机上都正常运行。
答案1
日志显示 PIPE 行意味着您已配置 Nagios 以正确将数据发送到 Nagiosgrapher。
“未找到匹配的输出值”这一行意味着“CPU 负载”ngraph 定义中的正则表达式与其获得的数据中的任何内容都不匹配(“OK - 平均负载:0.00、0.00、0.00 load1=0.000;15.000;30.000;0;load5=0.000;10.000;25.000;0;load15=0.000;5.000;20.000;0;”)。
您应该有一个配置文件(可能是“check_load.ncfg”),它为包含名称“load”的服务定义 ngraph。检查 ngraph.d 文件夹,或者您放置 Nagiosgrapher 配置片段的任何地方,然后确保“graph_log_regex”或“graph_perf_regex”条目有意义。
答案2
我要在这里详细回答我自己的问题,因为这个问题让我抓狂了一段时间,希望它能帮助其他正在寻找相同问题的人。不过,感谢 Keith 的回答,让我走上了正确的道路。
为了调试这个问题,我编辑了 /etc/nagiosgrapher/ngraph.ncfg 文件并将日志设置为最详细的设置:
log_file /var/log/nagiosgrapher/ngraph.log
log_level 255
然后我通过重新启动了 nagiosgrapher/etc/init.d/nagiosgrapher restart
并开始查看上述位置的日志。
这里发生了三件事,所有这些都导致了我的问题:
问题 1
无论出于什么原因,nagiosgrapher 的 Debian 发行版不再安装 check_disk.ncfg 和 check_load.ncfg 图形定义。当出现问题时,我总是认为我做错了什么,但在这种情况下,它们根本不存在——但是,它们在发行版和系统中。您只需复制它们:
cp /usr/share/nagiosgrapher/debian/cfg/ngraph.d/standard/check_disk.ncfg /etc/nagiosgrapher/ngraph.d/standard
cp /usr/share/nagiosgrapher/debian/cfg/ngraph.d/standard/check_load.ncfg /etc/nagiosgrapher/ngraph.d/standard
这可能只是软件包安装脚本的问题,但我尚未验证这一点,您的情况可能有所不同。但这对我来说是有效的。
问题 2
我在定义它的文件中将“当前负载”重命名service-description
为“CPU 负载” /etc/nagios3/conf.d/services_nagios2.cfg
,这在当时似乎没什么问题。但是,nagiosgrapher 软件包附带了一个名为的插件,check_hardware
该插件有一个定义为“CPU”的块,显然,nagiosgrapher 会查看该服务描述,根据空格进行解析,然后检查匹配的块,在本例中同时检查“CPU”和“负载”。此外,只要其中一个块无法匹配,整个写入就会失败,从而导致我在上面的问题中收到的消息。
问题 3
与问题 2 类似,我添加了对 MySQL 分区的监控,并将其设置service-description
为“磁盘空间:MySQL”。同样,由于 nagiosgrapher 正在解析空格,因此它同时看到了“磁盘”和“MySQL”,并触发了 MySQL 图形插件,而该插件在磁盘输出上当然失败了。更改服务描述解决了这个问题。
完成上述更改后,执行以下操作:
/etc/init.d/nagiosgrapher restart
这将开始正确生成图形数据。运行一段时间后,每个图形至少生成一次(您可以在日志中验证或直接在目录中查看/var/lib/nagiosgrapher/rrd/
),然后重新启动 Nagios:
/etc/init.d/nagios3 restart
至此,一切都应该正常运行。
不管怎样,这些是我安装的导致我遇到此问题并找到解决方案的软件包:
ii nagios-images 0.7 Collection of images and icons for the nagios system
ii nagios-nrpe-plugin 2.12-4 Nagios Remote Plugin Executor Plugin
ii nagios-nrpe-server 2.12-4 Nagios Remote Plugin Executor Server
ii nagios-plugins-basic 1.4.15-3squeeze1 Plugins for the nagios network monitoring and management system
ii nagios-plugins-standard 1.4.15-3squeeze1 Plugins for the nagios network monitoring and management system
ii nagios3 3.2.1-2 A host/service/network monitoring and management system
ii nagios3-cgi 3.2.1-2 cgi files for nagios3
ii nagios3-common 3.2.1-2 support files for nagios3
ii nagios3-core 3.2.1-2 A host/service/network monitoring and management system core files
ii nagiosgrapher 1.7.1-2+deb60u1 Charting add-on for Nagios