CHECK_NRPE: Socket timeout after 10 seconds


#1

I could use some help from the board experts! I have nagios 2.5 installed on FC4 (IP 192.168.254.80) and running fine. I also loaded the nagios-plugins-1.4.3 package on the local nagios server. I’m attempting to monitor cpu, memory and disk space on a remote windows XP box (on the same subnet) for testing purposes, and downloaded nrpe_nt.0.8b-bin-NoSSL and the nrpe_nt plugins and ran nrpe_nt.exe -i at the command prompt which installed the NRPE service successfully. I then configured the nrpe.cfg on the windows server defining the nrpe plugins I want to use. (Please see the nrpe.cfg at the end of my post.) I’m able to start the nrpe daemon on the Nagios server successfully and I’m able to start the nrpe service on the windows box and tested the following command locally:

c:>c:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\diskspace_nrpe_nt.exe c: 70 90
Used: 7013 MB <18%> Free: 31141 MB <81%>

However when I try and execute the check_nrpe command from the Nagios server I receive the following error:

[root@NOCLI-NAGIOS001 plugins]# ./check_nrpe -H 192.168.254.26 -p 5666 -c check_disk_c
CHECK_NRPE: Socket timeout after 10 seconds.

I also see the following error in the debug log on the windows box:
2006-07-31 15:44:58; 888; 7;Starting server thread…
2006-07-31 15:44:58; 3320; 7;Binding to all interfaces
2006-07-31 15:44:58; 3320; 6;Listening on port 5666
2006-07-31 15:45:40; 3016; 4;Error: Socket read failed (NonSSL)…

I can telnet to the windows server on port 5666 and ran an ethereal trace on the Nagios box but didn’t see any errors.

I defined the command[nt_check_disk_c]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\diskspace_nrpe_nt.exe c: 70 90 on the nagios servers /etc/nagios/nrpe.cfg and also created the service check commands in checkcommands.cfg:

(CUT FROM checkcommands.cfg)

‘nt_check_disk’ command NRPE_NT defination

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

Not sure where the problem is. Any help is greatly appreciated!

(NRPE.cfg from Windows Bo:evil::

PORT NUMBER

Port number we should wait for connections on.

server_port=5666

ALLOWED HOST ADDRESSES

This is a comma-delimited list of IP address of hosts that are allowed

to talk to the NRPE daemon.

NOTE: The daemon only does rudimentary checking of the client’s IP

address.

allowed_hosts=192.168.254.80

COMMAND ARGUMENT PROCESSING

This option determines whether or not the NRPE_NT service will allow clients

to specify arguments to commands that are executed

*** ENABLING THIS OPTION IS A SECURITY RISK! ***

Values: 0=do not allow arguments, 1=allow command arguments

dont_blame_nrpe=0

DEBUGGING OPTION

This option determines whether or not debugging messages are logged to the

eventlog.

Values: 0=debugging off, 1=debugging on

debug=1

COMMAND TIMEOUT

This specifies the maximum number of seconds that the NRPE_NT service will

allow plugins to finish executing before killing them off.

command_timeout=60

INCLUDE CONFIG FILE

This directive allows you to include definitions from an external config file.

#include=<somefile.cfg>

INCLUDE CONFIG DIRECTORY

This directive allows you to include definitions from config files (with a

.cfg extension) in one or more directories (with recursion).

#NOTE: This option is currently ignored with NRPE_NT!
#include_dir=
#include_dir=

LOGLEVEL / NRPE_NT only

severity of events logged to nrpe_nt.log if debug = 1

Useful Values:

1: Log Critical

4: Log Errors (Default)

6: Log Informational

7: Log Debug

loglevel=7

USE_WIN_METACHARS / NRPE_NT only

use NASTY_METACHARS_WIN, allow \ and " to allow easier passing of

pathnames as parameter

Values: 0=use default NASTY_METACHARS definition, 1=use relaxed NASTY_METACHARS_WIN definition

use_win_metachars=1

COMMAND DEFINITIONS

Command definitions that this daemon will run. Definitions

are in the following format:

command<command_name>]=<command_line>

When the daemon receives a request to return the results of <command_name>

it will execute the command specified by the <command_line> argument.

Unlike Nagios, the command line cannot contain macros - it must be

typed exactly as it should be executed.

Note: Any plugins that are used in the command lines must reside

on the machine that this daemon is running on! The examples below

assume that you have plugins installed in a D:\NRPE_NT

directory. Also note that you will have to modify the definitions below

to match the argument format the plugins expect. Remember, these are

examples only!

The following examples use no command arguments…

command[nt_check_disk_c]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\diskspace_nrpe_nt.exe c: 70 90
#command[nt_check_disk_d]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\diskspace_nrpe_nt.exe d: 70 90
#command[nt_check_disk_e]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\diskspace_nrpe_nt.exe e: 70 90
command[nt_cpuload]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\cpuload_nrpe_nt.exe 50 80
command[nt_memload]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\memload_nrpe_nt.exe 70 90
command[nt_service]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\service_nrpe_nt.exe "Event Log,DNS Client"
command[nt_eventlog]=C:\nagios\nrpe_nt.0.8b-bin-NoSSL\bin\eventlog_nrpe_nt.exe -m 7200 -s “Service Control Manager”

The following examples allow user-supplied arguments and can

only be used if NRPE_NT was compiled with support for

command arguments AND the dont_blame_nrpe directive in this

config file is set to ‘1’…

#command[check_arg]=D:\NRPE_NT\testarg.cmd $ARG1$
#command[check_arg]=D:\NRPE_NT\testarg.exe -H $ARG1$ -p $ARG2$


#2

I figured out the problem. I had to specify a timeout from the terminal prompt (-t 20) then I was able to connect from the Nagios server.