Issues with Nagios NRPE monitoring (Return code of 127 is out of bounds - plugin may be missing)

avlmp
avlmp used Ask the Experts™
on
Hello,

I'm at my wits' end trying to fix my Nagios server's issue. I've followed the NRPE documentation closely, but I'm still getting this same error:       (Return code of 127 is out of bounds - plugin may be missing) in the Nagios web service. When I run the command
/usr/local/nagios/libexec/check_nrpe -H 10.254.1.2 -c check_load

Open in new window

from the terminal, I receive the expected output. Not so much with what's inside my configuration files.

My setup is a LAN virtualized using VMWare Workstation. The monitoring and monitored machines are connected through a LAN segment, both running the latest version of CentOS 6.

Config files in regards to NRPE are as follows:

linux.cfg
define host{
        use                     remote-linux-server            ; Name of host template to use
							; This host definition will inherit all variables that are defined
							; in (or inherited by) the linux-server host template definition.
        host_name               linux
        alias                   Linux Server
        address                 10.254.1.2
        }
define service{
        use                             generic-service         ; Name of service template to use
        host_name                       linux
        service_description             CPU Load
	check_command			check_nrpe!check_load
        }

define hostgroup{
        hostgroup_name  remote-linux-servers ; The name of the hostgroup
        alias           Remote Linux Servers ; Long name of the group
        members         linux     ; Comma separated list of hosts that belong to this group
        }


define service{
	use				generic-service
	host_name			linux
	service_description		Ping
	check_command			check_ping!100.0,20%!500.0,60%
	}

Open in new window


commands.cfg
define command{
	command_name	check_nrpe
	command_line	USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
	}

Open in new window


remote host side

/etc/xinetd.d/nrpe
service nrpe
{
       	flags           = REUSE
        socket_type     = stream    
	port		= 5666    
       	wait            = no
        user            = nagios
	group		= nagios
       	server          = /usr/local/nagios/bin/nrpe
        server_args     = -c /usr/local/nagios
 no
	only_from       = 10.254.1.1
}

Open in new window


nrpe.cfg
log_facility=daemon

pid_file=/var/run/nrpe.pid

server_port=5666

nrpe_user=nagios

nrpe_group=nagios

allowed_hosts=127.0.0.1,10.254.1.1

dont_blame_nrpe=0

debug=0

command_timeout=60

connection_timeout=300

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Commented:
I am not sure if its because of the format when pasting code, but your /etc/xinetd.d/nrpe file does not look correct. Here is a copy of mine from a working server that runs  check_load

# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
             flags           = REUSE
        socket_type     = stream    
      port            = 5666    
             wait            = no
        user            = nagios
      group            = nagios
             server          = /usr/sbin/nrpe
        server_args     = -c /etc/nagios/nrpe.cfg --inetd
             log_on_failure  += USERID
        disable         = no
      only_from       = 127.0.0.1, 192.168.50.96
}

Author

Commented:
I seem to have made a mistake pasting that file...

Correct version is as follows:
service nrpe
{
        flags           = REUSE
        socket_type     = stream
        port            = 5666
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/local/nagios/bin/nrpe
        server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
        log_on_failure  += USERID
        disable         = no
        only_from      = 10.254.1.1
}

Commented:
Ok cool, The error message you are getting usually means the plugin is not in the right place. When you say you ran the command from the terminal, was this on the nagios server or on the remote server to be monitored?

When faced with the same problem (seems to happen everytime i install NRPE) I usually start on the remote server and work my way backwards.

i) can command be executed on remote server command line and return correct results?
ii) can command be executed on nagios server and return correct results?
iii) if ii) = no can any command at all be called from nagios server?
Learn SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

Author

Commented:
i) yes
ii) yes
iii) I can perform a ping command successfully and it is displayed in the web interface, just not things related to check_nrpe

Commented:
OK, I'm assuming you are running the commands as root account. If so, what is the result if you run the command as the nagios user on the remote server.

# su nagios
# /usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

Author

Commented:
Result seems good:

OK - load average: 0.30, 0.09, 0.03|load1=0.300;15.000;30.000;0; load5=0.090;10.000;25.000;0; load15=0.030;5.000;20.000;0

Commented:
ok wow!

Next thing I look at is the nrpe.cfg in /etc/nagios ;

In mine, line 11 only the ip address of my nagios server as follows

allowed_hosts=192.168.50.96

instead of ...

allowed_hosts=127.0.0.1,192.168.50.96

Author

Commented:
Doesn't seem to be changing anything, even after restarting nagios and xinetd services in their respective hosts.
Commented:
I loaded all your config files into my nagios server and this is what I found :)

commands.cfg

define command{
      command_name      check_nrpe
      command_line      USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

I think that should say $USER1$

this variable = path to nagios executables if it is incorrect then it would explain that nagios cannot find the plugin check_nrpe. It would also explain why everything tests correctly from the command line

Hope that helps :)

Author

Commented:
God bless you, it works now!

Commented:
Fantastic! It's always the little things that get me too!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial