NRPE 에이전트는 한 서버에서는 작동하지만 다른 서버에서는 작동하지 않습니다. 정확히 동일한 명령입니다.

NRPE 에이전트는 한 서버에서는 작동하지만 다른 서버에서는 작동하지 않습니다. 정확히 동일한 명령입니다.

매우 이상한 문제가 있습니다. 원격 시스템의 로드를 확인하기 위해 명령을 실행하면 에서는 작동 하지만 정확히 동일한 명령이 에서는 작동하지 않고 다음을 반환하는
것 같습니다 .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

하지만 불행하게도 해결책은 없습니다 ..

업데이트:

SoLuTiOn:
NRPE 명령을 수신하는 서버는 들어오는 인수를 허용해야 하므로 다음에서 설정해야 합니다 /etc/nagios/nrpe.cfg.
dont_blame_nrpe=1

해결 : 피

관련 정보