Verify the check_nrpe error message
Just for testing purpose, let us assume that you are execuing the following check_nrpe command that displays the “CHECK_NRPE: Received 0 bytes from daemon.” error message.
执行这个命令报错
Received 0 bytes from daemon. Check the remote server logs for error messages.
$ /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.
If you view the /var/log/messages on the remote host, (in the above example, that is 192.168.1.20), you’ll see the nrpe error “Error: Request contained command arguments!” as shown below, indicating that check_nrpe is not enabled to take the command arguments.
到目标机器上查看
/var/log/messages
$ 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)
Enable check_nrpe command arguments
To enable command arguments in NRPE, you should do the following two things.
1. Configure NRPE with –enable-command-args
Typically when you install NRPE on the remote host, you’ll do ./configure without any arguments. To enable support for command arguments in the NRPE daemon, you should install it with –enable-command-args as shown below.
[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. Modify nrpe.cfg and set dont_blame_nrpe
Modify the /usr/local/nagios/etc/nrpe.cfg on the remote server and set the dont_blame_nrpe directive to 1 as shown below.