How to Install Nagios Core Rocky Linux 8

Nagios Core, formerly known as 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 alert them a second time when the problem has been resolved.

Install Required Dependencies

Before installing Nagios core, we need to install some required libraries to work Nagios Core properly.

yum install -y httpd httpd-tools php gcc glibc glibc-common gd gd-devel make net-snmp

Now create Nagios User and Group for it.

useradd nagios
groupadd nagcmd

Next, add both nagios and apache user to the nagcmd group.

usermod -G nagcmd nagios
usermod -G nagcmd apache

Download Nagios Core and Nagios Plugin

Create a directory to install Nagios using the following command.

mkdir /root/nagios && cd /root/nagios

Download the Nagios and Nagios plugins using these two commands.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz

Then extract Nagios and its Plugins.

tar -xvf nagios-4.4.6.tar.gz
tar -xvf nagios-plugins-2.2.1.tar.gz

Configure Nagios

To run the Nagios configuration file, change the current directory to nagios-4.4.6.

cd nagios-4.4.6/

And then run Nagios Configure file.

./configure --with-command-group=nagcmd

Output:

*** Configuration summary for nagios 4.4.6 2020-04-28 ***:

 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:  /usr/local/nagios/var/spool/checkresults
           Init directory:  /lib/systemd/system
  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):

Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.

After configuring, compile and install required libraries using make command

make all
make install

Output:

*** Compile finished ***

If the main program and CGIs compiled without any errors, you
can continue with testing or installing Nagios as follows (type
'make' without any arguments for a list of all possible options):
  make test
     - This runs the test suite

  make install
     - This installs the main program, CGIs, and HTML files

  make install-init
     - This installs the init script in /lib/systemd/system

  make install-daemoninit
     - This will initialize the init script
       in /lib/systemd/system

make install-groups-users
     - This adds the users and groups if they do not exist

  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
       You'll have to modify these sample files before you can
       use Nagios.  Read the HTML documentation for more info
       on doing this.  Pay particular attention to the docs on
       object configuration files, as they determine what/how
       things get monitored!

  make install-webconf
     - This installs the Apache config file for the Nagios
       web interface

  make install-exfoliation
     - This installs the Exfoliation theme for the Nagios
       web interface

  make install-classicui
     - This installs the classic theme for the Nagios
       web interface

.
.
.

In above output we can see it listed some libraries to install we can install those using the make install command

for eg,

make install-init
make install-commandmode
make install-config

If you want to configure the Email alert, then proceed with the following steps. To configure the Email alert open this file /usr/local/nagios/etc/objects/contacts.cfg

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

NOTE: Replace your Email ID in place of Your Email Address Here

###############################################################################
#
# CONTACTS
#
###############################################################################

# Just one contact defined by default - the Nagios admin (that's you)
# This contact definition inherits a lot of default values from the
# 'generic-contact' template which is defined elsewhere.

define contact {
    contact_name            nagiosadmin             ; Short name of user
    use                     generic-contact         ; Inherit default values from generic-contact template (defined above)
    alias                   Nagios Admin            ; Full name of user
    email                   Your Email Address Here ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}

Install and Configure Web Interface for Nagios

Run the following command to install Web Interface for Nagios.

make install-webconf

Set a password for the Web interface.

htpasswd -s -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Once you setup the password, restart Apache service.

systemctl start httpd.service

Now open the port 80 in firewall

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

Compile and Install Nagios Plugin libreires

To install the Nagios Plugin, change the current directory to Nagios Plugin directory.

cd /root/nagios/nagios-plugins-2.2.1/

And run Nagios Plugin configuration file

./configure --with-nagios-user=nagios --with-nagios-group=nagios

Next, compile and install required libreires

make all
make install

Command to verify Nagios Configuration Files

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

Output:

Nagios Core 4.4.6
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2020-04-28
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

Enable Nagios Services

systemctl enable nagios
systemctl enable httpd

Login to the Nagios Web Interface

Open a Web browser and enter the following URL to login Nagios Web Interface

NOTE: Replace with your IP address or Fully qualified domain name in place of Your-Server-IP-Address FQDN

http://Your-Server-IP-address/nagios 

NOTE: Use nagiosadmin as default username and password which you have set while installing Nagios.

Nagios Web Dashboard

This concludes our topic of How to Install Nagios Core on Rocky Linux 8.

If you can not configure and face technical difficulties, kindly reach out to us via Support Ticket.