A quickie post for setting up “nrpe” on a D-Link DNS-320 to allow monitoring from Nagios!
Assumes a working install of funplug and optware already exists 🙂
root@DNS320:# slacker -a nano
root@DNS320:# ipkg install nrpe
root@DNS320:# ipkg install nagios-plugins
root@DNS320:# killall syslogd
root@DNS320:# nano -w /etc/syslogd.conf
(uncomment daemon line, this allows nrpe to log via syslogd)
root@DNS320:# /usr/sbin/syslogd -r -m 0 –rt_line 800
root@DNS320:# touch /var/log/daemon.log
root@DNS320:# useradd –system –shell /bin/false –no-create-home nagios
root@DNS320:# nano -w /opt/etc/nrpe.cfg
(change nrpe_user and nrpe_group to nagios, update allowed_hosts appropriately)
root@DNS320:# cp /opt/etc/init.d/S99nrpe /root
(creates backup of init script)
root@DNS320:# nano -w /opt/etc/init.d/S99nrpe
…..edit S99nrpe to:
#!/bin/shif [ -n "`pidof nrpe`" ] ; then killall nrpe 2>/dev/null fi sleep 2 /opt/sbin/nrpe -c /opt/etc/nrpe.cfg -d
root@DNS320:# /opt/etc/init.d/S99nrpe
root@DNS320:# ps aux |grep nrpe
(nrpe should now be running)
root@DNS320:# tail /var/log/daemon.log
(check log for any error messages)
Unfortunately nagios-plugins in ipkg doesn’t contain check_procs, so:
root@DNS320:# nano -w /opt/libexec/check_procs
…..edit check_procs to:
#!/usr/bin/perl -w use strict; my $process = $ARGV[0]; my $processcount = 0; open STDERR, '>/dev/null'; open(PS, "/bin/ps aux |") or die "Can't run ps: __FILE__ $!"; while (my $line = <PS>) { if($line =~ /$process/ and $line !~ /check_proc/) { $processcount++; } } close(PS); close STDERR; my $return = 0; if ($processcount == 0) { print "Process $process is NOT running!\n"; $return = 2; } else { print "Process $process occurred $processcount times!\n"; } exit $return;
D-Link DNS-320 can now be monitored from Nagios!
Thanks for reading,
Martyn Wendon