Nagios: check Piwik Update Status

Wenn man Software nicht aus den Repositories einer Distribution, sondern von Hand installiert, muss man immer im Blick haben, ob fuer die Software nicht ein Update zur Verfuegung steht

Um sich dieses fuer Piwik zu vereinfachen habe ich dafuer ein sehr simples Nagios Plugin, check_piwik.sh, geschrieben:

#!/bin/bash
 
#####
#
# Simple Skript that checks if Piwik version from given URL is up to date
# 
# Usage: ./check_piwik.php http://example.net/piwik/ MYTOKEN
#
#####
 
## check if two parameters are given
if [ "$#" -lt "2" ]; then echo -e "ERROR: You need to give two parameter, first option is URL and second option Token . Aborting." >&2 exit 1; fi
PIWIKURL="$1"
TOKEN="$2"
 
## check if needed programs are installed
type -P curl &> /dev/null || { echo "ERROR: curl is required but seems not to be installed.  Aborting." >&2 exit 1; }
type -P sed &> /dev/null || { echo "ERROR: sed is required but seems not to be installed.  Aborting." >&2 exit 1; }
 
## get latest piwik version from piwik api
LATESTVERSION=$(curl -s http://api.piwik.org/1.0/getLatestVersion/)
 
## get piwik version from given url
LOCALURL="$PIWIKURL/index.php?module=API&method=API.getPiwikVersion&format=xml&token_auth=$TOKEN"
LOCALVERSION=$(curl -s $LOCALURL | sed -n -e 's/.*<result>\(.*\)<\/result>.*/\1/p')
 
## compare both strings
if [ "$LATESTVERSION" != "$LOCALVERSION" ]; then
  echo "A new version is available: $LOCALVERSION -> $LATESTVERSION"
  exit 2
else 
  echo "Your current version $LOCALVERSION is up to date"
fi

Es erwartet zwei Parameter, eine URL zu dem Piwik das ueberprueft werden soll, und den API Token fuer diese Installation. Dementsprechend muss in der command.cfg der Check wie folgt definiert werden:

define command {
        command_name    check_piwik
        command_line    $USER1$/check_piwik.sh $ARG1$ $ARG2$
}

Der Check selbst wird dann wie folgt in die entsprechende Konfigurationsdatei eingetragen:

define service {
        use                             my-service
        host_name                       example.net
        service_description             Piwik
        check_command                   check_piwik!http://example.net/piwik!abcdefghijklmnopqrstuvwxyz123
        }

Fertig eingerichtet bekommt man dann von seinem Nagios Auskunft ueber den Updatestatus der entsprechenden Installation:

Ubuntu: Update Sun-Java inkl. Firefox Plugin

  • Auf der folgenden Seite die selbstextrahierende Datei fuer 32 oder 64bit herunterladen: Klick
  • Terminal oeffnen und los:
user@desktop:~$ sudo su
root@desktop:~$ cd /usr/lib/jvm/
root@desktop:~$ mv java-6-sun java-6-sun-old
root@desktop:~$ chmod +x jre-6u30-linux-i586.bin
root@desktop:~$ ./jre-6u30-linux-i586.bin
root@desktop:~$ rm jre-6u30-linux-i586.bin
root@desktop:~$ mv jre1.6.0_30/ java-6-sun-1.6.0.30
root@desktop:~$ ln -sf java-6-sun-1.6.0.30/ java-6-sun
root@desktop:~$ ln -s /usr/lib/jvm/java-6-sun/lib/i386/libnpjp2.so /etc/alternatives/mozilla-javaplugin.so
root@desktop:~$ ln -sf /etc/alternatives/mozilla-javaplugin.so /usr/lib/mozilla/plugins/libjavaplugin.so
  • Terminal schliessen, Firefox neustarten und dann kann man mit about:plugins sehen, dass alles so is wie es sein soll

Netgear ReadyNAS 2100 – Nagios [UPDATE]

Vor einigen Monaten hat mich Oliver Bertrand per Email kontaktiert und darauf hingewiesen, dass bei einem neueren Firmware-Release die per SNMP gelieferten Werte nun anders sein etc. Wir haben daraufhin sehr viel per Email kommuniziert und dabei herausgekommen ist eine aktualisierte Version des check_readynas Plugins (hier der Originalpost). Neben besser lesbarem Code sind vor allem weniger Berechnungen drin da die Daten bereits in °C ausgeliefert werden und die Perfdata sind integriert.

Da ich meinen Arbeitgeber in der Zwischenzeit gewechselt hatte und dadurch auch kein ReadyNAS 2100 mehr zum Testen zur Verfuegung habe hat sich alles ein bisschen hingezoegert, aber nun steht es. Getestet wurde es mit dem

  • Modell: ReadyNAS NV+ [X-RAID]
  • Firmware: RAIDiator 4.1.6 [1.00a043]

Das Plugin steht hier zum Download zur Verfuegung.