
Ich habe ein sehr merkwürdiges Problem.
Wenn ich einen Befehl ausführe, check_nrpe
um die Auslastung von Remote-Rechnern zu prüfen, funktioniert dieser anscheinend auf server1
, aber genau derselbe Befehl funktioniert nicht auf server2
und gibt Folgendes zurück:
Warning threshold must be float or float triplet!
Usage:
check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15
Beide Maschinen sind ähnlich, CentOS 7. Auf beiden Maschinen habe ich den NRPE-Agenten wie folgt installiert:
yum install nrpe
und auf beiden Maschinen habe ich das check_load
Plugin wie folgt installiert:
yum install nagios-plugins-load
Der Befehl ist sowohl auf Server1 als auch auf Server2 definiert ingenaugenauso in der /etc/nrpe.d/commands.cfg
Datei:
command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w $ARG1$ -c $ARG2$
Ich starte den NRPE-Dienst auf beiden Rechnern nach Konfigurationsänderungen neu, das ist also nicht das Problem. Der eigentliche NRPE-Befehl, den ich nun an Server1 und Server2 sende, lautet:
check_nrpe -H server1 -c check_load -a .15,.10,.05 .30,.25,.20
Ausgabeserver1:
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;
genauder gleiche Befehl an Server2:
check_nrpe -H server2 -c check_load -a .15,.10,.05 .30,.25,.20
führt zu der obigen Warnmeldung!
Die lokale Ausführung des check_load
Befehls auf Server1 und Server2 funktioniert auf beiden Servern. Es handelt sich also um ein Problem mit NRPE? Aber warum funktioniert dann Server1 und Server2 nicht? SELinux ist überall ausgeschaltet.
Wie ist das möglich?! Das ergibt keinen Sinn!
AKTUALISIEREN:
Nachdem ich meine commands.cfg
Datei geändert habe server2
in:
command[check_load]=/usr/lib64/nagios/plugins/check_load -r $ARG1$ $ARG2$
(die Flags -w und -c entfernt)
und führen Sie dann diesen Befehl aus:
check_nrpe -H server2 -c check_load -a -w 0.15 -c 0.30
der Status wird zurückgegeben, keine Warnung mehr, aber es gibt den Status der Ladung in CRITICAL
.. zurück, und wenn ich den Befehl lokal auf Server2 mit denselben Schwellenwerten ausführe, gibt es .. zurück OK
.
check_load -w 0.15 -c 0.30
ist das ein Fehler in NRPE?
AKTUALISIEREN:
Das scheint schon einmal passiert zu sein:
https://forums.meulie.net/t/warning-threshold-must-be-float-or-float-triplet/1525
aber leider keine Lösung angegeben.
aktualisieren:
Lösung:
Der Server, der NRPE-Befehle empfängt, muss eingehende Argumente zulassen, daher muss dies wie folgt eingestellt werden /etc/nagios/nrpe.cfg
:
dont_blame_nrpe=1
Gelöst :P