Bei einem OpenVPN Server besteht das Problem, das sein Zertifikat nicht aktiv von aussen ueberprueft werden kann. Um es dennoch mit Nagios zu ueberwachen muss die .crt Datei auf dem Server direkt ueberprueft und die Informationen zum Nagios Server gepusht werden.
Ich habe das mit dem Shellskript ssl-cert-check (mirror v. 3.27) von prefetch.net geloest.
Das Skript habe ich unter /usr/local/bin/ abgelegt:
cd /usr/local/bin wget http://prefetch.net/code/ssl-cert-check |
Dann gibt es ein Mini-Skript unter /root/skripte/nagios/check_openvpncert.sh, dass das ssl-cert-check Skript aufruft, und die Rueckgabe per NSCA an den Nagios Server pusht:
#!/bin/bash send_nsca=/usr/sbin/send_nsca send_nsca_cfg=/etc/send_nsca.cfg nagioshost=nagios.example.org host=$1 service=$2 plugin=/usr/local/bin/ssl-cert-check output=$($plugin -n -x 30 -c /etc/ssl/certs/openvpn.example.org.crt) rc=$? echo -e "$hostt$servicet$rct$output" | $send_nsca -H $nagioshost -to 30 -c $send_nsca_cfg exit 0 |
Das Mini-Skript selbst wird regelmaessig mit cron aus der /etc/cron.d/nagios-passive aufgerufen:
LANG=C # # Regular cron jobs for nagios passive checks # HOST=openvpn.example.org */20 * * * * root /root/skripte/nagios/check_openvpncert.sh ${HOST} SSL-Cert_OpenVPN 1>> /dev/null 2>> /dev/null |
Und nach der Einbindung als passive Check in Nagios wird auch das Ablaufdatum eines lokalen Zertifikats ueberprueft: