NRPEエージェントは1つのサーバーでは動作しますが、他のサーバーでは動作しません。まったく同じコマンドです。

NRPEエージェントは1つのサーバーでは動作しますが、他のサーバーでは動作しません。まったく同じコマンドです。

非常に奇妙な問題があります。リモート マシンの負荷を確認するコマンドを
実行すると、 では機能するのですが、まったく同じコマンドが では機能せず、次の結果が返されるようです。check_nrpeserver1server2

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

しかし残念ながら解決策は示されていません。

アップデート:

解決策:
NRPE コマンドを受信するサーバーは、着信引数を許可する必要があるため、次のように設定する必要があります/etc/nagios/nrpe.cfg
dont_blame_nrpe=1

解決しました :P

関連情報