First install NRPE on the Nagios server and on the client to monitor.
On the client, if you have multiple ethernet adapter specify on which the NRPE demon will LISTEN (server_address=192.168.222.152)
Enable the log in verbose mode to be able to debug, once everything is right that can be changed.
Parameters: log_facility=daemon and debug=1
On the client start the nrpe demon
/etc/rc.d/init.d/nrpe start
On the Nagios server try to contact the client:
[root@nagios objects]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.222.152 CHECK_NRPE: Error - Could not complete SSL handshake.
You have to authorize the Nagios server to contact the client. On the client in /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.222.168
Restart you nrpe demon on the client:
/etc/rc.d/init.d/nrpe restart
On the Nagios server try to contact the client:
[root@nagios objects]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.222.152 NRPE v2.15
Now it work !
Try another test:
[root@nagios objects]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.222.152 -c check_load OK - load average: 1.30, 1.35, 1.44|load1=1.300;15.000;30.000;0; load5=1.350;10.000;25.000;0; load15=1.440;5.000;20.000;0; [root@nagios objects]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.222.152 -c check_total_procs PROCS OK: 62 processes | procs=62;150;200;0;
Threshold and command are defined on the client into /etc/nagios/nrpe.cfg
... command[check_users]=/opt/freeware/lib/nagios/plugins/check_users -w 5 -c 10 command[check_load]=/opt/freeware/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=/opt/freeware/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1 command[check_zombie_procs]=/opt/freeware/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/opt/freeware/lib/nagios/plugins/check_procs -w 150 -c 200
Now you can add on the Nagios server into command.cfg
# 'check_nrpe_load' command definition define command{ command_name check_nrpe_load command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_load }
# 'check_nrpe_procs' command definition define command{ command_name check_nrpe_procs command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_total_procs }
And in services.cfg
define service{ use aix-service hostgroup_name aix service_description CPU Load check_command check_nrpe_load } define service{ use aix-service hostgroup_name aix service_description Total Processes check_command check_nrpe_procs }
# nagios -v /etc/nagios/nagios.cfg # /etc/rc.d/init.d/nagios reload
On AIX binary files or RPM start NRPE as root
To change it, recompile nrpe.c
Get latest source from github, and modify using the followin paragraph, starting line 2587 on version 4.1.0
#endif /* Last Modified: 2022-07-18 line 2587 */ if (full_drop) { /*setuid(uid) doesn’t work on aix but doesn’t return -1 either*/ if (setuid(uid) == -1) logit(LOG_ERR, "Warning: Could not set UID=%d", (int)uid); /*setuid(uid) returned anything but -1*/ else /*if the current uid still isn’t geteuid() setuid failed and thus we SETEUID(uid)*/ if (uid != geteuid()) if (SETEUID(uid) == -1) logit(LOG_ERR, "Warning: Could not set effective UID=%d", (int)uid); } else if (SETEUID(uid) == -1) logit(LOG_ERR, "Warning: Could not set effective UID=%d", (int)uid); }