我有Nagios的工作实例,我想在其他机器上运行Icinga2。 Nagios正在使用NRPE,所以我也想使用它。
我在文件中有以下configuration:
object Service "NRPE check load" { import "generic-service" host_name = "agrippina" check_command = "nrpe-check-2arg" vars.host = "agrippina.domain.net" vars.check = "check_load" vars.loads = "'10' '20'" }
和
object CheckCommand "nrpe-check-2arg" { import "plugin-check-command" command = [PluginDir + "/check_nrpe" ] arguments = { "-H" = "$host$" "-c" = "$check$" "-a" = "$loads$" } }
当我手工发布命令时:
/usr/lib/nagios/plugins/check_nrpe -H agrippina.domain.net -c 'check_load' -a '10' '20'
我收到
OK – 平均载荷:0.98,1.39,3.79 |载荷1 = 0.980; 10.000; 20.000; 0; load5 = 1.390; 10.000; 20.000; 0; load15 = 3.790; 10.000; 20.000; 0;
Icinga2日志:
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
我应该在哪里寻找这些信息?
因为当我手工运行这个检查,它的工作原理,如何解决它在Icinga2?
将vars.loads = "'10' '20'"更改为vars.loads = "10!20"因为NRPE无法按照您在对象Service中声明的方式读取参数。
我不会为多个用例创build自定义的CheckCommand定义。 我们已经把我们的头包裹起来,让我们的开发周期中CheckCommand对象更加可重用,并且有一件事你会得到 – 可选的,也是有条件的参数。
http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#command-arguments
此外,icinga2已经发布了'nrpe'插件检查命令定义,还允许您添加多个附加参数-a)作为数组传递。
你的例子:
vars.nrpe_arguments = [10,20]
最好这样做,如果你有更多的CheckCommand定义要共享,请将它们发送到上游 – 它肯定有助于不关心CheckCommand的定义,但只有主机/服务器和它们的自定义属性用作comnand参数:)
https://wiki.icinga.org/display/community/Contribute+Icinga+2+ITL+Plugin+Check+Command+Definitions