
我有一個非常奇怪的問題。
似乎當我執行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。
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
命令,在兩台伺服器上都有效。但是為什麼 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