Nrpe
We need two programs: 'nrpe' to be run as daemon or inet service, and 'check_nrpe' to be called by nagios. In general we need 'check_nrpe' on clonweb and 'nrpe' on all other machines.
Clonweb only (where Nagios is running): produce 'check_nrpe' and copy it to 'nagios' area:
cd /usr/local/src/nrpe-2.6 ./configure make all cp src/check_nrpe /www/nagios2.6/libexec chown nagios.nagios /www/nagios2.6/libexec/check_nrpe
Generic installation (all machines, including clonweb if it is not done yet):
cd /usr/local/src cp ../downloads/nrpe-2.6.tar.gz . gunzip nrpe-2.6.tar.gz tar xvf nrpe-2.6.tar rm nrpe-2.6.tar cd /usr/local/src/nrpe-2.6 ./configure --prefix=/apps/nrpe2.6 --enable-command-args
Compiling:
make all
On clonweb (where Nagios is running):
cp src/check_nrpe /www/nagios2.6/libexec
On any other machine which suppose to be remotely monitored by clonweb:
mkdir /apps/nrpe2.6 mkdir /apps/nrpe2.6/libexec mkdir /apps/nrpe2.6/etc mkdir /apps/nrpe2.6/bin cp sample-config/nrpe.cfg /apps/nrpe2.6/etc/ cp src/nrpe /apps/nrpe2.6/bin cp src/check_nrpe /apps/nrpe2.6/libexec/ cp init-script /etc/init.d/nrpe
emacs /etc/init.d/nrpe: # config: /apps/nrpe2.6/etc/nrpe.cfg NrpeBin=/apps/nrpe2.6/bin/nrpe NrpeCfg=/apps/nrpe2.6/etc/nrpe.cfg
emacs /apps/nrpe2.6/etc/nrpe.cfg:
dont_blame_nrpe=1 command[check_disk_test]=/apps/nrpe2.6/libexec/check_disk -w 20 -c 10 -p / command[check_disk]=/apps/nrpe2.6/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
on clonweb: copy plugins we want to execute remotely
(remote machines will not see /www, only /apps !!!) cp /www/nagios2.6/libexec/check_disk /apps/nrpe2.6/libexec/
To test 'check_nrpe' run following commands from another machine where 'check_nrpe' installed.
Requests shell be sent to the machine where 'nrpe' is running (in our examples it is clon10):
on clonweb:
/www/nagios2.6/libexec/check_nrpe -H clon10 -c check_disk_test must return something like that: DISK OK - free space: / 1363 MB (16% inode=74%);| /=7054MB;8483;8493;0;8503
/www/nagios2.6/libexec/check_nrpe -H clon10 -c check_disk -a 20 20 /
on non-clonweb:
/apps/nrpe2.6/libexec/check_nrpe -H clon10 -c check_disk_test /apps/nrpe2.6/libexec/check_nrpe -H clon10 -c check_disk -a 20 20 /
Testing 'nrpe':
NOTE: user 'nagios' and group 'nagios' must exist to run 'nrpe' daemon !!! To create user on Solaris: 'useradd -d /home/nagios -m -c "Nagios" nagios' (-m will force home directory creation). If complains, check passwd file by 'pwconv' (should not be blank lines in the end etc). To add group on Solaris add following line to '/etc/group' file: 'nagios::9997:nagios' (id maybe different of course). On Linux use '/usr/bin/system-config-users' utility.
To start/stop/restart 'nrpe' daemon on Linux (as 'root'):
/etc/init.d/nrpe start /etc/init.d/nrpe stop /etc/init.d/nrpe restart
To start 'nrpe' daemon on Solaris (as 'root'):
/apps/nrpe2.6/bin/nrpe -c /apps/nrpe2.6/etc/nrpe.cfg -d
ps -ef | grep nrpe nagios 3051 1 0 13:09:24 ? 0:00 ./nrpe -c /apps/nrpe2.6/etc/nrpe.cfg -d
more /var/run/nrpe.pid 3051
In both systems it is running under user 'nagios' in according to it's config file.
Normally we are running 'nrpe' not as a daemon but as part of 'inet' service. It was configured by following steps:
Add following line to /etc/services:
nrpe 5666/tcp # NRPE
Linux (xinet): create file /etc/xinetd.d/nrpe' with following contents:
# default: on # description: NRPE service nrpe { flags = REUSE socket_type = stream wait = no user = nagios group = nagios server = /apps/nrpe2.6/bin/nrpe server_args = -c /apps/nrpe2.6/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no ### only_from = 129.57.167.42 }
Solaris (inet): add following line to /etc/inetd.conf:
nrpe stream tcp nowait nagios /apps/nrpe2.6/bin/nrpe /apps/nrpe2.6/bin/nrpe -c /apps/nrpe2.6/etc/nrpe.cfg --inetd
Linux: restart xinet service:
/etc/init.d/xinetd restart
Solaris:
inetconv -i /etc/inet/inetd.conf svcadm restart /network/inetd
Run mentioned above tests from another machine. Check for possible errors:
tail -100 /var/log/messages | grep nrpe
Solaris:
svcs | grep nrpe online 0:41:40 svc:/network/nrpe/tcp:default
Useful commands:
netstat -lp more /var/log/messages | grep nrpe Jan 7 22:28:29 clonpc2 xinetd[986]: execv( /apps/nrpe2.6/bin/ ) failed: Permission denied (errno = 13)