How to install Nagios Core on Rocky Linux 9

How to install Nagios Core on Rocky Linux 9

In this Linux tutorial, you will learn how to install Nagios Core on Rocky Linux 9 or other Red Hat based Linux distributions.

 

Table of Contents:

 

What is Nagios Core?:

Nagios Core /ˈnɑːɡiːoʊs/, 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 alerts them a second time when the problem has been resolved.

Ethan Galstad and a group of developers originally wrote Nagios as NetSaint. As of 2015 they actively maintain both the official and unofficial plugins. Nagios is a recursive acronym: "Nagios Ain't Gonna Insist On Sainthood" – "sainthood" makes reference to the original name NetSaint, which changed in response to a legal challenge by owners of a similar trademark. "Agios" (or "hagios") also transliterates the Greek word άγιος, which means "saint".

Nagios was originally designed to run under Linux, but it also runs on other Unix variants. It is free software licensed under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. (Source: Wikipedia)

 

Environment Specification:

We are using a minimal Rocky Linux 9 virtual machine with following specifications.

  • CPU - 3.4 Ghz (2 cores)
  • Memory - 2 GB
  • Storage - 20 GB
  • Operating System - Rocky Linux release 9.1 (Blue Onyx)
  • Hostname - nagios-01.centlinux.com
  • IP Address - 192.168.88.128/24

 

Preparing your Rocky Linux Server:

By using a ssh client, login as root user on your Rocky Linux server.

Set a Fully Qualified Domain Name (FQDN) for your Linux machine. You may also need to setup Local DNS resolution Or you can install a Linux based DNS server for this purpose.

# hostnamectl set-hostname nagios-01.centlinux.com
# echo "192.168.88.128 nagios-01 nagios-01.centlinux.com" >> /etc/hosts

Refresh your Yum cache and update software packages in your Linux operating system.

# dnf makecache
# dnf update -y

If the above command updates your Linux Kernel, then you should reboot your Linux operating system with newly installed Kernel before installing Nagios Core software.

# reboot

After reboot, check the version of your Linux operating system and Kernel.

# cat /etc/rocky-release
Rocky Linux release 9.1 (Blue Onyx)

# uname -r
5.14.0-162.18.1.el9_1.x86_64

SELinux may cause problems for Nagios Core software. Therefore, it is recommended in the Nagios Core documentation to disable SELinux or put it in permissive mode before installing your network monitoring software.

You can use following commands to permanantly disable SELinux on Rocky Linux 9.

# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0

 

Installing Nagios Prerequisites:

Nagios Core requires some software packages. You can install all these packages by using following dnf command.

# dnf install -y gcc glibc glibc-common perl httpd php wget gd gd-devel tar openssl-devel make gettext automake autoconf net-snmp net-snmp-utils epel-release

Rebuild your yum cache for EPEL repository.

# dnf makecache

Execute following command to install perl-Net-SNMP package from EPEL yum repository.

# dnf install -y perl-Net-SNMP

Enable and start Apache and PHP services.

# systemctl enable --now httpd.service php-fpm.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

 

Installing Nagios Core:

Currently Nagios Core 4.4.10 is available at their official website.

You can download it by executing wget command at Linux bash prompt.

# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.10.tar.gz
--2023-03-14 21:21:57--  https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.10.tar.gz
Resolving assets.nagios.com (assets.nagios.com)... 45.79.49.120, 2600:3c00::f03c:92ff:fef7:45ce
Connecting to assets.nagios.com (assets.nagios.com)|45.79.49.120|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11339491 (11M) [application/x-gzip]
Saving to: ‘nagios-4.4.10.tar.gz’

nagios-4.4.10.tar.g 100%[===================>]  10.81M   929KB/s    in 12s

2023-03-14 21:22:10 (943 KB/s) - ‘nagios-4.4.10.tar.gz’ saved [11339491/11339491]

Extract the downloaded Nagios Core source as follows.

# tar xzf nagios-4.4.10.tar.gz

Go to extracted directory and configure the Nagios setup according to your server environment.

# cd nagios-4.4.10
# ./configure
...
...
...
Creating sample config files in sample-config/ ...


*** Configuration summary for nagios 4.4.10 2023-01-17 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagios
             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.

Compile Nagios main program and CGIs using following command.

# make all
...
...
...
*** 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


*** Support Notes *******************************************

If you have questions about configuring or running Nagios,
please make sure that you:

     - Look at the sample config files
     - Read the documentation on the Nagios Library at:
           https://library.nagios.com

before you post a question to one of the mailing lists.
Also make sure to include pertinent information that could
help others help you.  This might include:

     - What version of Nagios you are using
     - What version of the plugins you are using
     - Relevant snippets from your config files
     - Relevant error messages from the Nagios log file

For more information on obtaining support for Nagios, visit:

       https://support.nagios.com

*************************************************************

Enjoy.

Create the required OS users and groups by using the following command.

# make install-groups-users
groupadd -r nagios
useradd -g nagios nagios

Add nagios as secondary group of apache user.

# usermod -a -G nagios apache

Install the already compiled Nagios Core binaries on your Rocky Linux server.

# make install

To configure autostart of Nagios network monitoring software, you need to create a systemd service. The Nagios installer also provides a method to create the required service.

You can create the Nagios service by using the following command.

# make install-daemoninit
/usr/bin/install -c -m 755 -d -o root -g root /lib/systemd/system
/usr/bin/install -c -m 755 -o root -g root startup/default-service /lib/systemd/system/nagios.service
Created symlink /etc/systemd/system/multi-user.target.wants/nagios.service → /usr/lib/systemd/system/nagios.service.

*** Init script installed ***

You can use the following command to configure Nagios Core command mode on Rocky Linux 9.

# make install-commandmode
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw

*** External command directory configured ***

Install the Nagios sample configuration file on your Rocky Linux server by using the following command format.

# make install-config
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc/objects
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/nagios.cfg /usr/local/nagios/etc/nagios.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/cgi.cfg /usr/local/nagios/etc/cgi.cfg
/usr/bin/install -c -b -m 660 -o nagios -g nagios sample-config/resource.cfg /usr/local/nagios/etc/resource.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/templates.cfg /usr/local/nagios/etc/objects/templates.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/commands.cfg /usr/local/nagios/etc/objects/commands.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/timeperiods.cfg /usr/local/nagios/etc/objects/timeperiods.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/localhost.cfg /usr/local/nagios/etc/objects/localhost.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/windows.cfg /usr/local/nagios/etc/objects/windows.cfg
/usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/printer.cfg /usr/local/nagios/etc/objects/printer.cfg
/usr/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.

Install the Apache configuration file to configure the Nagios web interface.

# make install-webconf
/usr/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 ***

Everything has been configured successfully. Now it is time to start and test the Nagios and Apache services.

# systemctl restart httpd nagios

 

Configure Linux Firewall:

Allow the Apache web service in your Linux firewall.

# firewall-cmd --permanent --add-service=http
success

# firewall-cmd --reload
success

 

Configure Basic HTTP Authentication:

Nagios Core does not provide a native authentication method, therefore, you have to use Basic HTTP authentication to create authentication control for the Nagios web interface.

Create an Admin user and add it to htaccess password file.

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin

 

Installing Nagios Plugins:

To monitor a machine with Nagios network monitoring software, you need to install the relevant plugins/agents on that machine.

Nagios Plugins is a pack of more than 50 plugins that provides the plugins to monitor most common metrics and services on a machine.

Download Nagios Plugins from their official website.

# wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
--2023-03-14 21:54:23--  https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
Resolving nagios-plugins.org (nagios-plugins.org)... 45.56.123.251
Connecting to nagios-plugins.org (nagios-plugins.org)|45.56.123.251|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2782610 (2.7M) [application/x-gzip]
Saving to: ‘nagios-plugins-2.3.3.tar.gz’

nagios-plugins-2.3. 100%[===================>]   2.65M   885KB/s    in 3.1s

2023-03-14 21:54:28 (885 KB/s) - ‘nagios-plugins-2.3.3.tar.gz’ saved [2782610/2782610]

Extract the downloaded tarball using tar command.

# tar zxf nagios-plugins-2.3.3.tar.gz

Go to extracted setup directory and build and install Nagios Plugins from source.

# cd nagios-plugins-2.3.3
# ./configure
# make
# make install

Restart the Nagios Service to take changes into effect.

# systemctl restart nagios.service

Browse URL http://nagios-01.centlinux.com/nagios in a web browser.

You need to Login as nagiosadmin user.

nagios-core-dashboard

We are now at the Dashboard of Nagios Core web interface. Click on "Services".

nagios-core-services


Recommended Book: Learning Nagios - Third Edition (PAID LINK)

 

Conclusion:

In this Linux tutorial, you have learned how to install Nagios Core on Rocky Linux 9 or other Red Hat based Linux distributions.

2 Comments

  1. it will be nice if you guide us How to install NRPE plugin on Nagios Server and monitor remote host using Nagios NRPE agent.

    ReplyDelete
    Replies
    1. Hi, I regret for the late reply, because I was engaged in a project now-a-days.

      You can look at my article for NRPE Agent installation: https://www.centlinux.com/2016/09/install-nrpe-nagios-core-agent-centos-7.html

      Although it is written for CentOS 7, but you may do some research to adapt it for your preferred version of Linux.

      Hope this helps you.

      Delete
Previous Post Next Post