Nagios

= Versions =

[Nagios][NRPE] Ubuntu         CentOS Server (to be monitored)

Ubuntu    16.04.5 LTS Nagios    Core 3.5.1 CentOS    7.5.1804 (Core) NRPE      3.2.1

= Paths =

Nagios Server
Path for config files: ls /etc/nagios3/ nagios.cfg   commands.cfg

Path for Devices config files: ls /etc/nagios3/conf.d/ client01.cfg  hostgroups.cfg   services.cfg

Path for Monitor Plugins ls /usr/lib/nagios/plugins/ check_procs  check_http    check_load   check_users

Monitored Client
NRPE Config file: ls /etc/nagios/ nrpe.cfg

Nagios Plugins: /usr/lib64/nagios/plugins/ check_procs  check_disk   check_load  check_users  check_nrpe

= Installation = Update System: sudo apt update -y sudo apt upgrade -y

Install Dependencies: sudo apt install php php-cgi libapache2-mod-php php-common php-pear php-mbstring apache2

Install Nagios3: sudo apt install nagios3 nagios-plugins-basic nagios-nrpe-plugin

Edit Config: sudo nano /etc/nagios3/nagios.cfg check_external_commands=1

= Adding a Host =

sudo nano /etc/nagios3/conf.d/aman-client1.cfg

define host { use        generic-host        ; Inherit default values from a template host_name  PROD_aman-client1   ; The name we're giving to this host alias      XYZ_aman-client1    ; A longer name associated with the host address    10.10.30.81         ; IP address of the host #hostgroups allhosts           ; Host groups this host is associated with } sudo service nagios3 restart

= Hostgroup =

= Monitoring python process =

Checking output using cli /usr/lib/nagios/plugins/check_procs -c 1: -C python3 -a watchdog.py

Add a Custom Command for monitoring local Python Script: sudo nano /etc/nagios3/commands.cfg


 * 1) Check_Python
 * 1) Check_Python

define command{ command_name check_python command_line /usr/lib/nagios/plugins/check_procs -c 1: -C '$ARG1$' -a '$ARG2$' }

Define a Service for monitoring local Python Script: sudo nano /etc/nagios3/conf.d/aman-client1.cfg
 * 1) Check Watchdog Script

define service { use                generic-service     ; Inherit default values from a template host_name          localhost service_description Watchdog Script check_command      check_python!python3!watchdog.py }

= Monitor HTTP Site =

Checking output using cli /usr/lib/nagios/plugins/check_http -H localhost -u /aviwiki/index.php/Main_Page

Adding a Service for the above monitor sudo nano /etc/nagios3/conf.d/aman-client1.cfg


 * 1) Check Mediawiki Site

define service { use                generic-service     ; Inherit default values from a template host_name          localhost service_description MediaWiki Server check_command      check_http!-H localhost!-u /aviwiki/index.php/Main_Page }

= NRPE =

Installation on CentOS Client
Installation on Client: yum install nrpe nagios-plugins yum install nagios-plugins-users nagios-plugins-load nagios-plugins-swap nagios-plugins-disk nagios-plugins-procs

Check Config File: egrep -v '^#|^$' /etc/nagios/nrpe.cfg

Edit Config File: sudo nano nrpe.cfg

dont_blame_nrpe=1                                     # Allow arguments allowed_hosts=127.0.0.1,         # Permit nagios server to connect to this client

sudo systemctl restart nrpe

Verify Connection to NRPE from Nagios Server /usr/lib/nagios/plugins/check_nrpe -H 192.168.1.11 NRPE v2.15

On client to be monitored
Test the monitor command: /usr/lib64/nagios/plugins/check_procs -c 1: -C 'python3.6' -a 'watchdog.py' -p

Add the custom command: sudo nano /etc/nagios/nrpe.cfg command[check_watchdog]=/usr/lib64/nagios/plugins/check_procs -c 1: -C 'python3.6' -a 'watchdog.py' sudo systemctl restart nrpe

On Nagios Server
First test the above custom command: /usr/lib/nagios/plugins/check_nrpe -H 10.10.30.81 -c check_watchdog

Add a Custom Monitor Command: sudo nano /etc/nagios3/commands.cfg


 * 1) NRPE CHECK COMMAND
 * 2) Command to use NRPE to check remote host systems
 * 1) Command to use NRPE to check remote host systems
 * 1) Command to use NRPE to check remote host systems

define command{ command_name check_nrpe_args command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }

Create a Service for the host: sudo nano /etc/nagios3/conf.d/host01.cfg


 * 1) Check Watchdog Script

define service { use                generic-service     ; Inherit default values from a template host_name          PROD_aman-client1 service_description Watchdog Script check_command      check_nrpe_args!check_watchdog


 * References