Nagios, as you might be knowing is an open source Host monitoring solution. The Nagios core is free and open source. If you need professional services and support you can go for Nagios XI. You can check more details at Nagios website .
The
Basic Architecture is like this, we have a Nagios Remote Host and a
Nagios Server. The Remote host has some services running on it which
are to be centrally monitored from Nagios server and alert generated
in case of any failure or impending failure. The Remote Host ( also
known as Nagios Client) sends its service status to the Nagios Server
via NRPE.(Nagios Remote Plugin Executer). NRPE lets you monitor
variety of services like status of Oracle, HTTP website URL status,
free disk space, CPU load among others.
Here
i describe the method for setting up a Nagios Remote Host to be
monitored from a Nagios Host. I assume you already have a running
setup with Nagios Server properly configured and want to monitor the
different services running on your Nagios Remote Hosts.
Lets
begin .....
Steps to be performed on Nagios server:-
1.
Go to the Nagios configuration directory and edit hosts.cfg file and
enter the hostname and ip address of nagios remote host. This will
make an entry for the particular host and is used to identify the
remote host.
2.
Most Nagios Administrators classify their Remote Hosts in various
groups based on OS type (i.e Solaris, Linux,Windows etc) or based on
Datacenter location name (i.e DC-US, DC-EU, DC-APAC). For this
purpose, we need to edit hostgroup.cfg file and enter the hostname of
the remote host (declared in previous step) in a particular hostgroup
we want it to be (e.g Solaris-Group, Linux-Group or DC-APAC )
3.
For the purpose of monitoring the various services, we need to edit
services.cfg file and input the hostname of remote host to the
corresponding service type. For example to monitor Oracle instance on
a Database server, we need to enter the hostname of the server in
Oracle-check service type definitions as shown below:-
define
service{
use
generic-service
host_name
ggndb01, chndb02, hydoradb
service_description
Oracle-Check
is_volatile
0
check_period
24x7
max_check_attempts
10
normal_check_interval
5
retry_check_interval
3
contact_groups
nagios-admins,nagios-sms
notification_interval
3600
notification_period
24x7
notification_options
w,u,c
check_command
check_nrpe!check_oracle
4.
After making all required changes in the three files mentioned above,
we need to reload the nagios service for the changes to take effect.
#/usr/local/nagios/bin/nagios
-d /usr/local/nagios/etc/nagios.cfg
#/etc/rc.d/init.d/nagios
reload
The
new configuration will be active on web interface now. Login to
nagios and verify that the changes are reflected.
Steps to be performed on Remote Host (for NRPE)
Installation
and configuration of NRPE on Nagios client (also called remote host)
is a little tricky and involved procedure. Before proceeding further
with the steps, please download nrpe and nagios plugins source code
from Nagios website.
1.
Create a nagios user who will communicate with Nagios server for
sending service status details
#
useradd -c “nagios system user” -d /usr/local/nagios -m nagios
#
chown nagios:nagios /usr/local/nagios/
2.
Extract the plugin and nrpe source code.
#
gunzip nagios-plugins-1.3.8.tar.gz
#
tar -xvf nagios-plugins-1.3.8.tar
#
gunzip nrpe-2.12.tar.gz
#
tar -xvf nrpe-2.12.tar
3.
Compile the nagios plugins. These plugins can also be executed
locally to check service status
#
cd nagios-plugins-1.3.8
#
./configure
#
make
#
make install
4.
Check whether the plugin are working fine or not. Remember this is a
local check only and at this point of time, communication with Nagios
server is not yet established.
#
/usr/local/nagios/libexec/check_disk -w 10 -c 5 -p /var
5.
Compile the NRPE
#
cd nrpe-2.12
#
./configure
#
make
#
make install
6.
After compilation of NRPE on remote host is completed, nrpe.cfg file
be generated. Modify the nrpe.cfg file as per your needs.
Remember this needs to located on the remote host and not on the
Nagios server. All the checks which will be performed from Nagios
server need to be entered into the remote host nrpe.cfg file. Example
below:-
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
Enter
all the checks to be performed like for check_disk, check_load,
check_http and check_users into this file. Also we need to allow the
nagios server to communicate with remore host in this file.
To
enable the remote execution of NRPE add the IP address of Nagios
server in nrpe.cfg :-
allowed_hosts=127.0.0.1,10.237.93.68
7.
Configure the NRPE as a service in normal framework so that it can be
started or stopped like other Unix services. Add the below line in
/etc/services
nrpe
5666/tcp # NRPE
8.
Add the following line in /etc/inet/inetd.conf
On
Solaris
nrpe
stream tcp nowait nagios /usr/sfw/sbin/tcpd
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -i
On
Linux
nrpe
stream tcp nowait nagios /usr/sbin/tcpd /usr/local/nagios/bin/nrpe -c
/usr/local/nagios/etc/nrpe.cfg --inetd
9.
On Linux systems we can start the nrpe service as follows
#
service nrpe start
On
Solaris systems
#
svcadm enable svc:/network/nrpe
#
svcadm restart svc:/network/nrpe
That's
it.
You can start monitoring your Remote hosts services from Nagios
Server.