Discover how to effortlessly install Nagios Core on Rocky Linux 9 with our step-by-step guide. Enhance your system monitoring capabilities and ensure the reliability of your infrastructure with this powerful open-source solution. #centlinux #linux #nagios
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)
Nagios Core vs Zabbix
Nagios Core and Zabbix are both popular open-source network monitoring tools, but they have different approaches and features. Here’s a comparison:
- Architecture:
- Nagios Core: Nagios follows a plugin-based architecture. It uses a central server that monitors hosts and services by executing plugins on remote machines.
- Zabbix: Zabbix employs an agent-based architecture. It relies on agents installed on monitored devices to collect data, which is then sent to a central server for processing.
- Ease of Use:
- Nagios Core: Nagios requires more manual configuration and setup compared to Zabbix. It’s highly customizable but may have a steeper learning curve for beginners.
- Zabbix: Zabbix offers a more user-friendly interface and simplified setup process. It provides built-in templates for various devices and services, making it easier to get started.
- Monitoring Capabilities:
- Nagios Core: Nagios Core provides comprehensive monitoring capabilities, including network, server, and application monitoring. It supports event handling, alerting, and reporting.
- Zabbix: Zabbix offers a wide range of monitoring functionalities, including network, server, cloud, and application monitoring. It provides real-time monitoring, triggers, alarms, and visualization features.
- Scalability:
- Nagios Core: Nagios Core may require additional effort to scale for large environments. While it can handle thousands of devices, scalability can become a concern in extremely large deployments.
- Zabbix: Zabbix is known for its scalability and performance. It’s capable of handling thousands of devices and checks efficiently, making it suitable for enterprise-level deployments.
- Community and Support:
- Nagios Core: Nagios has a large and active community with extensive documentation and user-contributed plugins. However, official support is primarily available through paid Nagios XI subscriptions.
- Zabbix: Zabbix also has a strong community and provides extensive documentation. Additionally, official commercial support is available from the Zabbix company.
Ultimately, the choice between Nagios Core and Zabbix depends on factors such as your specific monitoring requirements, existing infrastructure, scalability needs, and preferences for ease of use. Both tools are powerful options for network monitoring, and the best choice will vary depending on the unique needs of your organization.
Recommended Online Training: Nagios for DevOps and IT Network System Administrators
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
Prepare your 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
Install Nagios Core 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.
Install Nagios on Rocky Linux 9
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:Nagios Librarybefore 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:Nagios Support Home************************************************************* 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
Install 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.
We are now at the Dashboard of Nagios Core web interface. Click on “Services”.
Recommended Book: Learning Nagios – Third Edition (PAID LINK)
Final Thoughts
Equip yourself with the essential knowledge to seamlessly install Nagios Core on Rocky Linux 9. Strengthen your system monitoring infrastructure and elevate your network’s reliability with this versatile and robust open-source tool. Let this guide empower you to optimize your system’s performance and maintain peak operational efficiency.
it will be nice if you guide us How to install NRPE plugin on Nagios Server and monitor remote host using Nagios NRPE agent.
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.