Installing NRPE in OpenWRT
With at least OpenWRT 15.05, the NRPE package appears to be unmaintained. We could should build the package manually, but before we do this, let's install an older version from our backups. For example:
$ ( cd ../backup/router/ && find . -name "*nrpe*" -o -name "check_*" | xargs tar -cf - ) | \ ssh router "tar -C / -xvf -"This should restore the NRPE binary, its configuration files and init scripts and all the
check_*
monitoring plugins. Did I mention that backups are important? :-)With that, we're almost there:
$ ldd /usr/sbin/nrpe libssl.so.1.0.0 => not found libcrypto.so.1.0.0 => not found libwrap.so.0 => not found libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77a64000) libc.so.0 => /lib/libc.so.0 (0x779f7000) ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x77a88000)Let's install the dependencies:
opkg install libopenssl libwrapAdd the
nagios
user:
echo 'nagios:x:50:' >> /etc/group echo 'nagios:x:50:50:nagios:/var/run/nagios:/bin/false' >> /etc/passwd echo 'nagios::16874:0:99999:7:::' >> /etc/shadowConfigure
nrpe
:
$ grep ^[a-z] /etc/nrpe.cfg pid_file=/var/run/nrpe.pid server_port=5666 server_address=192.168.0.1 nrpe_user=nagios nrpe_group=nagios allowed_hosts=192.168.0.10,192.168.0.11 dont_blame_nrpe=0 debug=0 command_timeout=60 connection_timeout=300 command[check_dummy]=/usr/libexec/nagios/check_dummy 0 command[check_dns]=/usr/libexec/nagios/check_dns -H test.example.net -s localhost -w 0.1 -c 0.5 command[check_entropy]=/root/bin/check_entropy.sh -w 1024 -c 512 command[check_http]=/usr/libexec/nagios/check_http -H localhost -w 0.1 -c 0.5 command[check_load]=/usr/libexec/nagios/check_load -w 4,3,2 -c 5,4,3 command[check_ntp_time]=/usr/libexec/nagios/check_ntp_time -H 0.openwrt.pool.ntp.org -w 0.5 -c 1.0 command[check_ssh]=/usr/libexec/nagios/check_ssh -4 router command[check_softwareupdate_opkg]=/root/bin/check_softwareupdate.sh opkg command[check_users]=/usr/libexec/nagios/check_users -w 3 -c 5Let's try to start it, and enable it if it works:
$ /etc/init.d/nrpe start $ ps | grep nrp[e] 5320 nagios 2908 S /usr/sbin/nrpe -c /etc/nrpe.cfg -d $ /etc/init.d/nrpe enableAnd that's about it. Of course: since we're using an outdated
NRPE
version, we won't receive any (security) updates - so this setup should only be used in a trusted environment, i.e. not over the internet.