You are on page 1of 21

9213 views 8 likes 14 comments

Posted December 17, 2014

Install And Configure Nagios 4 On Ubuntu


14.10/14.04
by SK
Please share
Nagios is an open source software that can be used for network and infrastructure monitoring. Nagios
will monitor servers, switches, applications and services. It alerts the System Administrator when
something goes wrong and also alerts back when the issues has been rectified.
Using Nagios, you can:

Monitor your entire IT infrastructure.


Identify problems before they occur.
Know immediately when problems arise.
Share availability data with stakeholders.
Detect security breaches.
Plan and budget for IT upgrades.
Reduce downtime and business losses.

Scenario
In this tutorial i am going to use two systems as mentioned below.
Nagios server:
Operating system : Ubuntu 14.10 Server
IP Address
: 192.168.1.150/24

Nagios client:
Operating System : Ubuntu 14.04 Server
IP Address
: 192.168.1.250/24

Prerequisites
Make sure your server have installed with fully working LAMP stack. If not, follow the below link to
install LAMP server.
Install LAMP Server On Ubuntu 14.10/14.04

And, install the following prerequisites too:


sudo apt-get install build-essential libgd2-xpm-dev apache2-utils

Create Nagios User And Group


Create a new nagios user account and give it a password:
sudo useradd -m nagios
sudo passwd nagios

Create a new nagcmd group for allowing external commands to be submitted through the web
interface. Add both the nagios user and the apache user to the group.
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data

Download Nagios And Plugins


Go to the nagios download page, and get the latest version. As of writing this, the latest version was
4.0.8.
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.8.tar.gz

And, download nagios plugins too.


wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

Install Nagios And Plugins


Install nagios:

Go to the folder where youve downloaded nagios, and extract it using command:
tar xzf nagios-4.0.8.tar.gz

Change to the nagios directory, and run the following commands one by one from the Terminal to
compile and install nagios.
cd nagios-4.0.8
sudo ./configure --with-command-group=nagcmd
sudo make all
sudo make install
sudo make install-init
sudo make install-config

sudo make install-commandmode


Install Nagios Web interface:

Enter the following commands to compile and install nagios web interface.
sudo make install-webconf

You may get the following error:


/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
/usr/bin/install: cannot create regular file /etc/httpd/conf.d/nagios.conf: No
such file or directory
Makefile:296: recipe for target 'install-webconf' failed
make: *** [install-webconf] Error 1

The above error message describes that nagios is trying to create the nagios.conf file inside the
/etc/httpd.conf/ directory. But, in Ubuntu systems the nagios.conf file should be placed in
/etc/apache2/sites-enabled/ directory.
So, run the following command instead of using sudo make install-webconf.
sudo /usr/bin/install
enabled/nagios.conf

-c

-m

644

sample-config/httpd.conf

/etc/apache2/sites-

Check if nagios.conf is placed in /etc/apache2/sites-enabled directory.


sudo ls -l /etc/apache2/sites-enabled/

Sample output:
total 4
lrwxrwxrwx 1 root root 35 Dec 17 17:59 000-default.conf -> ../sites-available/000default.conf
-rw-r--r-- 1 root root 982 Dec 17 19:01 nagios.conf

Create a nagiosadmin account for logging into the Nagios web interface. Remember the password you
assign to this account. Youll need it while logging in to nagios web interface..
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Restart Apache to make the new settings take effect.


sudo service apache2 restart
Install Nagios plugins:

Go to the directory where you downloaded the nagios plugins, and extract it.
tar xzf nagios-plugins-2.0.3.tar.gz

Change to the nagios plugins directory:


cd nagios-plugins-2.0.3

Run the following commands one by one to compile and install it.
sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
sudo make
sudo make install

We arent finished yet.

Configure Nagios
Nagios sample configuration files have now been installed in the /usr/local/nagios/etc directory. These
sample files should work fine for getting started with Nagios. However, youll need to put your actual
email ID to receive alerts.
To do that, Edit the /usr/local/nagios/etc/objects/contacts.cfg config file with your favorite editor and
change the email address associated with the nagiosadmin contact definition to the address youd like
to use for receiving alerts.
sudo nano /usr/local/nagios/etc/objects/contacts.cfg

Find the following line and enter the email id:


[...]
define contact{
contact_name
nagiosadmin
user
use
generic-contact
values from generic-contact template (defined above)
alias
Nagios Admin
email
YOUR EMAIL ADDRESS ******
}
[...]

sk@unixmen.com

; Short name of
; Inherit default
; Full name of user
; <<***** CHANGE THIS TO

Save and close the file.


Then, Edit file /etc/apache2/sites-enabled/nagios.conf,
sudo nano /etc/apache2/sites-enabled/nagios.conf

And edit the following lines if you want to access nagios administrative console from a particular IP
series. Here, I want to allow nagios administrative access from 192.168.1.0/24 series only.
[...]
## Comment the following lines ##
#
Order allow,deny
#
Allow from all
## Uncomment and Change lines as shown below ##
Order deny,allow
Deny from all

Allow from 127.0.0.1 192.168.1.0/24


[...]

Enable Apaches rewrite and cgi modules:


sudo a2enmod rewrite
sudo a2enmod cgi

Restart apache service.


sudo service apache2 restart

Check nagios,conf file for any syntax errors:


sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

If there are no errors, start nagios service and make it to start automatically on every boot.
sudo service nagios start
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Access Nagios Web Interface


Open nagios administrator console with URL http://nagios-server-ip/nagios and enter the username as
nagiosadmin and its password which we created in the earlier steps.

This is how Nagios administrative console looks:

Click on the Hosts section in the left pane of the console. You will see there the no of hosts to be
monitored by Nagios server. We havent added any hosts yet. So it simply monitors the localhost itself
only.

Click on the particular host to display more details:

Add Monitoring targets to Nagios 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/Scientifc Linux clients:

Add EPEL repository in your CentOS/RHEL/Scientific Linux 6.x or 7 clients to install nrpe package.
To install EPEL on CentOS 7, run the following command:
yum install epel-release

On CentOS 6.x systems, refer the following link.


Install EPEL Repository On CentOS 6.x
Install nrpe and nagios-plugins packages in client systems:
yum install nrpe nagios-plugins-all openssl
On Debian/Ubuntu clients:
sudo apt-get install nagios-nrpe-server nagios-plugins

Configure Monitoring targets


Edit /etc/nagios/nrpe.cfg file,
sudo nano /etc/nagios/nrpe.cfg

Add your Nagios server ip address:


[...]
## Find the following line and add the Nagios server IP ##
allowed_hosts=127.0.0.1 192.168.1.150
[...]

Start nrpe service on CentOS clients:


CentOS 7:
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:


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

Now, go back to your Nagios server, and add the clients in the configuration file.
To do that, Edit /usr/local/nagios/etc/nagios.cfg file,
sudo nano /usr/local/nagios/etc/nagios.cfg

and uncomment the following lines.


## Find and uncomment the following line ##
cfg_dir=/usr/local/nagios/etc/servers

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


sudo mkdir /usr/local/nagios/etc/servers

Create config file to the client to be monitored:


sudo nano /usr/local/nagios/etc/servers/clients.cfg

Add the following lines:


define host{
use

linux-server

host_name

client

alias

client

address

192.168.1.250

max_check_attempts

check_period

24x7

notification_interval

30

notification_period

24x7

Here, 192.168.1.250 is my nagios client IP address. Finally restart nagios service.


sudo service nagios restart

Wait for few seconds, and refresh nagios admin console in the browser and navigate to Hosts section
in the left pane. 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.

Click on the monitoring target (client) to view the detailed output:

Similarly, you can define more clients by


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

creating

separate

config

files

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, add the following lines shown in bold in the

/usr/local/nagios/etc/servers/clients.cfg file.
sudo nano /usr/local/nagios/etc/servers/clients.cfg

Add the following lines shown in bold:


define host{
use

linux-server

host_name

client

alias

client

address

192.168.1.250

max_check_attempts

check_period

24x7

notification_interval

30

notification_period

24x7

}
define service {
use
host_name
service_description
check_command
notifications_enabled
}

generic-service
client
SSH
check_ssh
0

Save and close the file. Restart Nagios.


sudo service nagios restart

Wait for few seconds, and check for the added services (i.e ssh) in the nagios web interface. Navigate to
Services section on the left side bar, youll see the ssh service there.

To know more about object definitions such as Host definitions, service definitions, contact definitions,
please do visit here. This page will explain you the description and format of all object definitions.
Additional Tip:
If youre trying to use check_http with the -S flag (for https), this guide misses a big step.
Make sure you install openssl and libssl-dev first. And yes, even if your Nagios server is checking a

remote client, you need openssl and libssl-dev locally.


The when you get to configuring the Nagios plugins, add with-openssl so you end up with:
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

I would like to thank our Unixmen reader for this useful tip.
Thats it. Cheers!
Reference

8 people like this


Frequently Asked Questions, Linux Mint, Linux tutorials, opensource, Software, Ubuntu
nagiosNetwork Monitoring Toolssystem monitoring toolsUbuntu 14.04ubuntu 14.10

SK
Senthilkumar, aka SK, is a Linux enthusiast, FOSS Supporter & Linux Consultant from Tamilnadu,
India. A passionate and dynamic person, aims to deliver quality content to IT professionals. He loves
very much to write and explore new things about Linux, Open Source, Computers and Internet.
Recommended for you
nagiosNetwork Monitoring ToolsFrequently Asked QuestionsLinux Mint

Install Shinken Monitoring Framework On Ubuntu

How To Send Alerts From Nagios Core Using Gmail And Yahoo

Nagios Xi: How To Monitor Your Linux Server Using NRPE Agent

Centreon: A Free Alternative To Nagios Xi Monitoring Platform

Install And Configure Nagios 4 On CentOS 7

Nagios Auto Install Script For Fedora 19/20, And CentOS 6/7

Donate to Unixmen

Unixmen.com

Object 2

contact us to advertise here !!

Object 3

Advestise here ?

Unixmen Top Articles


1
96191
Top Things To Do After Installing Ubuntu 14.04/13.10/13.04/12.10/12.04
2
91952
Top Things To Do After Installing Ubuntu 14.10/14.04/13.10/13.04/12.10/12.04
3
75430
How to Resolve no sound problem on Ubuntu 14.04, 13.10, 13.04 and Older versions
4
65403
How to Format USB Drive in the Terminal
5
47985
DNS Server Installation Step by Step Using CentOS 6.5/6.4/6.3
6
46279
How To Install And Use Ubuntu Tweak On Ubuntu 14.10/14.04/13.10/13.04/12.10/12.04
7
46190

Install LAMP Server (Apache, MySQL, PHP) On RHEL, CentOS, Scientific Linux 6.5/6.4
8
44827
Ifconfig Command Not Found In CentOS 7 Minimal Installation ...
9
36842
Install lamp with 1 command in Ubuntu 12.10, 13.04 Raring Ringtail & LinuxMint13
10
35869
Setup Local Mail Server Using Postfix, Dovecot And Squirrelmail On CentOS 6.5/6.4
Copyright 2015 Unixmen, All Rights Reserved.
Website Design and Maintained by Unixmen.

Object 4
Object 6

Object 5

You might also like