我们在设置 icinga / nagios 和 mrtg 时遇到了一个奇怪的问题。
Icinga 运行良好,没有任何问题,它基本上可以监控一切而没有任何问题。
我们设置了 mrtg 来收集来自路由器和交换机的带宽数据。MRTG 运行良好:它将日志数据存储在 /var/www/mrtg/ 目录中并通过 Web 显示图形数据。我们认为 MRTG 运行良好。
我们尝试在 nagios 中设置带宽检查:
define service{
use generic-service ; Inherit values from a template
host_name zywall-agora
service_description ZYWALL AGORA TRAFFICO
check_command check_local_mrtgtraf!/var/www/mrtg/x.x.x.x_2.log!AVG!1000000,2000000!5000000,5000000!1000
check_interval 1 ; Check the service every 1 minute under normal conditions
retry_interval 1 ; Re-check every minute until its final/hard state is determined
}
其中/var/www/mrtg/xxxx_2.log是正确的日志路径文件。
我们不断获得无法打开 MRTG 日志文件icinga 网络界面中的测试结果有误。
我们尝试了一切:
- 将日志文件的所有权授予用户 nagios 或 icinga
- 给文件 chmod 777
- 尝试将文件复制到另一个目录并授予其完全权限
同样的错误。奇怪的是,如果我们在 bash 会话中使用 nagios 生成的命令,该命令会运行得非常好:
/usr/lib64/nagios/plugins/check_mrtgtraf -F /var/www/mrtg/x.x.x.x_2.log -a AVG -w 10,20 -c 5000000,5000000 -e 10
结果:
Traffic WARNING - Avg. In = 17.9 KB/s, Avg. Out = 5.0 KB/s|in=17.877930KB/s;10.000000;5000000.000000;0.000000 out=5.000000KB/s;20.000000;5000000.000000;0.000000
我们以 root、nagios 用户和 icinga 用户的身份运行该命令行,三个用户都运行正常。我们认为 nagios 执行的命令可能有问题,因此我们调试了 nagios,但我们发现 nagios 生成的命令与上面的命令相同。
在 Google 上搜索此类问题,只会返回未安装 mrtg 的系统问题或日志文件路径错误的问题,但这些似乎不是我们的情况。
我们陷入困境了,有人可以帮忙吗?
答案1
我解决了配置命令的问题,如下所示:
define command{
command_name check_local_mrtgtraf
command_line $USER1$/check_mrtgtraf $ARG1$ 10 AVG $ARG2$ $ARG3$ $ARG4$
}
并定义如下服务:
define service {
use ...
host_name ....
...
check_command check_local_mrtgtraf!path_to_logfile!30,40!100,200!10
}
答案2
请向我们展示“check_local_mrtgtraf”命令的命令定义。它可能与您作为 ARG 传递的内容不匹配。
此外,您可能想尝试通过“env -i”运行它,以模拟 nagios/icinga 如何运行它(没有 ENV)。