In the previous article, we demonstrated how to install Nagios Core on CentOS 8 / RHEL 8 server. In this guide, we will dive deeper and add Linux and Windows hosts to the Nagios Core server for monitoring.
Adding a Remote Windows Host to Nagios Server
In this section, you will learn how to add a Windows host system to the Nagios server. For this to be possible, you need to install NSClient++ agent on the Windows Host system. In this guide, we are going to install the NSClient++ on a Windows Server 2019 Datacenter edition.
On the Windows host system, head out to the download link as specified https://sourceforge.net/projects/nscplus/ and download NSClient ++ agent.
Once downloaded, double click on the downloaded installation file to launch the installation wizard.
On the first step on the installation procedure click ‘Next’
In the next section, check off the ‘I accept the terms in the license Agreement’ checkbox and click ‘Next’
Next, click on the ‘Typical’ option from the list of options and click ‘Next’
In the next step, leave the default settings as they are and click ‘Next’.
On the next page, specify your Nagios Server core’s IP address and tick off all the modules and click ‘Next’ as shown below.
Next, click on the ‘Install’ option to commence the installation process.
The installation process will start and will take a couple of seconds to complete. On the last step. Click ‘Finish’ to complete the installation and exit the Wizard.
To start the NSClient service, click on the Start menu and click on the ‘Start NSClient ++’ option.
To confirm that indeed the service is running, press Windows Key + R, type services.msc and hit ENTER. Scroll and search for the NSClient service and ensure it’s running
At this point, we have successfully installed NSClient++ on Windows Server 2019 host and verified that it’s running.
Configure Nagios Server to monitor Windows host
After the successful installation of the NSClient ++ on the Windows host PC, log in to the Nagios server Core system and configure it to monitor the Windows host system.
Open the windows.cfg file using your favorite text editor
# vim /usr/local/nagios/etc/objects/windows.cfg
In the configuration file, ensure that the host_name attribute matches the hostname of your Windows client system. In our case, the hostname for the Windows server PC is windows-server. This hostname should apply for all the host_name attributes.
For the address attribute, specify your Windows host IP address. , In our case, this was 10.128.0.52.
After you are done, save the changes and exit the text editor.
Next, open the Nagios configuration file.
# vim /usr/local/nagios/etc/nagios.cfg
Uncomment the line below and save the changes.
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
Finally, to verify that Nagios configuration is free from any errors, run the command:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Output
As you can see from the output, there are no warnings or errors.
Now browse your Nagios Server IP address, log in and click on Hosts. Your Windows hostname, in this case, windows-server will appear on the dashboard.
Adding a remote Linux Host to Nagios Server
Having added a Windows host to the Nagios server, let’s add a Linux host system. In our case, we are going to add a Ubuntu 18.04 LTS to the Nagios monitoring server. To monitor a Linux host, we need to install an agent on the remote Linux system called NRPE. NRPE is short for Nagios Remote Plugin Executor. This is the plugin that will allow you to monitor Linux host systems. It allows you to monitor resources such as Swap, memory usage, and CPU load to mention a few on remote Linux hosts. So the first step is to install NRPE on Ubuntu 18.04 LTS remote system.
But first, update Ubuntu system
# sudo apt update
Next, install Nagios NRPE by running the command as shown:
# sudo apt install nagios-nrpe-server nagios-plugins
After the successful installation of NRPE and Nagios plugins, configure NRPE by opening its configuration file in /etc/nagios/nrpe.cfg
# vim /etc/nagios/nrpe.cfg
Append the Linux host IP address to the server_address attribute. In this case, 10.128.0.53 is the IP address of the Ubuntu 18.04 LTS system.
Next, add Nagios server IP address in the ‘allowed_hosts’ attribute, in this case, 10.128.0.50
Save and exit the configuration file.
Next, restart NRPE service and verify its status
# systemctl restart nagios-nrpe-server # systemctl enable nagios-nrpe-server # systemctl status nagios-nrpe-server
Configure Nagios Server to monitor Linux host
Having successfully installed NRPE and nagios plugins on the remote linux server, log in to Nagios Server and install EPEL (Extra packages for Enterprise Linux) package.
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Next, install NRPE plugin on the server
# dnf install nagios-plugins-nrpe -y
After the installation of the NRPE plugin, open the Nagios configuration file “/usr/local/nagios/etc/nagios.cfg”
# vim /usr/local/nagios/etc/nagios.cfg
Next, uncomment the line below in the configuration file
cfg_dir=/usr/local/nagios/etc/servers
Next, create a configuration directory
# mkdir /usr/local/nagios/etc/servers
Then create client configuration file
# vim /usr/local/nagios/etc/servers/ubuntu-host.cfg
Copy and paste the configuration below to the file. This configuration monitors swap space, system load, total processes, logged in users, and disk usage.
define host{ use linux-server host_name ubuntu-nagios-client alias ubuntu-nagios-client address 10.128.0.53 } define hostgroup{ hostgroup_name linux-server alias Linux Servers members ubuntu-nagios-client } define service{ use local-service host_name ubuntu-nagios-client service_description SWAP Usage check_command check_nrpe!check_swap } define service{ use local-service host_name ubuntu-nagios-client service_description Root / Partition check_command check_nrpe!check_root } define service{ use local-service host_name ubuntu-nagios-client service_description Current Users check_command check_nrpe!check_users } define service{ use local-service host_name ubuntu-nagios-client service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use local-service host_name ubuntu-nagios-client service_description Current Load check_command check_nrpe!check_load }
Save and exit the configuration file.
Next, verify that there are no errors in Nagios configuration
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Now restart Nagios service and ensure that it is up and running.
# systemctl restart nagios
Remember to open port 5666 which is used by NRPE plugin on the firewall of the Nagios server.
# firewall-cmd --permanent --add-port=5666/tcp # firewall-cmd --reload
Likewise, head out to your Linux host (Ubuntu 18.04 LTS) and allow the port on UFW firewall
# ufw allow 5666/tcp # ufw reload
Finally, head out to the Nagios Server’s URL and click on ‘Hosts’. Your Ubuntu system will be displayed on the dashboard alongside the Windows host machine we added earlier on.
And this wraps up our 2-part series on Nagios installation and adding remote hosts. Feel free to get back to us with your feedback.
Also Read : How to Install Zabbix Monitoring Tool on CentOS 8/RHEL 8
Hi,
Thank you so much for this amazing blog, its really helpful.
i think there is typo on one of the command in “Configure Nagios Server to monitor Windows host” step it should say nrpe instead its says nagios-arpe. Hope I’m wrong here.
Hi Kunal,
Yes, you are right, that was the typo, i have corrected now.
How can i add another host? Below in this same file or another new file?
Hi Dawid,
There are two options here ,
1) Create a separate file for the another host under CFG directory “/usr/local/nagios/etc/servers”
2) Create one main CFG file (somename.cfg ) and add hosts entries in this cfg file, store that cfg file under
/usr/local/nagios/etc/servers
Thank you for the article!
Perfect information shared. like myself, it will fruitful for everyone
Hello good sir I have a question
This guide is very helpfull but i need to add multiple windows hosts ( ad , ad2, exchange )
Currently i configured AD monitoring with this guide, but i dont know how to add a second windows host
I did cp /usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/objects/windowsexchange.cfg & i changed IP & hostnames, installed nsclient on exchange server but the host wont add to nagios please help when i run bin command i get 0 errors