207 lines
6.8 KiB
Markdown
207 lines
6.8 KiB
Markdown
NRPE README
|
|
===========
|
|
|
|
For installation instructions and information on the design overview
|
|
of the NRPE addon, please read the PDF documentation that is found in
|
|
this directory: `docs/NRPE.pdf`
|
|
|
|
If you are upgrading from a previous version, run 'update-cfg.pl' to
|
|
add the new SSL parameters to your config file.
|
|
|
|
|
|
Purpose
|
|
-------
|
|
The purpose of this addon is to allow you to execute Nagios
|
|
plugins on a remote host in as transparent a manner as possible.
|
|
|
|
|
|
Contents
|
|
--------
|
|
|
|
There are two pieces to this addon:
|
|
|
|
1) **NRPE** - This program runs as a background process on the
|
|
remote host and processes command execution requests
|
|
from the check_nrpe plugin on the Nagios host.
|
|
Upon receiving a plugin request from an authorized
|
|
host, it will execute the command line associated
|
|
with the command name it received and send the
|
|
program output and return code back to the
|
|
check_nrpe plugin
|
|
|
|
2) **check_nrpe** - This is a plugin that is run on the Nagios host
|
|
and is used to contact the NRPE process on remote
|
|
hosts. The plugin requests that a plugin be
|
|
executed on the remote host and wait for the NRPE
|
|
process to execute the plugin and return the result.
|
|
The plugin then uses the output and return code
|
|
from the plugin execution on the remote host for
|
|
its own output and return code.
|
|
|
|
|
|
Compiling
|
|
---------
|
|
|
|
The code is very basic and may not work on your particular
|
|
system without some tweaking. If you are having any problems
|
|
compiling on your system, please let us know, hopefully with
|
|
fixes. Most users should be able to compile NRPE and the
|
|
check_nrpe plugin with the following commands...
|
|
|
|
./configure
|
|
make all
|
|
|
|
The binaries will be located in the `src/` directory after you
|
|
run `make all` and will have to be installed manually somewhere
|
|
on your system.
|
|
|
|
_NOTE: Since the check_nrpe plugin and nrpe daemon run on different
|
|
machines (the plugin runs on the Nagios host and the daemon
|
|
runs on the remote host), you will have to compile the nrpe
|
|
daemon on the target machine._
|
|
|
|
|
|
Installing
|
|
----------
|
|
|
|
The check_nrpe plugin should be placed on the Nagios host along
|
|
with your other plugins. In most cases, this will be in the
|
|
`/usr/local/nagios/libexec` directory.
|
|
|
|
The nrpe program and the configuration file `nrpe.cfg` should
|
|
be placed somewhere on the remote host. Note that you will also
|
|
have to install some plugins on the remote host if you want to
|
|
make much use of this addon.
|
|
|
|
|
|
Configuring
|
|
-----------
|
|
|
|
Sample config files for the NRPE daemon are located in the
|
|
`sample-config/` subdirectory.
|
|
|
|
|
|
Running Under INETD or XINETD
|
|
-----------------------------
|
|
|
|
If you plan on running nrpe under inetd or xinetd and making use
|
|
of TCP wrappers, you need to add a line to your `/etc/services`
|
|
file as follows (modify the port number as you see fit)
|
|
|
|
nrpe 5666/tcp # NRPE
|
|
|
|
The run `make install-inetd` to copy the appropriate file, or
|
|
add the appropriate line to your `/etc/inetd.conf`.
|
|
|
|
_NOTE: If you run nrpe under inetd or xinetd, the server_port
|
|
and allowed_hosts variables in the nrpe configuration file are
|
|
ignored._
|
|
|
|
|
|
#### INETD
|
|
|
|
After running `make install-inetd`, your `/etc/inetd.conf` file will
|
|
contain lines similar to the following:
|
|
|
|
```
|
|
#
|
|
# Enable the following entry to enable the nrpe daemon
|
|
#nrpe stream tcp nowait nagios /usr/local/nagios/bin/nrpe nrpe -c /usr/local/nagios/etc/nr
|
|
# Enable the following entry if the nrpe daemon didn't link with libwrap
|
|
#nrpe stream tcp nowait nagios /usr/sbin/tcpd /usr/local/nagios/bin/nrpe -c /usr/local/nag
|
|
```
|
|
|
|
Un-comment the appropriate line, then Restart inetd:
|
|
|
|
/etc/rc.d/init.d/inet restart
|
|
|
|
OpenBSD users can use the following command to restart inetd:
|
|
|
|
kill -HUP `cat /var/run/inet.pid`
|
|
|
|
Then add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
|
|
file to enable TCP wrapper protection for the nrpe service.
|
|
This is optional, although highly recommended.
|
|
|
|
|
|
#### XINETD
|
|
|
|
If your system uses xinetd instead of inetd, `make install-inetd`
|
|
will create a file called `nrpe` in your `/etc/xinetd.d`
|
|
directory that contains a file similar to this:
|
|
|
|
```
|
|
# default: off
|
|
# description: NRPE (Nagios Remote Plugin Executor)
|
|
service nrpe
|
|
{
|
|
disable = yes
|
|
socket_type = stream
|
|
port = @NRPE_PORT@
|
|
wait = no
|
|
user = nagios
|
|
group = nagios
|
|
server = /usr/local/nagios/bin/nrpe
|
|
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
|
|
only_from = 127.0.0.1
|
|
log_on_failure += USERID
|
|
}
|
|
```
|
|
|
|
- Replace `disable = yes` with `disable = no`
|
|
- Replace the `127.0.0.1` field with the IP addresses of hosts which
|
|
are allowed to connect to the NRPE daemon. This only works if xinetd was
|
|
compiled with support for tcpwrappers.
|
|
- Add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
|
|
file to enable TCP wrapper protection for the nrpe service.
|
|
This is optional, although highly recommended.
|
|
|
|
Restart xinetd:
|
|
|
|
/etc/rc.d/init.d/xinetd restart
|
|
|
|
|
|
Configuring Things On The Nagios Host
|
|
---------------------------------------
|
|
|
|
Examples for configuring the nrpe daemon are found in the sample
|
|
`nrpe.cfg` file included in this distribution. That config file
|
|
resides on the remote host(s) along with the nrpe daemon. The
|
|
check_nrpe plugin gets installed on the Nagios host. In order
|
|
to use the check_nrpe plugin from within Nagios, you will have
|
|
to define a few things in the host config file. An example
|
|
command definition for the check_nrpe plugin would look like this:
|
|
|
|
define command{
|
|
command_name check_nrpe
|
|
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
|
}
|
|
|
|
In any service definitions that use the nrpe plugin/daemon to
|
|
get their results, you would set the service check command portion
|
|
of the definition to something like this (sample service definition
|
|
is simplified for this example):
|
|
|
|
define service{
|
|
host_name someremotehost
|
|
service_description someremoteservice
|
|
check_command check_nrpe!yourcommand
|
|
... etc ...
|
|
}
|
|
|
|
where `yourcommand` is a name of a command that you define in
|
|
your nrpe.cfg file on the remote host (see the docs in the
|
|
sample nrpe.cfg file for more information).
|
|
|
|
|
|
Questions?
|
|
----------
|
|
|
|
If you have questions about this addon, or problems getting things
|
|
working, first try searching the nagios-users mailing list archives.
|
|
Details on searching the list archives can be found at
|
|
http://www.nagios.org
|
|
|
|
If you don't find an answer there, post a message in the Nagios
|
|
Plugin Development forum at https://support.nagios.com/forum/viewforum.php?f=35
|