Frage: Wenn ich den Befehl check_nrpe mit einigen Argumenten ausführe, erhalte ich die Meldung „CHECK_NRPE:Received 0 bytes from daemon. Überprüfen Sie die Protokolle des Remote-Servers auf Fehlermeldungen.”. Wie behebe ich dieses Problem?
Antwort: Das Problem ist sehr einfach. check_nrpe akzeptiert standardmäßig keine Argumente. Sie sollten die Befehlszeilenargumente für check_nrpe wie unten gezeigt aktivieren.
Überprüfen Sie die check_nrpe-Fehlermeldung
Nehmen wir nur zu Testzwecken an, dass Sie den folgenden check_nrpe-Befehl ausführen, der Folgendes anzeigt:„CHECK_NRPE:Received 0 bytes from daemon. ” Fehlermeldung.
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1 CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
Wenn Sie /var/log/messages auf dem Remote-Host anzeigen (im obigen Beispiel ist das 192.168.1.20), sehen Sie den nrpe-Fehler „Fehler:Enthaltene Befehlsargumente anfordern! ” wie unten gezeigt, was darauf hinweist, dass check_nrpe nicht aktiviert ist, um die Befehlsargumente zu übernehmen.
$ tail -f /var/log/messages Dec 5 11:11:52 dev-db xinetd[2536]: START: nrpe pid=24187 from=192.168.101.108 Dec 5 11:11:52 dev-db nrpe[24187]: Error: Request contained command arguments! Dec 5 11:11:52 dev-db nrpe[24187]: Client request was invalid, bailing out... Dec 5 11:11:52 dev-db xinetd[2536]: EXIT: nrpe status=0 pid=24187 duration=0(sec)
Check_nrpe-Befehlsargumente aktivieren
Um Befehlsargumente in NRPE zu aktivieren, sollten Sie die folgenden zwei Dinge tun.
1. Konfigurieren Sie NRPE mit –enable-command-args
Wenn Sie NRPE auf dem Remote-Host installieren, führen Sie normalerweise ./configure ohne Argumente aus. Um die Unterstützung für Befehlsargumente im NRPE-Daemon zu aktivieren, sollten Sie ihn mit –enable-command-args wie unten gezeigt installieren.
[remotehost]# tar xvfz nrpe-2.12.tar.gz [remotehost]# cd nrpe-2.12 [remotehost]# ./configure --enable-command-args [remotehost]# make all [remotehost]# make install-plugin [remotehost]# make install-daemon [remotehost]# make install-daemon-config [remotehost]# make install-xinetd
2. Ändern Sie nrpe.cfg und setzen Sie dont_blame_nrpe
Modifizieren Sie /usr/local/nagios/etc/nrpe.cfg auf dem entfernten Server und setzen Sie die Direktive dont_blame_nrpe auf 1, wie unten gezeigt.
$ /usr/local/nagios/etc/nrpe.cfg dont_blame_nrpe=1
Check_nrpe mit Befehlsargumenten ausführen
Wenn Sie nach den beiden oben genannten Änderungen check_nrpe für diesen bestimmten Remote-Host ausführen, sehen Sie die unten gezeigte Fehlermeldung nicht mehr.
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1 DISK OK - free space: / 111199 MB (92% inode=99%);| /=9319MB;101662;114370;0;127078
Sicherheitswarnung
Das Aktivieren von NRPE-Befehlszeilenargumenten ist ein Sicherheitsrisiko. Wenn Sie nicht wissen, was Sie tun, aktivieren Sie dies nicht.
Wahrscheinlich haben Sie inzwischen schon herausgefunden, dass Sie NRPE nicht die Schuld geben können, wenn etwas schief geht. Immerhin hast du dont_blame_nrpe auf 1 gesetzt.