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
This section is under construction. |
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
################# # 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
## 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
## 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, <ip_of_nagios_server> # 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
Installation on Ubuntu Client
This section is under construction. |
Configuration
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
############################################################################### # NRPE CHECK COMMAND # # 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
## 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
{{#widget:DISQUS
|id=networkm
|uniqid=Nagios
|url=https://aman.awiki.org/wiki/Nagios
}}