HostOnNet Blog

How to Monitor a Host with Nagios

In our previous post we have successfully installed and configured Nagios core in our Ubuntu server.

Now, let us add some clients to monitor by Nagios server.

To do that we have to install nrpe and nagios-plugins in our monitoring targets.

On CentOS/RHEL

Add EPEL repository in your CentOS/RHEL 6.x or 7 clients to install nrpe package.

To install EPEL on CentOS 7, run the following command:

yum install epel-release

Adding EPEL Repository to RHEL / CentOS / Scientific Linux 6.x

wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm

Adding EPEL Repository to RHEL / CentOS / Scientific Linux 5.x

wget http://epel.mirror.net.in/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh epel-release-5-4.noarch.rpm

On Debian/Ubuntu clients:

apt-get update
apt-get install nagios-nrpe-server nagios-plugins

Configure Monitoring targets

Edit /etc/nagios/nrpe.cfg file

vi /etc/nagios/nrpe.cfg

Find the allowed_hosts directive, and add the private IP address of your Nagios server to the comma-delimited list.

allowed_hosts=127.0.0.1,112.142.224.168

Save and exit. This configures NRPE to accept requests from your Nagios server,

Start nrpe service on CentOS clients:

systemctl start nrpe
chkconfig nrpe on

CentOS 6.x:

service nrpe start
chkconfig nrpe on

For Debian/Ubuntu Clients, start nrpe service as shown below:

/etc/init.d/nagios-nrpe-server restart

Go back to your Nagios server, and add the clients in the configuration file.

vi /usr/local/nagios/etc/nagios.cfg

uncomment the following line

cfg_dir=/usr/local/nagios/etc/servers

Create a directory called “servers” under “/usr/local/nagios/etc/”.

mkdir /usr/local/nagios/etc/servers

Create config file to the monitoring target (client):

vi /usr/local/nagios/etc/servers/server1.cfg

Add the following lines:

define host {
        use                             linux-server
        host_name                       server1.hon.com
        alias                           Server 1
        address                         10.132.234.52
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

Here, 10.132.234.52 is my nagios client IP address and server1.hon.com is the client system’s hostname.

Finally, restart nagios service.

/etc/init.d/nagios restart
OR
service nagios restart

Wait for few seconds, and refresh nagios admin console in the browser and navigate to “Hosts” section in the left pane. Now, You will see the newly added client will be visible there. Click on the host to see if there is anything wrong or any alerts it has.

Similarly, you can define more clients by creating a separate config files in

“/usr/local/nagios/etc/servers” directory for each client.

Define Services

We have just defined the monitoring host. Now, let us add some services of the monitoring host.

For example, to monitor the ssh service, edit the client configuration file.

vi /usr/local/nagios/etc/servers/server1.cfg

add the following lines for SSH service.

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
}

For PING

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
}

Wait for few seconds (90 seconds by default), and check for the added services (i.e SSH and PING) in the nagios web interface. Navigate to Services section on the left side bar, you’ll see the services there.


Posted in Linux