nagios 和 mrtg 出现“无法打开 MRTG 日志文件”错误

nagios 和 mrtg 出现“无法打开 MRTG 日志文件”错误

我们在设置 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)。

相关内容