HowTo: Zertifikatsdatei .crt direkt mit Nagios ueberwachen

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:

nagiosovpncert

Nagios/Icinga plugin to check Joomla Update status (passive check)

Wenn man Software von Hand und nicht aus den Repositories installiert, muss man sich auch von Hand um die Updates kuemmern. Da ich kein Plugin gefunden habe, dass mir den Joomla Update Status ueberprueft und in Nagios anzeigt, habe ich fix eines selber geschrieben. Es muss als passive Check aufgerufen werden, da es mit einer lokalen Datei auf dem Server ueberprueft, welche Version installiert ist. Das Plugin hat bei den Updates auf 2.5.7 und 2.5.8 verlaesslich angezeigt das ein Update existiert. Extensions sind nicht mit inbegriffen!

<?php
 
/***
 * Simple and dirty php script to check if the local joomla version
 * is up to date. This script only works on the server, were Joomla
 * is installed. If Nagios is not running on the same server, you 
 * possibly need to run it via NSCA or similar systems.
 *
 * @version: 0.1
 *
 * @author: jan.toenjes@intranda.com
 *
 * @changelog: initial version
 *
 ***/
 
 
/***
 * CONFIGURATION
 *
 * localVersionFile: set the full path to the version.php file from your Joomla installation
 * remoteVersionUrl: set the link to the list.xml file from the Joomla core update server
 ***/
$localVersionFile = "/var/www/joomla/libraries/cms/version/version.php";
$remoteVersionUrl = "http://update.joomla.org/core/list.xml";
 
 
// get local Joomla Version
define('_JEXEC', 1);
require "$localVersionFile";
$jversion = new JVersion;
$localJoomlaVersion = $jversion->getShortVersion();
 
 
// get remote Joomla Version
$xml = simplexml_load_file($remoteVersionUrl);
$remoteJoomlaVersion = $xml->extension['version'];
 
 
// compare and return info
if ($localJoomlaVersion < $remoteJoomlaVersion) {
        echo "A new version is available: $remoteJoomlaVersion";
        exit (2);
}
else {
        echo "Your current Version $localJoomlaVersion is up to date";
}
 
?>