与Icinga2一起使用NRPE时出错

我有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)作为数组传递。

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check-command-nrpe

你的例子:

vars.nrpe_arguments = [10,20]

最好这样做,如果你有更多的CheckCommand定义要共享,请将它们发送到上游 – 它肯定有助于不关心CheckCommand的定义,但只有主机/服务器和它们的自定义属性用作comnand参数:)

https://wiki.icinga.org/display/community/Contribute+Icinga+2+ITL+Plugin+Check+Command+Definitions