In den letzten Tagen habe ich nach längerer Pause mal wieder ausgiebig mit Nagios gespielt. Bei einer ausgiebigen Umstellung meines Netzes habe ich vor einer Weile den alten Nagios nach /dev/null verschoben, seitdem gab es Blindflug.

Soweit alles prima, allerdings bin ich an einer Stelle hängen geblieben: dem Drucker. Klar kann man einen Laserjet mit Netzwerkkarte problemlos überwachen, problematisch ist nur dass mein Drucker nur alle paar Wochen mal benutzt wird. Dazwischen ist der natürlich ausgeschaltet.

Das Problem: Wenn ich den Drucker ausschalte werden weiter alle Parameter (Tonerstand, Papiervorrat, Nachrichten…) geprüft, was natürlich nur zu Fehlern oder Nonsens führt. Besser fände ich wenn die Parameter den alten Zustand beibehalten würden, und lediglich das Gerät als ausgeschaltet gemeldet wird. Offenbar kann man das so aber nicht konfigurieren. Zumindest habe ich das nicht gefunden, für sachdienliche Hinweise wäre ich dankbar.

Ich habe vorhin mal ein wenig gescriptet, mit diesem Stück Shell geht es dann doch:

#!/bin/sh
host=$1
shift
command=$@
CACHEFILE=/tmp/check_cached.dat
if ping -c 1 $host > /dev/null; then
  # $host is online, fetch fresh data
  output=$(eval $command)
  returncode=$?
  # escape command and remove old entry from cache file
  ecommand=$(echo $command | sed -e "s_/_\/_g")
  sed -i "/^$ecommand;/d" $CACHEFILE
  # append command with fresh values to cache file
  echo "$command;$returncode;$output" >> $CACHEFILE
else
  # $host is offline, fetch data from cache file
  output="cached: $(sed -ne "s#^$command;[0-9];(.*)$#1#p" $CACHEFILE)"
  returncode=$(sed -ne "s#^$command;([0-9]).*$#1#p" $CACHEFILE)
fi
echo "$output"
exit $returncode

Ich habe das unter dem Namen check_cached.sh gespeichert. Jetzt musste ich nur noch das Kommando ändern mit dem der Drucker kontrolliert wird:

define command{
  command_name check_snmp_printer
  command_line /usr/local/nagios/plugins/check_snmp_printer '$HOSTADDRESS$' '$ARG1$' '$ARG2$' '$ARG3$'
}

Daraus mache ich folgendes:

define command{
  command_name check_snmp_printer
  command_line /usr/local/nagios/plugins/check_cached.sh '$HOSTADDRESS$' "/usr/local/nagios/plugins/check_snmp_printer '$HOSTADDRESS$' '$ARG1$' '$ARG2$' '$ARG3$'"
}

Alle Services die check_snmp_printer benutzen sind ab sofort gecached. Rein theoretisch sollte das auch mit allen anderen Checks funktionieren, ich habe das aber selbst mit diesem bis jetzt nur oberflächlich getestet, ich übernehme (natürlich) keine Verantwortung für alles was mit dem Skript oder wegen des Skriptes passiert. :-)

Fragen und Vorschläge fühlen sich hier in den Kommentaren wohl. :-)

Oh, und eine Frage kann ich im Voraus beantworten: Nein, eigentlich brauche ich kein so dickes Netzwerkmanagement in meinem Heim-Netz. Grund für die Bastelei ist Spaß an der Sache, und nachdem ich in letzter Zeit mit einem teuren kommerziellen System arbeiten muss will ich mir zu Hause einfach nochmal klar machen dass man mit der freien Lösung auch das meiste — wenn nicht alles — hinkriegt. :-D

Nachtrag: Momentan stört mich das nicht, aber wer das im großen Stil einsetzen will sollte vielleicht noch was einbauen das dafür sorgt dass auch etwas sinnvolles passiert wenn der Host offline ist, aber noch keine Daten dafür im Cache liegen…

Eigentlich hätte ich ja gerne ein echtes Chumby. Wer es nicht kennt: das ist ein niedliches — wenngleich ziemlich nutzloses — Gadget das im Prinzip nicht viel mehr macht als kleine Flash-Widgets darzustellen. Welche das sind bestimmt man selber, die Auswahl umfasst ein paar hundert. Dieses hier hat mich letztlich überzeugt. :-)

Dummerweise kostet ein Chumby — in relation zum Nutzen, der wie gesagt gegen Null geht — ziemlich viel. Wenn man sich ansieht was das für Hardware ist, und was man damit machen kann ist der Preis OK, vor allem wenn man sich ansieht wie offen das ganze technisch gestaltet ist. Nur habe ich vor ein paar Wochen mein Gadget-Budget in ein Nokia N800 investiert…

Gerade stelle ich fest dass ich darüber noch nichts geschrieben habe. Hole ich die Tage mal nach, ich bin begeistert von dem Ding.

Gestern habe ich meinen Plan, eine Applikation für das Nokia zu schreiben die sich wie ein Chumby verhält, konkret in Angriff genommen. Dazu habe ich mir noch einmal angesehen wie das virtuelle Chumby funktioniert das man sich kostenlos klicken kann, und woher das seine Channel-Informationen kriegt. Mit dem Wissen bin ich nochmal bei Tante Google vorbei, und die hat mir gezeigt dass es so eine Applikation tatsächlich schon gibt: dieser Thread beschreibt sie, hier sind die Pakete, hier noch eine benötigte Bibliothek.

Nett. Verdammt nah an dem was ich machen wollte. Mal sehen, noch schicker wäre es wenn so eine Applikation sich die Widgets nach lokal ziehen würde, damit das dann auch offline geht. Macht bei denen keinen Sinn die Live-Inhalte aus dem Netz ziehen, aber der oben genannte sabbernde Mops oder die verschiedenen Uhren würden sich ganz gut als Bildschirmschoner machen… Also doch noch Entwicklungspotential. :-)

Wenn ich irgendwann mal was basteln möchte was mehr Rechenleistung braucht als ein ATmega bietet denke ich mal über eine ARM-CPU nach. Dachte ich. Gerade habe ich einiges über den Propeller von Parallax gelesen. Darauf gekommen bin ich über die YBox2 von Lady Ada.

Der Parallax ist ein Controller mit acht unabhängigen RISC-CPU-Kernen in 32 Bit. Klingt wie geschaffen für komplexe Projekte bei denen mehrere Sachen gleichzeitig stattfinden sollen. Im genannten Projekt wird der mit 80MHz getaktet, hat also auch genug Schwung um komplexere Sachen zu machen. Und teuer scheint der auch nicht zu sein: als Einzelstück 12,50 Euro klingt fair bei den Daten. Oh, und im Gegensatz zu ARMen gibt es den auch im ‚Lötbaren‘ Gehäuse, also in nicht-SMD-Form.

Doof ist nur, dass ein C-Compiler nur gegen Geld zu kriegen ist, während es eine Entwicklungsumgebung für eine proprietäre Sprache (Spin) kostenlos gibt.

Vorbereitung: apt-get install filters

Dann für einen Überblick:

for i in b1ff chef cockney eleet fudd kenny kraut pirate spammer upside-down; do echo $i; echo "Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy lies a small unregarded yellow sun." | $i; echo; done

b1ff
FAR OUT 1N THE UNCHARTED BACKW8RZ UV THE UNFASHIONABLE END UV THE WESTURN SP1RAL ARM UV THE GALAXY LEIZ A SMAL UNREGARDED YELOW SUN.

chef
Fer oooot in zee uncherted beckveters ooff zee unffesheeuneble-a ind ooff zee vestern speerel erm ooff zee Gelexy leees a smell unregerded yelloo soon.
Bork Bork Bork!

cockney
Far out in the bloody uncharted backwaters of the unfashionable end of the flinkin‘ western spiral arm of the Galaxy lies a small unregarded yellow sun.

eleet
f4r 0ut 1n th3 unch4rt3d b4ckw4t3r5 0f th3 unf45h10n4bl3 3nd 0f th3 w35t3rn 5p1r4l 4rm 0f th3 g4l4xy l135 4 5m4ll unr3g4rd3d y3ll0w 5un.

fudd
Faw out in de unchawted backwatews of de unfashionabwe end of de westewn spiwaw awm of de Gawaxy wies a smaww unwegawded yewwow sun, uh-hah-hah-hah.

kenny
Mpfmmmpff ppffmffmp mffppp fmpmfpmpp fmfpppmmfmfpmmmpfffmpmppmpm mmpmmmmmfpmpfppmmmfmpmpppfffmm ppfmpf fmpmfpmpp fmfpppmpfmmmfmmmfpmffppfpppmmmmmppmfmpp mpppppmpm ppfmpf fmpmfpmpp fppmppfmmfmpmpppffppp fmmpfmmffpffmmmpmf mmmpffppm ppfmpf fmpmfpmpp Mfmmmmpmfmmmfpfffm pmfmffmppfmm mmm fmmppmmmmpmfpmf fmfppppffmppmfmmmmpffmpmmppmpm ffmmpppmfpmfppffpp fmmfmfppp.

kraut
Far out in ze uncharted backwaters uff de unfaschionable end uff de vestern spiral arm uff de Galaxy lies a small unregarded yellow sun.

pirate
Far out in th‘ uncharted backwaters o‘ th‘ unfashionable end o‘ th‘ western spiral arm o‘ th‘ Galaxy lies a small unregarded yellow sun, by Blackbeard’s sword.

spammer
Dear Friend, Far
out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy lies a small unregarded
yellow sun.

This is a one time e-mail!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To be removed from this mailing list send an email and put in the subject the word „remove“.
8D4A20728CC8670635C16C332F1AC2F2A6BF10F91546EECE6641A5F2EAD63C76003F62F2B
6074CB9FC2FDC32EEC1B603FE5BFF77248701E2BE4AB7DA342C4AF5E1E929FB8D08915635103D

upside-down
‚uns mo77ah papje6ajun 77ews e sa!7 hxe7e6 ayf jo wje 7ej!ds ujafsam ayf jo pua a7qeuo!ysejun ayf jo sjafem>|)eq pafjey)un ayf u! fno jej

Den letzten finde ich besonders witzig, auch wenn man da im Vorteil ist wenn man keinen Röhrenmonitor mehr hat: das liest man kopfüber… :-)

Content Encoding ErrorIch hatte mich ja bei meinem Umstieg gefreut, dass die Verbindungen mit meiner neuen UMTS-/EDGE-Flat offenbar nicht über einen Zwangsproxy geleitet werden. Zumindest waren die Grafiken nicht so verstümmelt wie bei ePlus.

Jetzt bin ich doch etwas geknickt. Vor ein paar Tagen habe ich festgestellt dass ich bei Besuchen auf thinkgeek.com nur den abgebildeten Fehler bekomme: ‚Content Encoding Error‘ wegen einer ‚invalid or unsupported form of compression‘. :-(

Ich dachte erst dass vielleicht auf dem Server irgendwas kaputt ist — auch wenn die Leute Profis sind. Nachdem das jetzt ein paar Tage später immer noch nicht geht habe ich einen Fehler bei mir gesucht. Eine gute Portion Google hat mich dann auf die Idee gebracht dass das auch an der Verbindung liegen kann. Richtig genug: ein ssh -D 8080 auf einen Server im Netz und eine Umkonfiguration meines Firefox (Socks-Proxy auf localhost:8080 benutzen) später konnte ich ohne Probleme auf die Seite surfen.

Doof. Kann man das abschalten? Oder kann man die Telekom dazu bringen das zu reparieren?