Nagios is a free and open-source computer software application that monitors systems networks and infrastructure. Nagios offers monitoring and alerting services for servers switches applications and services. It alerts users when things go wrong and alerts them a second time when the problem has been resolved. In this tutorial, I am going to demonstrate about How to Install Nagios Core on Centos 7 server.
Nagios Official Website
Official Website: https://www.nagios.org/
How to Install Nagios Core on Centos 7
Installing and Configuring Nagios on Centos 7 steps are as follows:
Installing Dependencies
# yum install -y httpd php Installed: httpd.x86_64 0:2.4.6-67.el7.centos.2 php.x86_64 0:5.4.16-42.el7 Dependency Installed: apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7 httpd-tools.x86_64 0:2.4.6-67.el7.centos.2 libzip.x86_64 0:0.10.1-8.el7 mailcap.noarch 0:2.1.41-2.el7 php-cli.x86_64 0:5.4.16-42.el7 php-common.x86_64 0:5.4.16-42.el7 Complete!
Adding Libraries
# yum install -y gcc glibc glibc-common make gd gd-devel net-snmp
Adding Nagios User/Group
You will have to add the nagios user to the system so you avoid running it as root:
# useradd nagios # id nagios uid=1001(nagios) gid=1001(nagios) groups=1001(nagios)
And a new nagcmd group that will allow external commands to be run via the web interface:
# groupadd nagcmd # usermod -G nagcmd nagios # usermod -G nagcmd apache
Download Nagios Core
Next step is to download the latest installation packages from above mentioned Nagios official site. Create a new directory to store the downloaded content:
# mkdir ~/nagios # cd ~/nagios
You can use wget to download the files:
# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.4.tar.gz 2017-09-23 05:07:55-- https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.4.tar.gz Resolving assets.nagios.com (assets.nagios.com)... 72.14.181.71, 2600:3c00::f03c:91ff:fedf:b821 Connecting to assets.nagios.com (assets.nagios.com)|72.14.181.71|:443... connect ed. HTTP request sent, awaiting response... 200 OK Length: 11101966 (11M) [application/x-gzip] Saving to: ‘nagios-4.3.4.tar.gz’ 100%[======================================>] 11,101,966 166KB/s in 63s 2017-09-23 05:09:00 (173 KB/s) - ‘nagios-4.3.4.tar.gz’ saved [11101966/11101966]
Download Nagios Plugins
# wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz 2017-09-23 05:12:20-- https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz Resolving nagios-plugins.org (nagios-plugins.org)... 72.14.186.43 Connecting to nagios-plugins.org (nagios-plugins.org)|72.14.186.43|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 2728818 (2.6M) [application/x-gzip] Saving to: ‘nagios-plugins-2.2.1.tar.gz’ 100%[======================================>] 2,728,818 81.8KB/s in 25s = 2017-09-23 05:12:47 (106 KB/s) - ‘nagios-plugins-2.2.1.tar.gz’ saved [2728818/2728818]
Extract the Downloaded Files
# tar zxvf nagios-4.3.4.tar.gz # tar zxvf nagios-plugins-2.2.1.tar.gz
Install Nagios Core
Now we need to compile and install the files so we go to the Nagios directory and run the configuration script. After running configure script, output in the last lines would be look like as shown below.
# cd nagios-4.3.4/
# ./configure --with-command-group=nagcmd
Output:
Creating sample config files in sample-config/ ...
*** Configuration summary for nagios 4.3.4 2017-08-24 ***:
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: /run/nagios.lock
Check result directory: ${prefix}/var/spool/checkresults
Init directory: /etc/rc.d/init.d
Apache conf.d directory: /etc/httpd/conf.d
Mail program: /bin/mail
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): /bin/traceroute
Review the options above for accuracy. If they look okay,
type 'make all' to compile the main program and CGIs.
Next we need to compile and install the Nagios files:
# make
Please supply a command line argument (i.e. 'make all'). Other targets are:
nagios cgis contrib modules workers
clean
install install-base install-cgis install-html install-exfoliation install-config install-init install-commandmode fullinstall
# make all
# make install
Output:
You can continue with installing Nagios as follows (type 'make'
without any arguments for a list of all possible options):
make install-init
- This installs the init script in /etc/rc.d/init.d
make install-commandmode
- This installs and configures permissions on the
directory for holding the external command file
make install-config
- This installs sample config files in /usr/local/nagios/etc
make[1]: Leaving directory `/root/nagios/nagios-4.3.4'
Finally we need to install the init scripts, the required files to run Nagios from the command line and the sample configuration files with the following commands:
# make install-init Output: /bin/install -c -m 755 -d -o root -g root /etc/rc.d/init.d /bin/install -c -m 755 -o root -g root daemon-init /etc/rc.d/init.d/nagios *** Init script installed *** # make install-commandmode /bin/install -c -m 775 -o nagios -g nagcmd -d /usr/local/nagios/var/rw chmod g+s /usr/local/nagios/var/rw *** External command directory configured *** # make install-config Output: /bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc /bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc/objects /bin/install -c -b -m 664 -o nagios -g nagios sample-config/nagios.cfg /usr/local/nagios/etc/nagios.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/cgi.cfg /usr/local/nagios/etc/cgi.cfg /bin/install -c -b -m 660 -o nagios -g nagios sample-config/resource.cfg /usr/local/nagios/etc/resource.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/templates.cfg /usr/local/nagios/etc/objects/templates.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/commands.cfg /usr/local/nagios/etc/objects/commands.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/timeperiods.cfg /usr/local/nagios/etc/objects/timeperiods.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/localhost.cfg /usr/local/nagios/etc/objects/localhost.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/windows.cfg /usr/local/nagios/etc/objects/windows.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/printer.cfg /usr/local/nagios/etc/objects/printer.cfg /bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/switch.cfg /usr/local/nagios/etc/objects/switch.cfg *** Config files installed *** Remember, these are *SAMPLE* config files. You'll need to read the documentation for more information on how to actually define services, hosts, etc. to fit your particular needs.
Now that we have Nagios installed and ready to run we need to install the web component by running the following command:
# make install-webconf
Output:
/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
if [ 0 -eq 1 ]; then \
ln -s /etc/httpd/conf.d/nagios.conf /etc/apache2/sites-enabled/nagios.conf; \
fi
*** Nagios/Apache conf file installed ***
Setup Web User Password
Now we need to setup the password for the user nagiosadmin with below command.
# htpasswd -s -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin
Restart apache for the settings to take effect:
# /bin/systemctl restart httpd.service
If everything is fine add the service to run on boot with this commands:
# /bin/systemctl enable httpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. # /bin/systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2017-09-23 05:30:36 EDT; 5s ago
Install Nagios Plugins
It’s time to install the Nagios Plugins by running the following commands:
# cd ~/nagios/nagios-plugins-2.0.3 # ./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install
Nagios Pre-flight Check
Before starting and using the Nagios service, we will have to make sure all steps of installation and configuration. If everything is safe to go then we will go ahead with next step.
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Output:
Nagios Core 4.3.4
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2017-08-24
License: GPL
Website: https://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
Adding Nagios at Startup
Next we have to make Nagios start at boot time, if everything is fine add the service to run on boot with this commands:
# /sbin/chkconfig --add nagios # /sbin/chkconfig --level 35 nagios on
And start the service with the following command:
# /bin/systemctl start nagios.service
Verify Nagios Server
Open Web Browser: http://Ip-Adddress/nagios
Username: nagiosadmin password: As Set above

Nagios Home Page

Nagios Services Page