Problem Description
This KB article addresses the following NRPE error:
Return Code Of 127 Is Out Of Bounds - Plugin May Be Missing
Assumed Knowledge
The following KB article contains an explanation of how NRPE works and may need to be referenced to completely understand the problem and solution that is provided here:
NRPE - Agent and Plugin Explained
Troubleshooting The Error
This error is usually experienced when the plugin referenced by the command directive in nrpe.cfg is either missing from the libexec folder or the command directive is named incorrectly. It could also imply that the command name passed through NRPE from the Nagios XI server is not defined in the nrpe.cfg file on the remote host.
The first troubleshooting step is to know the name of the command you are requesting NRPE to execute. Referring to the following screenshot from a service definition in the Nagios XI Core Configuration Manager (CCM):
You can see the command is called:
check_foo
On your remote host make sure that the command is defined in nrpe.cfg, for example:
command[check_foo]=/usr/local/nagios/libexec/check_foo.sh $ARG1$
Now that you have identified the command definition, verify the spelling of check_foo in $ARG1$ (in CCM) matches the exact spelling of the command directive name command[check_foo].
Next, make sure the plugin being executed on the remote host actually exists. In this example, the name of the plugin is:
/usr/local/nagios/libexec/check_foo.sh
Execute the following command on the remote host to see if it exists:
ls -la /usr/local/nagios/libexec/check_foo.sh
If it does not exist, then the output would be something like:
ls: cannot access /usr/local/nagios/libexec/check_foo.sh: No such file or directory
If this is your problem, you will have to copy the plugin to the /usr/local/nagios/libexec/ folder.
Make sure the filename check_foo.sh has the correct file extension. Different plugins have different file extensions (.sh, .bin, .pl, .py, etc.). The path must include the extension of the plugin, but the command directive name, wrapped in 'command[]' does not need an extension.
Final Thoughts
For any support related questions please visit the Nagios Support Forums at: