I this
article I’ll explain how to monitor a remote Linux host and the various
services running on the remote host.
6 steps to install Nagios plugin and NRPE on remote host.
- Download Nagios Plugins and NRPE Add-on
- Create nagios account
- Install Nagios Plugins
- Install NRPE
- Setup NRPE to run as daemon
- Modify the /usr/local/nagios/etc/nrpe.cfg
4 Configuration steps on the Nagios monitoring server to monitor remote host:
- Download NRPE Add-on
- Install check_nrpe
- Create host and service definition for remote host
- Restart the nagios service
Overview:
Following three steps will happen on a very high level when Nagios (installed on the nagios-servers) monitors a service (for e.g. disk space usage) on the remote Linux host.- Nagios will execute check_nrpe command on nagios-server and request it to monitor disk usage on remote host using check_disk command.
- The check_nrpe on the nagios-server will contact the NRPE daemon on remote host and request it to execute the check_disk on remote host.
- The results of the check_disk command will be returned back by NRPE daemon to the check_nrpe on nagios-server.
Following
flow summarizes the above explanation:
Nagios Server (check_nrpe) —–> Remote host
(NRPE deamon) —–> check_disk
Nagios
Server (check_nrpe) <—– Remote host (NRPE deamon) <—– check_disk (returns
disk space usage)
II.7 steps to install Nagios Plugins and NRPE on the remote host
1. Download
Nagios Plugins and NRPE Add-on
Download
following files from Nagios.org and move to /home/downloads:
- nagios-plugins-1.4.11.tar.gz
- nrpe-2.12.tar.gz
2. Create
nagios account
[remotehost]#
useradd nagios
[remotehost]#
passwd nagios
3. Install
nagios-plugin
[remotehost]#
cd /home/downloads
[remotehost]#
tar xvfz nagios-plugins-1.4.11.tar.gz
[remotehost]#
cd nagios-plugins-1.4.11
[remotehost]#
export LDFLAGS=-ldl
[remotehost]#
./configure --with-nagios-user=nagios --with-nagios-group=nagios
--enable-redhat-pthread-workaround
[remotehost]#
make
[remotehost]#
make install
[remotehost]#
chown nagios.nagios /usr/local/nagios
[remotehost]#
chown -R nagios.nagios /usr/local/nagios/libexec/
4. Install
NRPE
[remotehost]#
cd /home/downloads
[remotehost]#
tar xvfz nrpe-2.12.tar.gz
[remotehost]#
cd nrpe-2.12
[remotehost]#
./configure
[remotehost]#
make all
[remotehost]#
make install-plugin
[remotehost]#
make install-daemon
[remotehost]#
make install-daemon-config
[remotehost]#
make install-xinetd
5. Setup
NRPE to run as daemon (i.e as part of xinetd):
Modify the
/etc/xinetd.d/nrpe to add the ip-address of the Nagios monitoring server to the
only_from directive. Note that there is a space after the 127.0.0.1 and the
nagios monitoring server ip-address (in this example, nagios monitoring server
ip-address is: 192.168.1.2)
only_from = 127.0.0.1 192.168.1.2
Modify the
/etc/services and add the following at the end of the file.
nrpe 5666/tcp # NRPE
Start the
service
[remotehost]#service xinetd restart
Verify
whether NRPE is listening
[remotehost]# netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN
Verify to
make sure the NRPE is functioning properly
[remotehost]#
/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
6. Modify
the /usr/local/nagios/etc/nrpe.cfg
The nrpe.cfg
file located on the remote host contains the commands that are needed to check
the services on the remote host. By default the nrpe.cfg comes with few
standard check commands as samples. check_users and check_load are shown below
as an example.
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
In all the check commands, the “-w” stands for
“Warning” and “-c” stands for “Critical”. for e.g. in the check_disk command
below, if the available disk space gets to 20% of less, nagios will send
warning message. If it gets to 10% or less, nagios will send critical message.
Change the value of “-c” and “-w” parameter below depending on your
environment.
command[check_disk]=/usr/local/nagios/libexec/check_disk
-w 20% -c 10% -p /dev/hda1
Note: You
can execute any of the commands shown in the nrpe.cfg on the command line on
remote host and see the results for yourself. For e.g. When I executed the
check_disk command on the command line, it displayed the following:
[remotehost]#/usr/local/nagios/libexec/check_disk
-w 20% -c 10% -p /dev/hda1
DISK
CRITICAL - free space: / 6420 MB (10% inode=98%);|
/=55032MB;51792;58266;0;64741
In the above example, since the free disk
space on /dev/hda1 is only 10% , it is displaying the CRITICAL message, which
will be returned to nagios server.
III. 4 Configuration steps on the Nagios monitoring server to monitor remote host:
1. Download
NRPE Add-on
Download
nrpe-2.12.tar.gz from Nagios.org and move to /home/downloads:
2. Install
check_nrpe on the nagios monitoring server
[nagios-server]#
tar xvfz nrpe-2.12.tar.gz
[nagios-server]#
cd nrpe-2.1.2
[nagios-server]#
./configure
[nagios-server]#
make all
[nagios-server]#
make install-plugin
./configure
will give a configuration summary as shown below:
***
Configuration summary for nrpe 2.12 05-31-2008 ***:
General
Options:
————————-
NRPE port:
5666
NRPE user:
nagios
NRPE group:
nagios
Nagios user:
nagios
Nagios
group: nagios
Note: I got
the “checking for SSL headers… configure: error: Cannot find ssl headers” error
message while performing ./configure. Install openssl-devel as shown below and
run the ./configure again to fix the problem.
[nagios-server]# rpm -ivh
openssl-devel-0.9.7a-43.16.i386.rpm krb5-devel-1.3.4-47.i386.rpm
zlib-devel-1.2.1.2-1.2.i386.rpm e2fsprogs-devel-1.35-12.5.
el4.i386.rpm
warning:
openssl-devel-0.9.7a-43.16.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing…
########################################### [100%]
1:e2fsprogs-devel
########################################### [ 25%]
2:krb5-devel
########################################### [ 50%]
3:zlib-devel
########################################### [ 75%]
4:openssl-devel
########################################### [100%]
Verify
whether nagios monitoring server can talk to the remotehost.
[nagios-server]#/usr/local/nagios/libexec/check_nrpe
-H 192.168.1.3
NRPE v2.12
Note:
192.168.1.3 in the ip-address of the remotehost where the NRPE and nagios
plugin was installed as explained above.
3. Create
host and service definition for remotehost
Create a new
configuration file /usr/local/nagios/etc/objects/remotehost.cfg to define the
host and service definition for this particular remotehost. It is good to take
the localhost.cfg and copy it as remotehost.cfg and start modifying it
according to your needs.
host definition sample:
define host{
use
linux-server
host_name
remotehost
alias Remote
Host
address
192.168.1.3
contact_groups
admins
}
Service
definition sample:
define
service{
use
generic-service
service_description
Root Partition
contact_groups
admins
check_command
check_nrpe!check_disk
}
Note: In all
the above examples, replace remotehost with the corresponding hostname of your
remotehost.
Dont forget
to include
cfg_file=/usr/local/nagios/etc/objects/remotehost.cfg
in /usr/local/nagios/etc/nagios.cfg
4. Restart
the nagios service
Restart the
nagios as shown below and login to the nagios web
(http://nagios-server/nagios/) to verify the status of the remotehost linux
sever that was added to nagios for monitoring.
[nagios-server]#
service nagios reload
Troubleshooting:
On Red Hat,
For me the ./configure command was hanging with the the message: “checking for
redhat spopen problem…”. Add --enable-redhat-pthread-workaround to the
./configure command as a work-around for the above problem.
# ‘check_nrpe’ command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H
$HOSTADDRESS$ -t 30 -c $ARG1$
}
define
command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H
$HOSTADDRESS$ -c $ARG1$
}
No comments:
Post a Comment