NRPE 从命令行工作;Nagios 的“命令行参数不正确”

NRPE 从命令行工作;Nagios 的“命令行参数不正确”

我正在尝试使用一个基本示例来设置 NRPE,作为部署它的第一步。为简单起见,我在本地运行 NRPE 和 Nagios。NRPE 和 Nagios 似乎都在运行,但使用 Nagios 的 check_nrpe 却莫名其妙地失败了。编辑:我使用的是 Nagios 4.1.1 版和 NRPE 2.15 版。

我认为 NRPE 正在运行,因为我可以手动运行 check_nrpe:

/s/l/n/nagios_instance ❯❯❯ libexec/check_nrpe -H 127.0.0.1 -p 5667 -c check_total_procs      ⏎ 
PROCS CRITICAL: 536 processes | procs=536;150;200;0;

我认为 Nagios 正在运行(并提供了正确的参数),因为我已经用 python 编写了这个简单的检查,文件名为 check_hello_world.py,位于 libexec 目录中:

#!/usr/bin/env python

import sys
print str(sys.argv)
raise SystemExit, 2

我的 nagios 配置的相关行如下所示:

define host {
    use                             linux-server
    host_name                       yourhost
    alias                           My first Apache server
    address                         127.0.0.1
}

define command {
    command_name check_procs_nrpe
    command_line $USER1$/check_hello_world.py –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
    #command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
}


define service {
    use                             generic-service
    host_name                       yourhost
    service_description             Check using the hello world plugin
    check_command                   check_procs_nrpe
    }

如您所见,我使用两个命令之一定义了 check_procs_nrpe 命令,要么是简单的 python 脚本,要么是用于从命令行检查 procs 的 nrpe 命令。当我使用 python 脚本时,几分钟内我就会收到一封包含以下内容的电子邮件:

Additional Info:

[/spare/local/nagios/nagios_instance/libexec/check_hello_world.py, –H, 127.0.0.1, -p, 5667, -c, check_total_procs]

这似乎表明 Nagios 工作正常,触发警报,发送电子邮件,并正确解析参数。当我将命令更改为使用 check_nrpe 并重新运行 Nagios 时,我收到一封电子邮件,其中包含以下文本:

Additional Info:

Incorrect command line arguments supplied

我真的不知道下一步该怎么做。我没有此机器的 root 权限,因此无法轻松重新配置 rsyslog 以尝试获取日志信息。很乐意根据要求提供更多信息。有什么想法吗?

答案1

总之,问题在于“-H”中的破折号实际上不是破折号。它是一个短破折号。如果你仔细寻找,你实际上可以在上面的文本中清楚地看到它。不幸的是,Source Code Pro(我在终端中使用的字体,因此在 vim 中使用)并没有真正区分破折号和短破折号。我重新提出了一个与此相关的问题,同时我正在寻找一种新字体(并将破折号区分添加到我的标准列表中)。

相关内容