Wednesday, 11 January 2017

NRPE DOCUMENTATION

SETUP AND CONFIGURE NAGIOS CLIENT (NRPE) ON CENTOS/RHEL 6.3

NRPE is called as ‘Nagios Remote Plugin Executer’. It is a Nagios plugin that allows nagios server to remotely execute plugins on other 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. Since these public resources are not usually exposed to external machines, an agent like NRPE must be installed on the remote Linux/Unix machines.
This article will guide you through the installation and configuration steps of Nagios Client – NRPE on CentOS 6.3.
Server side Nagios core and plugin package version:
   Nagios Core: nagios-4.0.0
   Nagios Plugin: nagios-plugins-1.4.16
To install Nagios please see my Nagios Installation Docs.
For testing purpose we have setup following machines:

IP AddressHostname
Nagios Server10.0.1.10mon001
Nagios Client10.0.1.20haproxy001
1) Prerequisite
  • Nagios server in working condition.
  • Following dependent package to compile and install.
   yum install gcc glibc glibc-common xinetd 
Create nagios user and group by which we will be installing NRPE and Nagios-Plugin
   useradd -m nagios
   password nagios
2) Installation
2.1) Create a directory where you would download nagios software:
   mkdir /usr/local/src
   cd /usr/local/src
2.2) First of all we need to Download/Untar/Compile and Install all necessary files for Nagios-Plugin:
   wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz
   cd nagios-plugins-1.4.16
   ./configure --with-nagios-user=nagios --with-nagios-group=nagios
   make
   make install
2.3) Then we need to Download/Untar/Compile and Install all necessary files for NRPE:
   cd /usr/local/src/
   wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz
   ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios
   make all
   make install-plugin
   make install-daemon
   make install-daemon-config

Note: NRPE by default is installed under /usr/local/nagios directory.
2.4) Install the NRPE daemon as a service under xinetd.
   make install-xinetd
2.5) We need to fix permission as well.
   chown nagios.nagios /usr/local/nagios
   chown -R nagios.nagios /usr/local/nagios/libexec 
3) Configuration
3.1) Nagios Client (NRPE) Configuration
3.1.1) Add the IP Address of the Nagios monitoring server to “only_from” directive in /etc/xinetd.d/nrpe file:
   vi /etc/xinetd.d/nrpe
   only_from = 10.0.1.10
3.1.2) Add the following entry for the NRPE daemon to the /etc/services file:
   vi /etc/services
   nrpe              5666/tcp           # NRPE
3.1.3) Restart the xinetd service:
   service xinetd restart
3.2) Validation and Testing
3.2.1) We need to check if nrpe daemon is running under xinetd:
   netstat -at | grep nrpe
   tcp        0      0 *:nrpe                      *:*                         LISTEN 
3.2.2) Now we need to do the functional testing of NRPE daemon:
   /usr/local/nagios/libexec/check_nrpe -H localhost
   NRPE v2.14
3.2.3) Some inbuild checks that we can check:
   /usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
   USERS OK - 3 users currently logged in |users=3;5;10;0

   /usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
   OK - load average: 0.00, 0.02, 0.00|load1=0.000;15.000;30.000;0; load5=0.020;10.000;25.000;0; load15=0.000;5.000;20.000;0;
3.3) Firewall Rule for NRPE:
3.3.1) Firewall port that needs to be open for NRPE daemon on client machine:
   iptables -A INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
3.3.2) Save the Iptables rules and restart it.
   service iptables save
   service iptables restart
Once we are fully convinced that NRPE is running successfully, now is time to do full-fledged setup:
4) Nagios Server Setup
4.1) We need to Download/Untar/Compile and Install NRPE Plugin
   cd /usr/local/src/
   wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz
   ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios
   make all
   make install-plugin 
4.2) Validation/Testing
Now we need to make sure that NRPE plugin (from Nagios Server) can talk to nrpe daemon (Client machine). 
   /usr/local/nagios/libexec/check_nrpe -H 10.0.1.20
   NRPE v2.14
4.3) Creating Configuration file
4.3.1) Add the following *check_nrpe* definition in “commands.cfg” file:
   vi /usr/local/nagios/etc/commands.cfg

   define command{
      command_name   check_nrpe
      command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
4.3.2) We also need to create host and service definitions
   vi /usr/local/nagios/etc/objects/hosts.cfg

   define host{
      use          linux-box
      host_name    haproxy001
      alias        HA Proxy 001
      address      10.0.1.20
      }


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

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    CPU Load
      check_command          check_nrpe!check_load
      }

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Current Users
      check_command          check_nrpe!check_users
      }

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Zombie Processes
      check_command          check_nrpe!check_zombie_procs
      }

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Total Processes
      check_command          check_nrpe!check_total_procs
      }
4.3.3) Verify your Nagios configuration files:
   /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
4.3.4) If there are errors, fix them. If everything is fine, restart Nagios:
   service nagios restart
That’s it! You should see the host and service definitions you created in the Nagios web interface. In a few minutes Nagios should have the current status information for the remote Linux/Unix machine.
5) Adding Custom Checks
5.1) Nagios Client (NRPE) Setup 

5.1.1) Adding Custom and other in build Checks provided by Nagios plugins you can find it in “/usr/local/nagios/libexec/”
Let say we need to add check_swap plugin that will send warning alert if free space is less than 20% and critical alert if swap free space is less than 10%.
On the NRPE Client machine (haproxy001) verify plugin is working fine:
   /usr/local/nagios/libexec/check_swap -w 20% -c 10%
5.1.1) Once we confirm that the plugin is working fine, we need to add the command entry in config file:
   vi /usr/local/nagios/etc/nrpe.cfg
   command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
5.1.3) Restart the NRPE Daemon:
   service xinetd restart
5.2) Nagios Server Setup
5.2.1) We need to define a new service for monitoring the swap usage on the remote host, by adding line in “service.cfg” file.
   vi /usr/local/nagios/etc/objects/services.cfg
   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Swap Usage
      check_command          check_nrpe!check_swap
      }
5.2.2) Verify your Nagios configuration files and in case there is no error restart the nagios server daemon:
   /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
   service nagios reload
You should see the new service definitions that we created in the Nagios web interface.


SETUP AND CONFIGURE NAGIOS CLIENT (NRPE) ON CENTOS/RHEL 6.3

NRPE is called as ‘Nagios Remote Plugin Executer’. It is a Nagios plugin that allows nagios server to remotely execute plugins on other 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. Since these public resources are not usually exposed to external machines, an agent like NRPE must be installed on the remote Linux/Unix machines.
This article will guide you through the installation and configuration steps of Nagios Client – NRPE on CentOS 6.3.
Server side Nagios core and plugin package version:
   Nagios Core: nagios-4.0.0
   Nagios Plugin: nagios-plugins-1.4.16
To install Nagios please see my Nagios Installation Docs.
For testing purpose we have setup following machines:

IP AddressHostname
Nagios Server10.0.1.10mon001
Nagios Client10.0.1.20haproxy001
1) Prerequisite
  • Nagios server in working condition.
  • Following dependent package to compile and install.
   yum install gcc glibc glibc-common xinetd 
Create nagios user and group by which we will be installing NRPE and Nagios-Plugin
   useradd -m nagios
   password nagios
2) Installation
2.1) Create a directory where you would download nagios software:
   mkdir /usr/local/src
   cd /usr/local/src
2.2) First of all we need to Download/Untar/Compile and Install all necessary files for Nagios-Plugin:
   wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz
   cd nagios-plugins-1.4.16
   ./configure --with-nagios-user=nagios --with-nagios-group=nagios
   make
   make install
2.3) Then we need to Download/Untar/Compile and Install all necessary files for NRPE:
   cd /usr/local/src/
   wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz
   ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios
   make all
   make install-plugin
   make install-daemon
   make install-daemon-config

Note: NRPE by default is installed under /usr/local/nagios directory.
2.4) Install the NRPE daemon as a service under xinetd.
   make install-xinetd
2.5) We need to fix permission as well.
   chown nagios.nagios /usr/local/nagios
   chown -R nagios.nagios /usr/local/nagios/libexec 
3) Configuration
3.1) Nagios Client (NRPE) Configuration
3.1.1) Add the IP Address of the Nagios monitoring server to “only_from” directive in /etc/xinetd.d/nrpe file:
   vi /etc/xinetd.d/nrpe
   only_from = 10.0.1.10
3.1.2) Add the following entry for the NRPE daemon to the /etc/services file:
   vi /etc/services
   nrpe              5666/tcp           # NRPE
3.1.3) Restart the xinetd service:
   service xinetd restart
3.2) Validation and Testing
3.2.1) We need to check if nrpe daemon is running under xinetd:
   netstat -at | grep nrpe
   tcp        0      0 *:nrpe                      *:*                         LISTEN 
3.2.2) Now we need to do the functional testing of NRPE daemon:
   /usr/local/nagios/libexec/check_nrpe -H localhost
   NRPE v2.14
3.2.3) Some inbuild checks that we can check:
   /usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
   USERS OK - 3 users currently logged in |users=3;5;10;0

   /usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
   OK - load average: 0.00, 0.02, 0.00|load1=0.000;15.000;30.000;0; load5=0.020;10.000;25.000;0; load15=0.000;5.000;20.000;0;
3.3) Firewall Rule for NRPE:
3.3.1) Firewall port that needs to be open for NRPE daemon on client machine:
   iptables -A INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
3.3.2) Save the Iptables rules and restart it.
   service iptables save
   service iptables restart
Once we are fully convinced that NRPE is running successfully, now is time to do full-fledged setup:
4) Nagios Server Setup
4.1) We need to Download/Untar/Compile and Install NRPE Plugin
   cd /usr/local/src/
   wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz
   ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios
   make all
   make install-plugin 
4.2) Validation/Testing
Now we need to make sure that NRPE plugin (from Nagios Server) can talk to nrpe daemon (Client machine). 
   /usr/local/nagios/libexec/check_nrpe -H 10.0.1.20
   NRPE v2.14
4.3) Creating Configuration file
4.3.1) Add the following *check_nrpe* definition in “commands.cfg” file:
   vi /usr/local/nagios/etc/commands.cfg

   define command{
      command_name   check_nrpe
      command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
4.3.2) We also need to create host and service definitions
   vi /usr/local/nagios/etc/objects/hosts.cfg

   define host{
      use          linux-box
      host_name    haproxy001
      alias        HA Proxy 001
      address      10.0.1.20
      }


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

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    CPU Load
      check_command          check_nrpe!check_load
      }

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Current Users
      check_command          check_nrpe!check_users
      }

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Zombie Processes
      check_command          check_nrpe!check_zombie_procs
      }

   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Total Processes
      check_command          check_nrpe!check_total_procs
      }
4.3.3) Verify your Nagios configuration files:
   /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
4.3.4) If there are errors, fix them. If everything is fine, restart Nagios:
   service nagios restart
That’s it! You should see the host and service definitions you created in the Nagios web interface. In a few minutes Nagios should have the current status information for the remote Linux/Unix machine.
5) Adding Custom Checks
5.1) Nagios Client (NRPE) Setup 

5.1.1) Adding Custom and other in build Checks provided by Nagios plugins you can find it in “/usr/local/nagios/libexec/”
Let say we need to add check_swap plugin that will send warning alert if free space is less than 20% and critical alert if swap free space is less than 10%.
On the NRPE Client machine (haproxy001) verify plugin is working fine:
   /usr/local/nagios/libexec/check_swap -w 20% -c 10%
5.1.1) Once we confirm that the plugin is working fine, we need to add the command entry in config file:
   vi /usr/local/nagios/etc/nrpe.cfg
   command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
5.1.3) Restart the NRPE Daemon:
   service xinetd restart
5.2) Nagios Server Setup
5.2.1) We need to define a new service for monitoring the swap usage on the remote host, by adding line in “service.cfg” file.
   vi /usr/local/nagios/etc/objects/services.cfg
   define service{
      use                    generic-service
      host_name              haproxy001
      service_description    Swap Usage
      check_command          check_nrpe!check_swap
      }
5.2.2) Verify your Nagios configuration files and in case there is no error restart the nagios server daemon:
   /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
   service nagios reload
You should see the new service definitions that we created in the Nagios web interface.

No comments:

Post a Comment