check_netappfiler.py - Nagios-Plugin for FAS systems by NetApp

Some people asked me at NETWAYS Nagios Konferenz if my check_netappfiler plugin is dead.

No, it's not!

With ONTAP 7.3 NetApp added support for SNMP v2c and v3! W00t!

Get the plugin (and some minimal documenation - you have been warned! ;) on http://people.teamix.net/~svelt/check_netappfiler/!

And PLEASE send me feedback (yes, "it's wonderful!" IS feedback ;) if you're using it!

Wie man an ein Au-pair-Mädchen kommt...

Man nehme:

  • Ein Hochzeits"geschenk" oder -verpflichtung, wie man will ;)
  • Zwei Frauen, die telefonieren - eine kann leider nicht am "Geschenk" teilnehmen
  • Etwas Zeit, damit sich Ideen entwickeln können

Was kommt raus?

  • Die Wohnungsplanung muss komplett über den Haufen geworfen werden
  • Die Familienplanung ebenso
  • Ein Au-Pair, welches gerne nächstes Jahr anfangen würde
  • Zwei lachende Personen auf einem Sofa in Schwabach
  • ... und eine (ganz süße ;) Lachende leider viel zu weit weg

Du weißt nicht, wovon ich rede? Na, ich werde es beim Essen erzählen! "Welches Essen?" - Tja, leider verloren ;)

Rsync mit restricted SSH-Keys

Rsync wird ja gerne im Zusammenspiel mit SSH verwendet, um Daten zu syncen bzw. Backups zu machen. Mehr als nur "häufig" habe ich dabei bisher gesehen, dass dies mit SSH-Keys ohne Passphrase eingerichtet wurde. Soweit nichts schlimmes dabei. Wenn dann allerdings die SSH-Verbindung auf "root" geht und der Key nicht in seiner Funktionalität eingeschränkt wird, wird's unschön. Deswegen hier eine kleine (undokumentierte) Step-by-Step-Anleitung zum Einrichten von Rsync-über-SSH mit kastriertem Key.


0. Ausschalten des SSH-Agents

MASTER:

svelt@MASTER:~ % unset SSH_AGENT_PID
svelt@MASTER:~ % unset SSH_AUTH_SOCK

1. Erzeugen des neuen Keys

MASTER:

svelt@MASTER:~ % ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/svelt/.ssh/id_rsa): /home/svelt/.ssh/rsync_rsa
Enter passphrase (empty for no passphrase): **ENTER**
Enter same passphrase again: **ENTER**
Your identification has been saved in /home/svelt/.ssh/rsync_rsa.
Your public key has been saved in /home/svelt/.ssh/rsync_rsa.pub.
The key fingerprint is:
49:25:af:f7:16:a4:eb:b7:5b:66:07:37:7c:85:0c:84 svelt@MASTER

2. Kopieren des Keys auf den Server

MASTER:

svelt@MASTER:~ % ssh-copy-id -i .ssh/rsync_rsa svelt@BACKUP.DOMAIN.de
0
Password: **PASSWORT**
Now try logging into the machine, with "ssh 'svelt@BACKUP.DOMAIN.de'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

3. Initialer rsync mit dem Key

MASTER:

svelt@MASTER:~ % rsync -avv -e 'ssh -i /home/svelt/.ssh/rsync_rsa' Doku svelt@BACKUP.DOMAIN.de:tmp/
opening connection using ssh -i /home/svelt/.ssh/rsync_rsa -l svelt BACKUP.DOMAIN.de rsync --server -vvlogDtpr . tmp/ 
building file list ... 
16 files to consider
delta-transmission enabled
Doku/
[...]
total: matches=0  hash_hits=0  false_alarms=0 data=1977241

sent 1978440 bytes  received 324 bytes  1319176.00 bytes/sec
total size is 1977241  speedup is 1.00

4. Setzen des "command" in der authorized_keys

BACKUP:

svelt@BACKUP:~ % cat .ssh/authorized_keys
ssh-rsa AAAA...T7XQ== svelt@MASTER

svelt@BACKUP:~ % vi .ssh/authorized_keys

4a. Aus obigem rsync-Aufruf ableiten

Vorher:   % rsync -avv  -e 'ssh -i /home/svelt/.ssh/rsync_rsa' Doku svelt@BACKUP.DOMAIN.de:tmp/
Nachher:  % rsync -a    -e 'ssh -i /home/svelt/.ssh/rsync_rsa' Doku svelt@BACKUP.DOMAIN.de:tmp/

4b. Genau wissen wollen
BACKUP:

svelt@BACKUP:~ % cat .ssh/authorized_keys
command="set | grep SSH >/tmp/XXX" ssh-rsa AAAA...T7XQ== svelt@MASTER

MASTER:

svelt@MASTER:~ % rsync -a --delete -e 'ssh -i /home/svelt/.ssh/rsync_rsa' Doku svelt@BACKUP.DOMAIN.de:tmp/
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(453) [sender=2.6.9]

BACKUP:

svelt@BACKUP:~ % cat /tmp/XXX 
BASH_EXECUTION_STRING='set | grep SSH >/tmp/XXX'
SSH_CLIENT='194.150.191.251 35877 22'
SSH_CONNECTION='194.150.191.251 35877 194.150.191.2 22'
SSH_ORIGINAL_COMMAND='rsync --server -logDtpr --delete . tmp/'

=> siehe SSH_ORIGINAL_COMMAND

5. authorized_keys setzen

BACKUP:

svelt@BACKUP:~ % cat .ssh/authorized_keys 
command="rsync --server -logDtpr --delete . tmp/" ssh-rsa AAAA...T7XQ== svelt@MASTER

6. Testen

MASTER:

svelt@MASTER:~ % rsync -a --delete -e 'ssh -i /home/svelt/.ssh/rsync_rsa' Doku svelt@BACKUP.DOMAIN.de:tmp/
svelt@MASTER:~ % echo $?
0

MASTER:

svelt@MASTER:~ % touch Doku/FIXME
svelt@MASTER:~ % rsync -avv --delete -e 'ssh -i /home/svelt/.ssh/rsync_rsa' Doku svelt@BACKUP.DOMAIN.de:tmp/
opening connection using ssh -i /home/svelt/.ssh/rsync_rsa -l svelt BACKUP.DOMAIN.de rsync --server -vvlogDtpr --delete . tmp/ 
building file list ... 
done
Doku/
Doku/FIXME
total: matches=0  hash_hits=0  false_alarms=0 data=0

sent 439 bytes  received 48 bytes  324.67 bytes/sec
total size is 1977241  speedup is 4060.04

Again and Again: Fixing SuSE 10.3

Die QA bei SuSE hat mal wieder versagt - und ich wundere mich, warum ich Courier-IMAP mit SSL (und den POP3-SSL) nicht ans laufen bekomme.

Könnte man Scripten, die man einbindet (automatisches Erzeugen von Zertifikaten, wenn noch keines existiert) nicht einfach mal testen? Angefangen von den Pfaden zu openssl, über den Pfade zu den PEM-Files kann da eigentlich gar nix klappen.

Anbei ein kleines Shell-Snippet, welches per sed die entscheidenden Stellen wieder geradezieht.

16:9 not ready for the audience...

In Zeiten der EM ist es ja Mode, dass jede öffentlich zugängliche Spaßeinrichtung (Kneipe, Restaurant, ...) einen Flat-Screen an der Wand hat. Dieses ist normalerweise in 16:9 gehalten, was ja auch mehr Spaß bereiten kann.

Allerdings kommt in mir langsam die Frage auf, ob

  1. die Technik noch nicht so weit ist, oder
  2. die Anwender noch nicht so weit sind

Wieso? Weil praktisch überall ein Bild gezeigt wird, welches oben und unten schwarze Balken hat (so wie man es von 16:9-Filmen auf einem 4:3-TV gewohnt ist), aber dann in die Breite gezogen ist. Ergebnis: Die Fußballer sehen aus, wie kleine Playmobil-Männchen: Einen Meter fuffzich hoch, einen Meter breit. *brr* Bin ich der eigentlich der Einzige, dem das auffällt? Ich würde mich ziemlich aufregen: Ein TV der Größe kostet ja auch ein bisschen was und dann werden gefühlte 25% des Schirms nicht genutzt.

Technisch gibt's eigentlich nur zwei Erklärungen dafür:

  1. Die TV-Hersteller haben immer noch nicht gelernt, wie man 16:9 sauber darstellt bzw. umschaltet
  2. Die Einstellung, welche man tätigen muss, ist zu kompliziert

Beides ist eigentlich mehr als affig und sollte heutzutage von einem Flat-Screen mit knapp einem Meter Diagonale "einfach funktionieren".

(M)Eine Konfigurationsdateien für Mutt

Ich wurde ja schon häufiger darauf angesprochen, wie ich denn eigentlich meine Mails lese bzw. wie ich mutt konfiguriert habe.

Mongolisches Barbecue, Chinesisch und bisschen Sushi in Schwabach

Ich hab mal wieder einen kleinen Tip, wo man gut Essen gehen kann:

Zum Goldenen Drachen

Friedls Schnitzel...

Weil ich schon mehrfach gefragt wurde:

  • Der Bericht über das Weltrekord-Schnitzel
  • Die Adresse:
    3 Linden
    Bahnhofstr. 13
    90537 Feucht
    Tel.: 09128 - 15959

SambaXP 2008 Conference - Day 1

  • Schlomo Schapiro - The Simple High Available Linux File Server
    • Real hardware as primary server, "virtual cold stand-by server"
    • Local storage and SAN
    • GPT for Partitions bigger than 2TB
    • Nice implementation of cold stand-by cluser
  • Oliver Tennert - Parallel NFS
    • HPC: More and more data
    • More nodes, more nodes, more throuput
    • Not a good solution: Cluster NFS
    • Distributed File Systems: IBM's GPFS, SGI's CXFS, PanFS, PVFS2, ...
    • NFSv4 includes everything a network file system needs (NFSv3 does NOT)
    • pNFS optional part of NFS 4.1
    • Separtion of metadata path/server and data path/server
    • SAP (Storage Access Protocoll) not specified, incompatible clients get data from metadata server
    • Current state: "should work", many layouts on the way
  • Steve French: From DFS to Kerberos: Update on Linux CIFS client
    • Kerberos support on way into the kernel
    • Apple symlinks over CIFS are the 4th way to do it
    • Setting up all stuff needed and/or supported by NFSv4 is a pain in ...
  • Jelmer Vernooij, Andrew Bartlett: Samba 4, where are we now?
    • Samba 4 Alpha 3 released 2 weeks ago, announcement mail gets eaten...
    • More than TechPreview, basic features completed, useable for SOME environments, needs more testers
    • No more EJS, Python rulZ! ;-) And GNU Make
    • Much work done in LDB subsystem/internal database: Subtree rename, sort of grouo policy, (some) schema validation
    • Autoconfiguration of backend (OpenLDAP)
    • SWAT disabled due to JS->Python, SoC project
    • MMC works and some group policy
    • Beta at end of THIS year! AD DC, file search, AD Member
    • What would stop YOU using Samba 4?
  • Andrew Bartlett: The little shop of horrors: AD's notation of LDAP
    • AD "based on" LDAP, an IETF standard protocol to access a standard X.509 directory
    • AD's schema is different: AD CN is not LDAP CN (multi values), AD top hast 75 new elements, ...
    • No DNS and NTP in Samba 4 but ideas how it could/should work
  • Volker Lendecke: Samba 3.2 Infrastructure changes
    • Un-/Marshalling code moved to PIDL
    • One overall cache for nearly everything
    • 3.2 is slower than 3.0 (much more malloc())
    • Solution: remove malloc() calls, use talloc_*() instead
  • Jelmer Vernooij: RPC scripting using Python
    • Samba 3.0 had already Python bindings
    • Switch now to stop people from coding EJS (may be removed later)
    • More potential developer with Python
    • PIDL generates Python bindings
    • Python/SoC: smbclient, SWAT, Samba-GTK
    • At the moment use "smbpython"
    • python-ldb/python-tdb already in Debian/Ubuntu
    • Jelmer: "Next version of Perl has unicode operators..."
    • Tridge: "I have a purpose in life! Telling people how to resize fonts in xterms!"

SambaXP 2008 Conference - Day 0

OK, here I am at Göttingen. Just waiting for the first talks.

I'll try to report continuously so check back later.

  • Welcome notes and Key note

    • John Terpstra talking about Samba history: "We become fat, dump ... and happy. It's a little bit like life, isnt it?"
    • John Terpstra: "When will Samba 4 be released, Andrew?" - Andrew Bartlet: "End of the year!" - Masses: "Which year?"
    • Volker Lendecke asked Dirk Hohndel "Please plug in the beamer cable!" - "No, turn off the beamer! I have no slides! This here (pointing to his laptop) is only for monitoring the stock exchange when market opens..."
    • Dirk Hohndel: "80% of open source projects have 1-3 developers... and 1-3 users..."
    • Dirk Hohndel about licenses: "What are 10 lawyers at bottom of sea?... Yes, you're right: a good start!"
  • Tridge - Samba and the PFIF
    Title changed to "Samba and Microsoft"

    • Good cooperation with M$ in 1990's, bad/less cooperation starting in about 1999
    • M$ does more than they have to (releases documentation publicly! Open cooperation)
    • PFIF (Protocol Freedom Information Foundation) makes documentation (incl. updates for at least 5 years) availably under NDA - but GPL compatible
    • "5 years is a long time. Maybe Google bought M$ by this time... who knows?"
    • M$ has to cope with Samba bugs - in appliances and embedded devices
    • Now: technical cooperation, lawyers are now sidelined. Both sides participating in numberous events
    • Skill set required which is needed to develop Samba has changed. Documentation of the protocoll is available now!
    • ... but it takes at big bunch of time to implement all the information
  • Wolfgang Grieskamp (M$) - Model-Based Quality Assurance of the SMB2 Protocol Document
    I saw some of the slides before the talk... OMG! What will happen to the people in here? This will be a REAL Power Point Picture Show :o(
    Yes, the slides are a kind of... "marketing" but the information he gives seem to be really good!

    • 250 protocols, about 30k pages of documentation
    • Writing documentation, vendor developing model and test suite (no internal knowledge). Usability of documentation proven.
    • SMB2: 300 pages documentation, 3000 requirements for the test suite
    • No deadlines! There's something to fix? Fix it! Don't release!

    Looks like M$ is interessted in producing high quality documentation for their protocols!

  • Julien Kerihuel - When OpenChange assimilates the Borg

    • OpenChange: OSS implementation of the Exchange server and protocols. Interoperability and documentation. Build upon Samba4 infrastructure
    • libmapi as client side library ("Outlook replacement")
    • OpenChange server implements MAPI/NSPI providers but no message storage yet
    • As a client nearly everthing (most common) works with Exchange 2007(?)
    • Main focus on providing libraries, helping other projects with libmapi (Evolution-Plugin, KDE4)
    • No Thunderbird (at the moment!), Google SoC: fetchmail, Akondai
    • Libmapi API fully documented! And more documentation!
    • Libmapiadmin for administrating user on Exchange server
    • MOCABOX as application box, integration with other OSS
    • Now: more time to code on OpenChange server

Who watches the watchman - err... Nagios? Part II

As many people only read my RSS content feed (but not the comment feed) I decieded to repeat this script here as new content ;-)

The previous solution has some drawbacks (only one check, so sometimes you get false negatives). So here we go:

#!/bin/sh

CMD="/usr/lib/nagios/plugins/check_nagios -F /var/cache/nagios3/status.dat -e 1 -C nagios3"
EMAIL=foobar@...spambox.com

OUTCHECK=`$CMD`

if [ $? -ne 0 ]
then
        sleep 300
        OUTCHECK=`$CMD`
        if [ $? -ne 0 ]
        then
                OUTPROC=`ps ax | grep "/usr/sbin/nagios3" | grep -v grep`
                if [ $? -eq 0 ]
                then
                        (
                          echo -e "Output of check_nagios_check:\n| $OUTCHECK\n\n"
                          echo -e "Output of ps:\n| $OUTPROC"
                        ) | /usr/bin/mail -s "[NAGIOS] Log file stale, but process found" $EMAIL
                else
                        (
                          echo -e "Output of check_nagios_check:\n| $OUTCHECK\n\n"
                          echo "NO output of ps, Nagios process is NOT running"
                        ) | /usr/bin/mail -s "[NAGIOS] Log file stale, NO process found" $EMAIL
                fi
        fi
fi

exit 0

Same script (hope so...) in german/Script mit deutschen Ausgaben

Kommentare - in Python, Perl und Ruby

Durch einen Artikel im aktuellen Linux-Magazin (04/2008) bin ich auf das Portal Ohloh aufmerksam geworden. Das schöne an diesem Portal ist, dass sie die eingestellten Software-Projekte analysieren. Je Sprache kann man sich diverse Statistiken ansehen. Besonders lachen musste ich über die Anzahl der Kommentare in den 3 angesprochenen Sprachen:

Fangen wir mal mit meiner Interpretation bei PERL an:

Der Code ist klein (durch die schon angesprochenen Sonderzeichen...), dafür muss der Code einigermaßen ausführlich kommentiert werden, damit selbst der Programmierer nach 14 Tagen noch weiss, was er denn da angestellt hat.

Bei Python wird die Kommentierung am Anfang der Methode/Funktion vorgenommen, was das Ding gesamt macht. Eine Kommentierung des Codes ist nur an besonderen Stellen notwendig, da der Code für sich selbst spricht, man kann ihn sofort sinnentnehmend lesen. (Oder wie man es auch ausdrücken könnte: "Du musst Deinen Code kommentieren, damit jemand anders weiß, was Du da tust? Dann verwende die Zeit besser darauf, Deinen Code ordentlich zu schreiben!")

Die Interpretation für Ruby spare ich mir hier mal, sonst gibbet noch mehr Haue ;-)

Weitere Zahlen: C/C++: 20,0%, PHP: 27,9% - passt auch irgendwie ;->

Chemnitzer Linux Tage

Und wieder einmal sind sie vorbei: Die Chemnitzer Linux Tage 2008. Wenn auch weniger Besucher als im letzten Jahr dürfen sich die Veranstalter wieder über ein gelungenes Wochenende freuen! Hier mal ein kurzer Rückblick auf besuchte Vorträge:

  • Rene Schickbauer / Embedded Scripting - Flexiblere Software mit eingebautem LUA-Scripting
    Ein grober Überblick, was LUA eigentlich ist. Leider ging's nicht so tief rein bzw. wurde an den interessanten Stellen nicht weitergemacht, was mir persönlich nicht viel gebracht hat.
  • Stefan Kluge / Open Content: Chancen fuer Low Budget-Filmproduktionen
    Inhalt ist das Eine, die Vortragsart was anderes: Das Theme war eigentlich interessant, leider hatte der Vortragende eine recht einschläfernde Stimme, sodass ich mich nicht wirklich auf seine Ausführungen konzentriert habe.
  • Dr. Volker Jaenisch / Wie schnell ist schnell? Performance-Analyse unter Linux
    Wahrscheinlich der beste Vortrag am ganzen Wochenende. Spontan fiel mir zu diesem Votrag wieder ein: "Wer misst, misst Mist!". Gute Ideen und ein paar gute Tipps für Tools mitgenommen. Wenn evaluiert, werde ich hier darüber berichten.
  • Alexander Schreiber / Ganeti - OpenSource Xen Cluster
    Nett zu sehen, was Google sich so über Xen (oder jede andere Virtualisierungslösung) so drübergestrickt hat - mehr aber auch nicht.
  • Reiner Rottmann / Virtualisierung auf drei Ebenen mit dem Diskless Shared Root Cluster
    Leider hab ich zu spät gesehen, woher der Referent kommt - die Firma ist, nicht nur bei mir, durch ihre Marketing-Vorträge bekannt :-(
  • Peer Heinlein / Spam mal anders: Wie arbeiten eigentlich Spammer, wie verdienen sie und wer sind sie?
    Der lustigste Vortrag am Wochenende. Als Untertitel hätte man auch "Wie kannst Du ab morgen Geld verdienen? NOT!!1!" nehmen können
  • Peer Heinlein / Drei IMAP-Server im Vergleich: Courier, Cyrus & Dovecot
    Kurzes Fazit: Nimm Dovecot, wenn Du neu einsteigst - schau ihn Dir genau an, wenn Du Courier hast.
  • Martin Schütte / CRM114 als SpamAssassin-Plugin
    Die Vorstellung von CRM114 war gut, leider erschließt sich mir bis heute nicht mehr, warum ich SA noch brauchen sollte.
  • David Kastrup / Das verteilte Versionskontrollsystem git im Gebrauch
    Leider war David etwas durch den Wind, ich hab schon wesentlich bessere Vorträge von ihm gesehen. Vom Inhalt her interessant für Neulinge und auch ich hab einige interessante Punkte mitgenommen.
  • André Przywara, Andreas Herrmann / Mythen und Fakten über 64bit Linux
    Leider nix wirklich Neues, könnte aber auch daran liegen, dass die beiden von AMD selber kamen und das wirklich Negative schlicht und einfach verheimlichen ;)
  • Sven Guckes / Zsh - Schneller auf der Kommandozeile
    Wunderbar! Der Vortrag mit den mit Abstand am meisten Mitschriften auf meiner Seite! Und wieder einige Anstuppser mitgenommen, dafür gehe ich auf solche Events. Top!

Bei Golem gibt's auch noch einen netten Abriss über das Wochenende in Chemnitz

Vim Syntax-Highlighting für Nagios

Zwar nicht ganz auf dem aktuellen Stand, aber trotzdem durchaus ganz hilfreich:


http://dev.gentoo.org/~ramereth/vim/syntax/nagios.vim
oder die lokale Kopie.

Re^2: Sonderzeichen, nicht nur in Perl (was: Warum ich Ruby nicht mag…)

Naja, immerhin 3 Rückmeldungen öffentlich - und einige, die sich nicht getraut haben, es öffentlich zu machen ;-)

Hier also nun der schon versprochene 2. Teil zu Ruby... Was mir als erstes entgegengehalten wurde war, dass man

@names.each do |name|
puts "Hallo, #{name}!"
end

auch so schreiben kann:

for name in names do
puts "Hallo, " + name
end

<rant>
Wenn ich eine Sprache suche, in der die einfachsten Dinge mit 27 Gazillionen verschiedenen Möglichkeiten realisierbar sind, dann nehm ich PERL. Ich will anderer Leute Code lesen können, OHNE vorher die Sonderzeichen der jeweiligen Sprache studiert zu haben. Nachwievor IMHO das Argument gegen PERL. Und Ruby ist - siehe Kommentar und Trackbacks zum ersten Eintrag - nicht wirklich besser.
</rant>

Und wenn ich dann sowas im Code sehe wie

1.upto 3 do

dann muss ich ehrlich sagen: Nein, danke! Da schreib ich lieber noch ein wenig mehr Python-Code, der ist lesbar und selbst Python-Code von ganz anderen Leute (aka praktisch jedes Script, das ich mir aus dem Netz angesehen habe) kann ich lesen - ohne mich auf des Autors Eigenheiten einstellen zu müssen.

Inhalt abgleichen Inhalt abgleichen
Powered by Olark