Nagios is IT Infrastructure Monitoring Tool. There is a free open source Nagios Core edition available for download and payable Nagios XI edition which costs $1,295 $4995 (updated) for unlimited hosts. Nagios XI has enhanced AJAX based user interface, built in graphing, dynamic dashboard, … With Nagios Core you need to install and configure additional open source software to get same or similar results. If you want a free of charge solution you need to download Nagios Core from Nagios Homepage and install it on your server.
In this post we will explain step-by-step how to install Nagios Core 4 on Ubuntu Server 12.04 LTS.
Let’s Install Nagios Core 4 on Ubuntu 12.04 LTS!
1. Install required software packages
geekpeeknet@foo1:~$ sudo apt-get update geekpeeknet@foo1:~$ sudo apt-get install build-essential apache2 php5-gd wget libgd2-xpm libgd2-xpm-dev libapache2-mod-php5 sendmail daemon
2. Create Nagios Core user and group
Create nagios user and nagcmd group. Add nagios user to nagcmd group
geekpeeknet@foo1:~$ sudo useradd nagios geekpeeknet@foo1:~$ sudo groupadd nagcmd geekpeeknet@foo1:~$ sudo usermod -a -G nagcmd nagios
3. Download the latest Nagios Core tarball
geekpeeknet@foo1:~$ sudo wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.2.tar.gz
4. Extract Nagios Core tarball
geekpeeknet@foo1:~$ sudo tar -xvzf nagios-4.0.2.tar.gz
5. Run configure
Move to extracted nagios directory and run configure with additional options.
geekpeeknet@foo1:~$ cd nagios-4.0.2/ geekpeeknet@foo1:~/nagios-4.0.2$ sudo ./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-mail=/usr/bin/sendmail
Configure should end with configuration summary that looks like this:
... config.status: creating t-tap/Makefile config.status: creating include/config.h config.status: creating lib/snprintf.h config.status: creating lib/iobroker.h Creating sample config files in sample-config/ ... *** Configuration summary for nagios 4.0.2 11-25-2013 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagcmd Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: ${prefix}/var/nagios.lock Check result directory: ${prefix}/var/spool/checkresults Init directory: /etc/init.d Apache conf.d directory: /etc/apache2/conf.d Mail program: /usr/bin/sendmail Host OS: linux-gnu IOBroker Method: epoll Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs.
6. Make everything
geekpeeknet@foo1:~/nagios-4.0.2$ sudo make all geekpeeknet@foo1:~/nagios-4.0.2$ sudo make install geekpeeknet@foo1:~/nagios-4.0.2$ sudo make install-init geekpeeknet@foo1:~/nagios-4.0.2$ sudo make install-config geekpeeknet@foo1:~/nagios-4.0.2$ sudo make install-commandmode geekpeeknet@foo1:~/nagios-4.0.2$ sudo make install-webconf
7. Copy eventhandlers and change ownership
geekpeeknet@foo1:~/nagios-4.0.2$ sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/ geekpeeknet@foo1:~/nagios-4.0.2$ sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
8. Create Nagios Web Access user
Create Nagios web access user and set it’s password.
geekpeeknet@foo1:~/nagios-4.0.2$ sudo htpasswd -cm /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin
9. Edit Nagios init script
If you will try to start Nagios at this point you will get the following error:
geekpeeknet@foo1:~$ sudo /etc/init.d/nagios start /etc/init.d/nagios: 20: .: Can't open /etc/rc.d/init.d/functions
There is a problem with Nagios init script on Ubuntu. We have to edit init script and change a few lines. I could not get it to work with none of the hacks i found on the internet so i created my own by first running “start-stop-daemon” and then killing the daemon PID since a defunct Nagios process hangs. If you do not like this hack do not use it – but it works!
Please read my post “Ubuntu Nagios 4 Init Script Fix” how to do this!
11. Download and Install Nagios plugins
geekpeeknet@foo1:~$ sudo wget http://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz geekpeeknet@foo1:~$ sudo tar -xvzf nagios-plugins-1.5.tar.gz geekpeeknet@foo1:~$ cd nagios-plugins-1.5/ geekpeeknet@foo1:~/nagios-plugins-1.5$ sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios geekpeeknet@foo1:~/nagios-plugins-1.5$ sudo make geekpeeknet@foo1:~/nagios-plugins-1.5$ sudo make install
12. Copy and link Nagios Apache configuration
geekpeeknet@foo1:~$ sudo cp /etc/apache2/conf.d/nagios.conf /etc/apache2/sites-available/nagios geekpeeknet@foo1:~$ sudo ln -s /etc/apache2/sites-available/nagios /etc/apache2/sites-enabled/nagios
13. Change group ownership of /usr/local/nagios/var/rw/
Change ownership of directory before your first time Nagios run!
Please read my post on “Nagios Error: Could not open command file for update” how to do this!
14. Check Nagios configuration for errors
geekpeeknet@foo1:~$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Nagios Core 4.0.2 Copyright (c) 2009-present Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 11-25-2013 License: GPL Website: http://www.nagios.org Reading configuration data... Read main config file okay... Read object config files okay... Running pre-flight check on configuration data... Checking objects... Checked 8 services. Checked 1 hosts. Checked 1 host groups. Checked 0 service groups. Checked 1 contacts. Checked 1 contact groups. Checked 24 commands. Checked 5 time periods. Checked 0 host escalations. Checked 0 service escalations. Checking for circular paths... Checked 1 hosts Checked 0 service dependencies Checked 0 host dependencies Checked 5 timeperiods Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
15. Make Nagios and Apache start at boot
geekpeeknet@foo1:~/nagios-4.0.2$ sudo ln -s /etc/init.d/nagios /etc/rcS.d/S98nagios geekpeeknet@foo1:~/nagios-4.0.2$ sudo ln -s /etc/init.d/apache2 /etc/rcS.d/S99apache2
16. Start Nagios Core 4.0.2 service
geekpeeknet@foo1:~/nagios-plugins-1.5$ sudo service nagios start
17. Start Apache service
geekpeeknet@foo1:~/nagios-plugins-1.5$ sudo service apache2 start
18. Visit Nagios URL in your browser
We finished installing Nagios Core 4 on Ubuntu 12.04 LTS! Open http://IPADDRESS/nagios or http://FQDN/nagios in your browser and enter username and password created in step 8! Read more about how to configure Nagios hosts and services in my post on Nagios Configuration!