NRPE Command Plugin Not Defined is one of the most common errors that our customers using Nagios report to us.
It is usually seen after configuring a Nagios agent on the remote host.
Plugins are binary programs or scripts that are responsible for doing the actual check. These plugins are located on the remote host being monitored
We get this error when there is a mismatch between the command name declared in Nagios XI to be checked through NRPE and the actual command name of the command directive in the remote host’s nrpe.cfg file.
However, we may also receive a similar error while trying to pass the -c argument like the following one:
./check_nrpe -H 10.25.13.30 -t 30 -c check_users -a -w 5 -c 10
We will get the following error message:
NRPE: Command '10' not defined
This problem will occur in versions of check_nrpe before v3. It’s because the initial -c check_users is being overwritten by the -a -w 5 -c 10, as check_nrpe thinks the -c 10 argument is the command argument, not one of the -a arguments.
If the arguments are given in single quotes -a ‘-w 5 -c 10’ then everything in the single quotes is sent as a string and not interpreted by the check_nrpe plugin.
However, we need to have a dynamic command in our NRPE client and let Nagios XI send the arguments as multiple arguments.
For this, we can upgrade the check_nrpe command on the Nagios XI server to the latest version.
Another solution is to change how we are sending the arguments to the NRPE client along with changing the command definition on our NRPE client.
Additionally, we need to check the remote host’s nrpe.cfg for the dont_blame_nrpe directive.
We need to execute the following command on Nagios XI server:
/usr/local/nagios/libexec/check_nrpe -H 10.25.13.30 -t 30 -c check_users -a '-w 5 -c 10'
To identify the settings our NRPE server, log into the remote host as the root user and execute:
grep -e ^dont /usr/local/nagios/etc/nrpe.cfg
We will get the following output: