我在服务器端配置了 Nagios Core 版本 4.1.0rc2,客户端运行 NRPE 2.15。
我已经使用 check_nrpe 命令使两个设备正确通信,但无论出于什么原因,Nagios 网络门户都没有显示使用 check_procs 时返回的正确值。
这是来自远程主机的 nrpe.cfg:
command[check_asterisk_proc]=env COLUMNS=500 /usr/local/nagios/libexec/check_procs -C asterisk -c 1:
以下是从 CLI 运行 check_nrpe 命令时的输出:
/usr/lib/nagios/plugins/check_nrpe -H 192.168.100.7 -c check_asterisk_proc
PROCS OK: 1 process with command name 'asterisk' | procs=1;;1:;0;
但是当您查看 Nagios 门户网站时,您看到的只是以下响应:
asterisk-proc OK 08-04-2015 21:17:27 0d 0h 15m 45s 1/3 NRPE v2.15
网络门户中的另一种视图:
Status Information: NRPE v2.15
让人困惑的是,NRPE 似乎返回了它的版本号,但实际上并没有运行 check_procs 命令。
我是否遗漏了什么?
答案1
如果您运行时check_nrpe
没有传递实际命令(例如-c check_procs
),它将回复 NRPE 版本号,以表明 NRPE 正常工作。
(如果您有多个 NRPE 服务,并且希望让所有服务都依赖于简单的 NRPE 状态检查,这将很有帮助。)
您在 Web 界面上看到此问题的原因是您的 Nagios 配置与手动测试不匹配。您的服务配置有误check_command
,或者您的命令定义与您的使用方式不匹配。
check_command
服务定义中的应该类似于check_nrpe!check_asterisk_proc
,并且 check_nrpe 的命令定义需要类似于:
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
(可能还有附加参数,如 -u、-t 30 等)