Otázka: Když spustím příkaz check_nrpe s některými argumenty, dostanu zprávu „CHECK_NRPE:Přijato 0 bajtů od démona. Zkontrolujte protokoly vzdáleného serveru, zda neobsahují chybové zprávy.”. Jak tento problém vyřeším?
Odpověď: Problém je velmi přímočarý. check_nrpe ve výchozím nastavení nebere žádné argumenty. Měli byste povolit argumenty příkazového řádku pro check_nrpe, jak je uvedeno níže.
Ověřte chybovou zprávu check_nrpe
Jen pro účely testování předpokládejme, že provádíte následující příkaz check_nrpe, který zobrazuje „CHECK_NRPE:Received 0 bytes from daemon. ” chybová zpráva.
$ /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.
Pokud zobrazíte /var/log/messages na vzdáleném hostiteli (ve výše uvedeném příkladu je to 192.168.1.20), uvidíte chybu nrpe „Chyba:Požadavek obsahoval argumenty příkazu! ” jak je ukázáno níže, což znamená, že check_nrpe není povoleno přebírat argumenty příkazu.
$ 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)
Povolit argumenty příkazu check_nrpe
Chcete-li povolit argumenty příkazů v NRPE, měli byste udělat následující dvě věci.
1. Nakonfigurujte NRPE pomocí –enable-command-args
Při instalaci NRPE na vzdáleném hostiteli obvykle provedete ./configure bez jakýchkoli argumentů. Chcete-li povolit podporu argumentů příkazů v démonu NRPE, měli byste jej nainstalovat pomocí –enable-command-args, jak je uvedeno níže.
[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. Upravte nrpe.cfg a nastavte dont_blame_nrpe
Upravte /usr/local/nagios/etc/nrpe.cfg na vzdáleném serveru a nastavte direktivu dont_blame_nrpe na 1, jak je uvedeno níže.
$ /usr/local/nagios/etc/nrpe.cfg dont_blame_nrpe=1
Proveďte check_nrpe s argumenty příkazu
Pokud po dvou výše uvedených změnách provedete check_nrpe pro tohoto konkrétního vzdáleného hostitele, již se vám nebude zobrazovat chybová zpráva, jak je uvedeno níže.
$ /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
Bezpečnostní varování
Povolení argumentů příkazového řádku NRPE je bezpečnostní riziko. Pokud nevíte, co děláte, nezapínejte to.
Pravděpodobně jste již přišli na to, že nemůžete vinit NRPE, pokud se něco pokazí. Nakonec jste nastavili dont_blame_nrpe na 1.