NRPE 代理在一台服务器上工作,但在另一台服务器上不工作,命令完全相同

NRPE 代理在一台服务器上工作,但在另一台服务器上不工作,命令完全相同

我遇到了一个非常奇怪的问题。
似乎当我执行check_nrpe命令检查远程机器上的负载时,它在 上有效server1,但完全相同的命令在 上不起作用server2,并且它返回:

Warning threshold must be float or float triplet!
Usage:
check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15

两台机器都很相似,都是 CentOS 7。我在两台机器上都安装了 NRPE 代理,如下所示:
yum install nrpe

我在两台机器上安装了check_load如下插件:
yum install nagios-plugins-load

该命令在 server1 和 server2 上均定义确切地同样的方式,在/etc/nrpe.d/commands.cfg文件中:

command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w $ARG1$ -c $ARG2$  

配置更改后,我重新启动了两台机器上的 NRPE 服务,所以这不是问题。现在我发送给 server1 和 server2 的实际 NRPE 命令是:
check_nrpe -H server1 -c check_load -a .15,.10,.05 .30,.25,.20

输出服务器1:

OK - load average per CPU: 0.00, 0.01, 0.03|load1=0.000;0.150;0.300;0; load5=0.005;0.100;0.250;0; load15=0.025;0.050;0.200;0;  

确切地对server2执行相同的命令:
check_nrpe -H server2 -c check_load -a .15,.10,.05 .30,.25,.20
会导致上述警告信息!

在 server1 和 server2 上本地执行check_load命令,在两台服务器上都有效。所以这是 NRPE 的问题?但为什么 server1 可以工作而 server2 不工作?SELinux 在所有地方都关闭了。

这怎么可能?!这根本说不通!

更新:
commands.cfg文件更改server2为:(
command[check_load]=/usr/lib64/nagios/plugins/check_load -r $ARG1$ $ARG2$
删除 -w 和 -c 标志) 后

然后执行这个命令:

check_nrpe -H server2 -c check_load -a -w 0.15 -c 0.30
状态返回,不再有警告,但它返回负载的状态CRITICAL..如果我在 server2 上使用相同的阈值在本地执行命令,它会返回OK..
check_load -w 0.15 -c 0.30

这是 NRPE 中的一个错误吗?

更新:
好像以前也发生过这样的事情:
https://forums.meulie.net/t/warning-threshold-must-be-float-or-float-triplet/1525

但不幸的是没有给出解决方案..

更新:

SoLuTiOn:
接收 NRPE 命令的服务器必须允许传入参数,因此必须在以下内容中设置/etc/nagios/nrpe.cfg
dont_blame_nrpe=1

已解决 :P

相关内容