Da nützt einem das beste Monitoring nichts, wenn man nicht die Möglichkeit hat, Nachrichten per Auge (Nagios-checker für Firefox) od. E-Mail zu erhalten. Da heute dem Webserver der Ram ausgegangen ist, hat der Kernel natürlich nach und nach die Prozesse in die Jagtgründe geschickt. Was macht also der geneigte Admin? Richtig, SMS muss her. Der Martin kann dafür seinen T-Mobile Account nutzen, ich als O2 User habe da verloren. Dieses komische Webgedöns hilft mir mal garnicht. Also nach kurzem abklappern diverser SMS Portale, habe ich mich für SMS77.de entschieden. Per Paypal (o.a.) eben 10€ überwiesen und gleich getestet.

Ein heiß zusammen gestricktes Shell Script:

#!/bin/bash export PATH=“/bin:/sbin:/usr/bin:/usr/sbin”

USER=“foobar” PASS=“md5hash” FROM=“Nagios” TO=“012345678” TEXT=”echo $1 | perl -pe 's/[^A-Za-z0-9]/sprintf("%%%02X", ord($&))/seg'“ DEBUG=“$2”

curl -s “http://gateway.sms77.de/?u=$USER&p=$PASS&to=$TO& text=$TEXT&type=quality&from=$FROM&debug=$DEBUG”

(Der Lesbarkeit wegen umbrochen. Die beiden Zeilen müssen aber in eine stehen, ohne Leerzeichen)

Die Perlzeile dient nur dem umkodieren von Leerzeichen etc.

Ein Aufruf kann so aussehen:

$ ./sendsms “Hier kommt der Text” 1

Die 1 am Ende schaltet nur Debug ein, damit man sieht, ob es klappt. Am Ende muss eine „100“ rauskommen. Lässt man die 1 weg, wird eine SMS produziert.

In Nagios kann das nun so aussehen:

misccommand.cfg

define command{ command_name service-notify-by-sms77 command_line $USER1$/eventhandlers/sendsms ‘$SERVICEDESC$ auf \ $HOSTNAME$ State: $SERVICESTATE$
@ $SERVICESTATE$ Info: $SERVICEOUTPUT$’ }

Ich habe mir noch zusätzlich eine Eskalation eingebaut, damit ich erst ab der 2. Nachricht per SMS informiert werde.