In the first part of the Nagios series article, we’ve explained in detail how to install and configure the latest version of Nagios Core and Nagios Plugins in RHEL-based distributions such as CentOS Stream, Rocky Linux, AlmaLinux, and Fedora.
In this article, we will show you how to add a Remote Linux machine and its services to the Nagios Core Monitoring host using NRPE (Nagios Remote Plugin Executor) agent.
We hope you already have Nagios Core installed and running properly. If not, please use the following installation guide to install it on the system.
[ You might also like: How to Install Nagios Monitoring in RHEL, Rocky, and AlmaLinux ]
If you are planning to add a remote Windows host to the Nagios monitoring server, use the following guide:
[ You might also like: How to Add Windows Host to Nagios Monitoring Server ]
Once you’ve installed it, you can proceed further to install the NRPE agent on your Remote Linux host. Before heading further, let us give you a short description of NRPE.
Table of Contents
What is NRPE?
The NRPE (Nagios Remote Plugin Executor) plugin allows you to monitor any remote Linux/Unix services, network devices, or resources like CPU load, Swap, Memory usage, Online users, etc. on local/remote Linux machines.
After all, these local resources are not mostly exposed to external machines, an NRPE agent must be installed and configured on the remote machines.
Note: The NRPE addon requires that Nagios Plugins must be installed on the remote Linux machine. Without these, the NRPE daemon will not work and will not monitor anything.
Installation of NRPE Plugin in Nagios Server and Remote Linux Host
To use the NRPE, you will need to do some additional tasks on both the Nagios Monitoring Server and the Remote Linux Host that the NRPE is installed on. We will be covering both installation parts separately.
Installing Nagios Plugins and NRPE On Remote Linux Host
Please use the below instructions to install Nagios Plugins and NRPE daemon on the Remote Linux Host.
Step 1: Install Required Dependencies
We need to install required libraries like gcc, glibc, glibc-common, and GD and its development libraries using the yum package manager.
# yum install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel tar wget
Step 2: Create Nagios User
Create a new nagios user account and set a password.
# useradd nagios# passwd nagios
Step 3: Install the Nagios Plugins
Create a directory for nagios plugin installation and all its future downloads.
# mkdir /root/nagios# cd /root/nagios
Now download the latest Nagios Plugins package with the wget command.
# wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
Step 4: Extract Nagios Plugins
Run the following tar command to extract the source code tarball.
# tar -xvf nagios-plugins-2.3.3.tar.gz
After, extracting one new folder will appear in that directory.
# ls -ltotal 2724drwxr-xr-x. 15 root root 4096 Mar 11 2020 nagios-plugins-2.3.3-rw-r--r--. 1 root root 2782610 Mar 11 2020 nagios-plugins-2.3.3.tar.gz
Step 5: Compile and Install Nagios Plugins
Next, compile and install nagios plugins using the following commands
# cd nagios-plugins-2.3.3# ./configure # make# make install
Set the permissions on the plugin directory using the chown command.
# chown nagios.nagios /usr/local/nagios# chown -R nagios.nagios /usr/local/nagios/libexec
Step 6: Installing NRPE Plugin
To install the nrpe plugin, first, download the latest NRPE Plugin or use the following wget command.
# cd /root/nagios# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.2/nrpe-4.0.2.tar.gz
Unpack the NRPE source code tarball.
# tar xzf nrpe-4.0.2.tar.gz# cd nrpe-4.0.2
Compile and install the NRPE addon.
# ./configure# make all
Note: If you get the following error while running the ‘make all‘ command:
In file included from ../include/common.h:34, from ./nrpe.c:38:/usr/include/openssl/err.h:413:15: note: declared here 413 | unsigned long ERR_get_error_line_data(const char **file, int *line, | ^~~~~~~~~~~~~~~~~~~~~~~/usr/bin/ld: /tmp/ccWQBjHb.o: in function `init_ssl':/root/nagios/nrpe-4.0.2/src/./nrpe.c:474: undefined reference to `get_dh2048'collect2: error: ld returned 1 exit statusmake[1]: *** [Makefile:48: nrpe] Error 1
Then, you need to disable SSL for nrpe configuration with ./configure --disable-ssl
flag as shown.
# ./configure --disable-ssl# make all
Next, install the NRPE plugin daemon, and sample config files.
# make install-plugin# make install-daemon# make install-config
Install the NRPE daemon under systemd as a service.
# make install-init
Step 7: Configuring NRPE Plugin
Now open /usr/local/nagios/etc/nrpe.cfg file and add the local hostand IP address of the Nagios Monitoring Server.
allowed_hosts=127.0.0.1,192.168.102
Next, enable and restart the nrpe service.
# systemctl enable nrpe# systemctl restart nrpe
Step 8: Open NRPE Port in Firewall
Make sure that the Firewall on the local machine will allow the NRPE daemon to be accessed from remote servers. To do this, run the following iptables command.
# firewall-cmd --zone=public --add-port=5666/tcp# firewall-cmd --zone=public --add-port=5666/tcp --permanent
Step 8: Verify NRPE Daemon Locally
Run the following netstat command to verify the NRPE daemon working correctly under systemd.
# netstat -at | grep nrpeOR# netstat -na | grep "5666"tcp 0 0 0.0.0.0:nrpe 0.0.0.0:* LISTEN tcp6 0 0 [::]:nrpe [::]:* LISTEN
If you get output similar to the above, means it working correctly. If not, make sure to check the following things.
- Make sure to check that the nrpe entry is correctly added in the/etc/services file.
- The allowed_hosts contains an entry for “nagios_ip_address” in the /usr/local/nagios/etc/nrpe.cfg file.
- Check for the errors in the system log files for about nrpe and fix those problems.
Next, verify the NRPE daemon is functioning properly by running the “check_nrpe” command that was installed earlier for testing purposes.
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
You will get the following string on the screen, it shows you what version of NRPE is installed:
NRPE v4.0.2
Step 9: Customize NRPE Commands
The default NRPE configuration file that got installed has several command definitions that will be used to monitor this machine. The sample configuration file is located at.
# vi /usr/local/nagios/etc/nrpe.cfg
The following are the default command definitions that are located at the bottom of the configuration file. For the time being, we assume you are using these commands. You can check them by using the following commands.
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_usersUSERS OK - 1 users currently logged in |users=1;5;10;0
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_loadOK - load average: 3.90, 4.37, 3.94|load1=3.900;15.000;30.000;0; load5=4.370;10.000;25.000;0; load15=3.940;5.000;20.000;0;
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_hda1DISK OK - free space: /boot 154 MB (84% inode=99%);| /boot=29MB;154;173;0;193
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_total_procsPROCS CRITICAL: 297 processes
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_zombie_procsPROCS OK: 0 processes with STATE = Z
You can edit and add new command definitions by editing the NRPE config file. Finally, you’ve successfully installed and configured NRPE agent on the Remote Linux Host.
Now it’s time to install an NRPE component and add some services to your Nagios Monitoring Server…
Installing NRPE On Nagios Monitoring Server
Now login into your Nagios Monitoring Server. Here you will need to do the following things:
- Install the check_nrpe plugin.
- Create a Nagios command definition using the check_nrpe plugin.
- Create a Nagios host and add service definitions for monitoring the remote Linux host.
Step 1: Install NRPE Plugin in Nagios
Go to the nagios download directory and download the latest NRPE Plugin or use the following wget command.
# cd /root/nagios# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.2/nrpe-4.0.2.tar.gz
Unpack the NRPE source code tarball.
# tar xzf nrpe-4.0.2.tar.gz# cd nrpe-4.0.2
Compile and install the NRPE addon.
# ./configure# make all# make install-plugin# make install-daemon# make install-init
Step 2: Verify NRPE Daemon Remotely
Make sure that the check_nrpe plugin can communicate with the NRPE daemon on the remote Linux host. Add the IP address in the command below with the IP address of your Remote Linux host.
# /usr/local/nagios/libexec/check_nrpe -H <remote_linux_ip_address>
You will get a string back that shows you what version of NRPE is installed on the remote host, like this:
NRPE v4.0.2
If your receive a plugin time-out error, then check the following things.
- Make sure your firewall isn’t blocking the communication between the remote host and the monitoring host.
- Make sure that the NRPE daemon is installed correctly under systemd.
- Make sure that the remote Linux host firewall rules block the monitoring server from communicating with the NRPE daemon.
Adding Remote Linux Host to Nagios Monitoring Server
To add a remote host you need to create two new files “hosts.cfg” and “services.cfg” under the “/usr/local/nagios/etc/” location.
Step 1: Creating Nagios Host and Services File
# cd /usr/local/nagios/etc/# touch hosts.cfg# touch services.cfg
Now add these two files to the main Nagios configuration file. Open the nagios.cfg file with any editor.
# vi /usr/local/nagios/etc/nagios.cfg
Now add the two newly created files as shown below.
# You can specify individual object config files as shown below:cfg_file=/usr/local/nagios/etc/hosts.cfgcfg_file=/usr/local/nagios/etc/services.cfg
Step 2: Configuring Nagios Host and Services File
Now open hosts.cfg file and add the default host template name and define remote hosts as shown below. Make sure to replace host_name, alias, and address with your remote host server details.
# vi /usr/local/nagios/etc/hosts.cfg
## Default Linux Host Template ##define host{name linux-box ; Name of this templateuse generic-host ; Inherit default valuescheck_period 24x7 check_interval 5 retry_interval 1 max_check_attempts 10 check_command check-host-alivenotification_period 24x7 notification_interval 30 notification_options d,r contact_groups admins register 0 ; DONT REGISTER THIS - ITS A TEMPLATE}## Defaultdefine host{use linux-box ; Inherit default values from a templatehost_name tecmint ; The name we're giving to this serveralias CentOS 6 ; A longer name for the serveraddress 5.175.142.66 ; IP address of Remote Linux host}
Next open services.cfg file and add the following services to be monitored.
# vi /usr/local/nagios/etc/services.cfg
define service{ use generic-service host_name tecmint service_description CPU Load check_command check_nrpe!check_load }define service{ use generic-service host_name tecmint service_description Total Processes check_command check_nrpe!check_total_procs }define service{ use generic-service host_name tecmint service_description Current Users check_command check_nrpe!check_users }define service{ use generic-service host_name tecmint service_description SSH Monitoring check_command check_nrpe!check_ssh }define service{ use generic-service host_name tecmint service_description FTP Monitoring check_command check_nrpe!check_ftp }
Step 3: Configuring NRPE Command Definition
Now NRPE command definition needs to be created in commands.cfg file.
# vi /usr/local/nagios/etc/objects/commands.cfg
Add the following NRPE command definition at the bottom of the file.
################################################################################ NRPE CHECK COMMAND## Command to use NRPE to check remote host systems###############################################################################define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
Finally, verify Nagios Configuration files for any errors.
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgTotal Warnings: 0Total Errors: 0
Finally, restart Nagios to apply recent configuration changes:
# systemctl restart nagios
Step 4: Monitoring Remote Linux in Nagios
Now go to the Nagios Monitoring Web interface at “http://Your-server-IP-address/nagios” or “http://FQDN/nagios” and Provide the username “nagiosadmin” and password. Check that the Remote Linux Host was added and is being monitored.
Conclusion
That’s it! for now, in my upcoming article, I will show you how to add a Windows host to Nagios monitoring Server. If you’re facing any difficulties while adding the remote host to Nagios.
Please do comment on your queries or problem via the comment section, till then stay tuned to Tecmint.com for more such valuable articles.
FAQs
How to add Linux host to Nagios monitoring server using SNMP? ›
- STEP 01: Add Command Definitions. ...
- STEP 02: CREATE CONFIG DIRECTORY. ...
- STEP 03: CREATE HOST/SERVICE DEFINITION FILE. ...
- STEP 04: Add Host Definition File Path Into Nagios Main Configuration File. ...
- STEP 05: VERIFY NAGIOS CONFIGS AND CHECK FOR ERROR. ...
- STEP 06: Restart Nagios Service.
The NRPE addon is designed to allow you to execute Nagios plugins on remote Linux/Unix machines. The main reason for doing this is to allow Nagios to monitor "local" resources (like CPU load, memory usage, etc.) on remote machines.
What is Nrpe Nagios Remote Plugin Executor in Nagios? ›The Nagios daemon which run checks on remote machines in NRPE (Nagios Remote Plugin Executor). It allows you to run Nagios plugins on other machines remotely. You can monitor remote machine metrics such as disk usage, CPU load etc. It can also check metrics of remote windows machines through some windows agent addons.
How to add Linux host to Nagios Ubuntu server? ›- Step 1: Install NRPE on Ubuntu. Nagios only discovers and monitors the server on which it is installed by default ( localhost ). ...
- Step 2: Configure the NRPE agent. ...
- Step 3: Add host to Nagios server. ...
- Step 4: Configure the UFW firewall.
To manually add a new host, select the Hosts link located under Monitoring on the left menu of CCM. This will bring up the Host Management page, which displays a list of the current hosts being monitored by Nagios XI.
How to monitor Linux server with SNMP? ›- Install an SNMPd Agent on Ubuntu Server 17.
- SNMPd Configuration.
- Access Control.
- System Information.
- Install and Configure SNMP on CentOS.
- Test the SNMP Configuration.
- Linux SNMP OIDs for CPU, Memory, and Disk Statistics.
- Installation. yum install net-snmp.
- Configuration. Edit the file: /etc/snmp/snmpd.conf. Add the following lines: rocommunity public. agentAddress udp:161,udp6:[::1]:161. Start the snmpd service: systemctl enable snmpd && systemctl start snmpd.
- Allow SNMP ports in Firewall.
Nagios provides complete monitoring of Linux operating systems and distributions – including operating system metrics, service state, process state, file system usage, and more. When you use Nagios to monitor your Linux environment, you're using one of the most powerful Linux monitoring tools on the planet.
How to install a plugin in Nagios? ›Installing a new plugin in Nagios XI is very simple. Navigate to Admin > System Extensions > Manage Plugins. Click the Browse button to select the new plugin you want to install. Select the plugin file countdown_to_date.
How does Nrpe work? ›NRPE allows you to remotely execute Nagios plugins on other Linux/Unix machines. This allows you to monitor remote machine metrics (disk usage, CPU load, etc.). NRPE can also communicate with some of the Windows agent addons, so you can execute scripts and check metrics on remote Windows machines as well.
How do Nagios plugins work? ›
Plugins are standalone extensions to Nagios Core that make it possible to monitor anything and everything with Core. Plugins process command-line arguments, perform a specific check, and then return the results to Nagios Core.
Where are the Check_nrpe plugin and NRPE daemon located? ›We can install bunch of Nagios plugins including check_nrpe plugin using the following command. These plugins will be installed to /usr/lib/nagios/plugins. If you see NRPE version as the command output, that means you have successfully configured NREP daemon on the remote host.
How do I enable Nrpe? ›- Add nrpe port to /etc/services – Add NRPE service to /etc/services and make sure port 5666 (default) is open on Firewall: # echo "nrpe 5666/tcp # NRPE" >> /etc/services.
- Make necessary changes to nrpe. conf – Edit nrpe. ...
- Start xinetd/nrpe and enable them at system boot:
By default, Nagios Remote Plugin Executor aka NRPE uses port 5666 for its checks.
What is NRPE and why is it used? ›NRPE. Nagios Remote Plugin Executor (NRPE) is a Nagios agent that allows remote system monitoring using scripts that are hosted on the remote systems. It allows for monitoring of resources such as disk usage, system load or the number of users currently logged in.
How do I connect to Nagios? ›- Install Required Packages In The Monitoring Server.
- Install Nagios Core, Nagios Plugins And NRPE (Nagios Remote Plugin Executor)
- Set Nagios Password To Access The Web Interface.
- Install NRPE In Client.
- Install the prerequisites: ...
- Open port 80 for httpd : ...
- Create a user and group for Nagios Core: ...
- Run ./configure : ...
- Compile the Nagios Core source code: ...
- Install Nagios source code: ...
- Copy the event handlers and change their ownership: ...
- Run the pre-flight check:
- Create a remote server configuration.
- Specify the name, type, and visibility of a server configuration.
- Specify user credentials defined during registration on the host.
- Enable connection to the server and specify the server configuration root.
- Map local folders to folders on the server and the URL addresses to access them.
- Open your text editor in Administrator mode.
- In the text editor, open C:\Windows\System32\drivers\etc\hosts.
- Add the IP Address and hostname. Example: 171.10.10.5 opm.server.com.
- Save the changes.
To allow client access, add the client host name or IP address in /etc/hosts. allow. To deny client access, add its name or IP address in /etc/hosts.
How do I add a host in Checkmk? ›
So let's switch back to the browser and add it to Checkmk. To add the host to the monitoring system, once again click on setup and then go to "Hosts", and then "Add host", you can either click the small button or the big blue button here.
How do I add a host to cockpit? ›- Accessing the host add feature in Cockpit that's running on AlmaLinux.
- Configuring the necessary information for the new host to be added.
- Accepting the key for the remote server.
- You must type the user password to continue.
- Creating an SSH key for automatic Cockpit login.
- Install the prerequisites: ...
- Open port 80 for httpd : ...
- Create a user and group for Nagios Core: ...
- Run ./configure : ...
- Compile the Nagios Core source code: ...
- Install Nagios source code: ...
- Copy the event handlers and change their ownership: ...
- Run the pre-flight check:
As opposed to just checking that a web server is running on the classroom PCs, you could also check that t he nagios3 service is available, by requesting the /nagios3/ path. This means passing extra options to the check_http plugin.
Which method would you prefer while monitoring a Linux machine in Nagios? ›The NRPE addon is designed to allow you to execute Nagios plugins on remote Linux/Unix machines. The main reason for doing this is to allow Nagios to monitor “local” resources (like CPU load, memory usage, etc.) on remote machines.
What are Nagios commands? ›Nagios - Commands
Commands include service checks, service notifications, service event handlers, host checks, host notifications, and host event handlers. Command definitions for Nagios are defined in commands. cfg file. Command name − This directive is used to identify the command.
Edit the Hosts File in Linux
Open the Terminal by pressing Ctrl+Alt+T. Add the targeted IP address followed by a space, then the domain name at the bottom of the hosts file, just like on the Windows 10 tutorial. Save your changes.
Checkmk agents are available for a wide variety of operating systems — from the commonplace such as Windows and Linux to exotics such as OpenVMS. The agents are passive and listen on TCP port 6556.
How do I add a hostname? ›- Open the /etc/hosts file. vi /etc/hosts.
- Add a line of text in the format ip-address localhost localhost. localdomain. As shown in Figure 1, enter 192.168. 1.158 imctest imctest. IMC to map 192.168. 1.158 to the host name imctest in the IMC domain. ...
- Save and close the file.
Cockpit is a web-based graphical interface for servers, intended for everyone, especially those who are: new to Linux (including Windows admins) familiar with Linux and want an easy, graphical way to administer servers. expert admins who mainly use other tools but want an overview on individual systems.
How do I access my Cockpit remotely? ›
Once installed, open your web browser and navigate to https://localhost:9090 (or) https://IP-address:9090. You will be pleased with Cockpit's login screen. Use any one of your system user's credentials to login.
How do I connect to a host in terminal? ›Open the terminal on the server machine. You can either search for “terminal” or press CTRL + ALT + T on your keyboard. Type in ssh localhost and hit enter.
What is the configuration file for Nagios? ›The main configuration file is usually named nagios. cfg and located in the /usr/local/nagios/etc/ directory.
How to add services to Nagios server? ›To manually add a new service, select the Services link located under Monitoring on the left menu of CCM. This will bring up the service Management page, which displays a list of the current services being monitored by Nagios XI. Click the Add New button to manually add a new service.