使用 NRPE 与 Icinga2 时出错

使用 NRPE 与 Icinga2 时出错

我有 Nagios 的工作实例,我想在其他机器上运行 Icinga2。Nagios 使用 NRPE,所以我也想使用它。

我在文件中有以下配置:

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'

我收到

确定 - 平均负载:0.98、1.39、3.79|load1=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 中修复它?

答案1

更改vars.loads = "'10' '20'"为,vars.loads = "10!20"因为 NRPE 无法按照您在对象服务中声明的方式读取参数。

答案2

我不会为多种用例创建自定义 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 定义,而只关心主机/服务及其用作命令参数的自定义属性:)

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

相关内容