我们有一个奇怪的问题,我们的icinga / nagios和mrtg的设置。
Icinga工作很好,没有问题,它基本上可以监控所有的事情。
我们设置mrtg从我们的路由器和交换机收集带宽数据。 MRTG工作正常:它将日志数据存储在/ var / www / mrtg /目录中,并通过web显示graphics数据。 我们假设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/xxxx_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是正确的日志path文件。
我们继续在icinga web界面的testing结果中无法打开MRTG日志文件错误。
我们尝试了一切:
同样的错误。 奇怪的是,如果我们使用nagios在bash会话中生成的命令,命令就像一个魅力:
/usr/lib64/nagios/plugins/check_mrtgtraf -F /var/www/mrtg/xxxx_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执行的命令可能有些问题,所以我们debugging了nagios,但是我们发现nagios生成的命令与上面相同。
在google上search这类问题只会返回mrtg没有安装的系统问题,或者是日志文件path错误的问题,但这些问题似乎并不是我们的情况。
我们卡住了,有人可以帮忙吗?
我解决了这样的问题configuration命令:
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 }
向我们显示“check_local_mrtgtraf”命令的命令定义。 这可能与您将其作为ARGs传递的内容不匹配。
此外,你可能想尝试通过'env -i'运行它来模拟nagios / icinga如何运行它(没有ENV)。