Monitoring Linux Client Using Nagios (NRPE)
Monitoring Linux Client Using Nagios. We can monitor the remote Linux client using SNMP and NRPE (Nagios Remote Plugin Executor) client. In this article we are going to see how to setup a Linux client monitoring using NRPE.
In-order to monitor the Linux client using NRPE we have to install NRPE in client and Nagios server as well.
NRPE installation process
After completion of NRPE installation in client you have to configure (define) commands in remote client. To define a commands you have to edit the below file.
In Remote Client Side
# vi /usr/local/nagios/nrpe.cfg
end of nrpe.cfg file you have to define the commands using local plugins (default location is /usr/local/nagios/libexec/) as example shown below
## Example Commands mentioned in Remote Linux Client command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1 command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 command[check_mem]=/usr/local/nagios/libexec/check_mem_new.sh -w 80 -c 90
Now ensure below things in remote Linux client
- Add Nagios server IP address in /etc/xinetd.d/nrpe.cfg
- Add NRPE port number to allow NRPE service to communicate wit Nagios server in /etc/services
- Check whether NRPE port is listening state using #netstat -at |grep NRPE
- Add NRPE port (5666/5667/5668) in allow list of your firewall
In NAGIOS Server
First check using check_nrpe command whether remote client is responding to NRPE or not.
# cd /usr/local/nagios/libexec/ # ./check_nrpe -H <Remote Client IP> # NRPE v2.15
It means NRPE is working.
Now add NRPE commands to commands.cfg
# vi /usr/local/nagios/etc/objects/commands.cfg # 'check_ssh' command definition define command{ command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ } ## To call All the remote NRPE commands define command{ command_name check_nrpe command_line $USER1$/check_nrpe -n -H $HOSTADDRESS$ -c $ARG1$ } ## To all all the remote NRPE commands using ssl define command{ command_name check_nrpe_ssl command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } ## Check the remote NRPE command using 30seconds time limit define command{ command_name check_nrpe_timeout command_line $USER1$/check_nrpe -n -t 30 -H $HOSTADDRESS$ -c $ARG1$ } ## Check NRPE without hostname define command{ command_name check_nrpe_without_hostname command_line $USER1$/check_nrpe -n -t 60 -H $ARG1$ -c $ARG2$ } # 'check_mem' command definition will check memory utilization define command{ command_name check_mem command_line $USER1$/check_nrpe -n -H $HOSTADDRESS$ -c check_mem $ARG1$ $ARG2$ } # 'check_mem_ssl' command definition memory utilization using ssl define command{ command_name check_mem_ssl command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mem $ARG1$ $ARG2$ } # 'check_disk' command definition Disk space utilization define command{ command_name check_disk command_line $USER1$/check_nrpe -n -H $HOSTADDRESS$ -c check_disk } # 'check_disk_ssl' command definition disk space utilization using ssl define command{ command_name check_disk_ssl command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_disk } :wq << -- Save & Exit
Monitoring Linux Client Using Nagios
Now create a file with Host name in /usr/local/nagios/etc/objects/ARKIT-LINUX.cfg
# touch /usr/local/nagios/etc/objects/ARKIT-LINUX.cfg # vi /usr/local/nagios/etc/objects/ARKIT-LINUX.cfg ####### HOST DEFINATION: ARKIT.CO.IN ##### define host{ use linux-server host_name ARKIT.CO.IN alias Web Server contact_groups admins address 192.168.234.142 } ####### SERVICE DEFINATION: ARKIT.CO.IN ###### ## Check PING ### define service{ use generic-service host_name ARKIT.CO.IN service_description PING check_command check_ping!100.0,20%!500.0,60% } ## Check disk space utilization define service{ use generic-service host_name ARKIT.CO.IN service_description Disk Space Utilization check_command check_disk_ssl } ## Check SSH status define service{ use generic-service host_name ARKIT.CO.IN service_description SSH check_command check_ssh } ## Check Memory utilization define service{ use generic-service host_name ARKIT.CO.IN service_description Memory Utilization check_command check_mem_ssl } ## Check Login users list define service{ use generic-service host_name ARKIT.CO.IN service_description Current Login Users check_command check_nrpe_ssl!check_users } ## Chheck Load define service{ use generic-service host_name ARKIT.CO.IN service_description Load check_command check_nrpe_ssl!check_load } ### END ### :wq << -- Save & Exit
Above are only sample commands, please modify the template as per your environment and configuration.
Now add above saved file in /usr/local/nagios/etc/nagios.cfg Approx. line number 36
# vi /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/ARKIT-LINUX.cfg
Now reload or restart nagios services
# service nagios reload
OR
# service nagios restart
Below is the status
Monitoring Linux Client using Nagios Monitoring Linux Client using Nagios Monitoring Linux Client using Nagios Monitoring Linux Client using Nagios
That’s it your Remote Linux Client is configured Successfully.
Your Feedback is More Valuable to US.. Please provide your Valuable comments below.
Related Posts
Installing and configuring Linux Nagios Client (NRPE)
Nagios Installation Guide Step by Step
Thanks for your wonderful Support and Encouragement