Unter dem Kürzel Bbgen kennen manch altgediente Unix-Freaks noch ein Big-Brother-Addon, dem 2002 der Xymon-Vorgänger namens Hobbit entsprang. Erst seit 2009 firmiert es unter seinem heutigen Namen. Obwohl ein echter Oldtimer, hat das Tool den Admins viel zu bieten.
Autofans wissen: Alt muss kein Synonym für hässlich oder gar Schrott sein. Das Agent-basierte Monitoring-System Xymon Systems and Network Monitor ([1], unter GPLv2) stammt teilweise aus dem vorigen Jahrtausend [2], bringt aber mit zentraler Konfiguration, flexiblen Netzwerktests und hervorragenden Erweiterungsmöglichkeiten viele Features. Und es weiß mit schneller Installation und kurzer Einarbeitungszeit zu glänzen. Dieser Artikel führt durch die Installation und Konfiguration eines Xymon-Servers für die Überwachung des Testaufbaus aus fünf Servern. Das sollte selten mehr als etwa 30 Minuten erfordern.
Gleich bei der Gruppe der Netzwerktests zeigt sich die angenehme Seite von Xymon: Admins benötigen keine weitere Konfiguration auf den zu testenden Systemen, sondern brauchen sich nur um die Agenten oder Netzwerktests zu kümmern: 27 Agenten für SMTP, Cups, Samba, FTP, HTTP, IMAP und SSH bringt das Tool bereits mit, wobei die Skripte meist deutlich bessere und realistischere Ergebnisse liefern als etwa Bash-Skripte oder Kommandos wie Netstat. Die Daten der CPU-, RAM-, Festplatten- und Netzwerkauslastung sammelt der lokale Monitoring-Agent namens »xymon-client« . Für SNMP-Tests, Mail-Queues und andere lokale Abfragen stehen passende Erweiterungen parat.
Wer eine größere Menge von Gästen überwachen will, aber nur die wichtigsten Informationen aus diesen benötigt, beispielsweise CPU, RAM und Netzwerkauslastung, möchte vielleicht auch ganz auf den oder die Agenten in den virtuellen Maschinen verzichten und sich die Daten direkt aus den Tools des Hypervisors liefern lassen, etwa von der Libvirt. Obwohl das bei vielen Monitoring-Lösungen zum Standard gehört, scheint derlei bei Xymon nicht möglich, auch wenn Entwickler wohl schon länger daran arbeiten [3].
Installation
Weil die Version 4.3.0, Beta 2, aus den Ubuntu-Repositories bereits aus dem Jahr 2009 stammt, ist sie für den Server nicht mehr zu empfehlen, Admins sollten die neuere Version von der Projektseite (4.3.17) installieren. Nach dem Download, etwa mit Wget, fehlen noch ein paar Abhängigkeiten:
apt-get install libldap-2.4 libpcre3 librrd4 libssl1.0.0 fping libc-ares2
Schon steht der Installation selbst mit Dpkg nichts mehr im Weg. Auch auf dem Xymon-Server muss der Admin dabei den Xymon-Client installieren – schließlich will er auch den Server überwachen.
Die Konfigurationsdateien von Xymon liegen bei Debian/Ubuntu unter »/etc/xymon/« , in »hosts.cfg« trägt der Admin alle zu überwachenden Hosts und Netzwerk-Services in einem »/etc/hosts« -ähnlichen Format ein, wobei die Reihenfolge in jeder Zeile lautet: »IP Hostname # Checks« . Alles nach dem »#« interpretiert Xymon als Check oder Server-seitige Erweiterung. Hier sind alle Hosts einzutragen und die Checks – getrennt durch Leerzeichen – aufzulisten (Listing 1).
Listing 1
hosts.cfg
01 192.168.178.100 xymon.local # bbd http://xymon.local/ ssh 02 group-compress kvm-host 03 192.168.178.30 kvmhost.local # ssh 04 group-compress kvm-guests 05 192.168.178.101 lamp.local # ssh http://192.168.178.101/ cont=h_php;http://192.168.178.101/phpinfo.php;"register_globals.*Off" mysql 06 192.168.178.102 samba.local # ssh netbios-ssn dns 07 192.168.178.103 mail.local # ssh smtp imap imaps 08 192.168.178.104 print.local # ssh httpstatus=cups;http://192.168.178.104:631/printers;200 09 192.168.178.105 ftp.local # ssh ftp
Die »group-compress« -Direktiven in den Zeilen 2 und 4 strukturieren die Darstellung fürs Webinterface. Achtung: Der in »hosts.cfg« konfigurierte Hostname muss mit dem auf Client-Seite eingetragenen »CLIENTHOSTNAME« aus dessen »/etc/defaults/xymon-client« (früher »hobbit-client« ) übereinstimmen, da Xymon die Statusmeldungen über den Hostnamen zuordnet. Stimmen die Namen nicht überein, tauchen diese Maschinen im Webinterface unter »Ghost Clients« auf.
Dokumentation
Mehr Details bietet die Xymon-Manpage mit »man hosts.cfg(5)« , die ausführliche Informationen zu allen Standardtests bietet. Für das beschriebene Setup gibt es einige Details zu beachten, die dem Admin das Leben einfacher machen oder langes Suchen vermeiden. So bindet sich die Default-Installation von MySQL ja nur an das Loopback-Interface. Das heißt, die Datenbank ist nicht über das Netzwerk erreichbar. In der Konfiguration aus Listing 1 überwacht Xymon die Datenbank mit einem lokalen Test, wobei der Xymon-Client auf »lamp.local« installiert ist und eine Extension wie beispielsweise Hobbit-perl-cl verwendet. Wer MySQL aus dem Netz überwachen kann, der konfiguriert mit
echo -e '[mysql]\n\tport3306\n` >> /etc/xymon/protocols.cfg
den MySQL-Test in »host.cfg« mit einem Eintrag in »protocols.cfg« .
Auch der Cupsd-Check (Zeile 8) ist in »protocols.cfg« definiert. Bisweilen kommt der nicht mit dem TLS-Upgrade zurecht, deshalb ist er in Listing 1 über einen HTTP-Check realisiert. Dabei prüft der so genannte Http-Status-Check, ob eine Webseite Inhalte liefert, ob das PHP-Modul arbeitet und ob »register_globals« korrekt auf »Off« konfiguriert ist. Netzwerktests lassen sich schablonenartig ableiten von den Beispielen für IMAP, IMAPS, SSH und FTP.
Bei Änderungen liest Xymon die Konfigurationsdateien, mit Ausnahme von »xymonserver.cfg« , automatisch neu ein – wobei es nur alle zehn Minuten checkt. »killall -HUP xymond« veranlasst den Server, das sofort zu erledigen.
Das Webinterface von Xymon besteht aus minütlich generierten HTML-Dateien und CGI-Skripten. Für Apache bringt es die notwendigen Alias- und Skript-Alias-Direktiven mit (»/etc/apache2/conf.d/xymon« ), für die Rewrite-Rules muss der Admin nur dafür sorgen, dass das Rewrite-Modul von Apache aktiviert ist, dann steht das GUI etwa unter »http://xymon.local/xymon« bereit.
In der Standardkonfiguration bringt Xymon auch sinnvolle Schwellenwertdefinitionen mit (in »analysis.cfg« ), etwa für die Warnungen bei zu wenig freiem Speicher auf Festplatten. Die Konfiguration der Benachrichtigungen erfolgt in »alerts.cfg« . Die schnellste und einfachste Konfiguration für E-Mail-Benachrichtigungen umfasst die Zeilen
HOST=*
MAIL root@localhost
und schickt bei allen Problemen eine E-Mail an einen Empfänger. Das Webinterface (Abbildungen 1 und 2) erlaubt es dem Admin, unter »Reports | Notification Report« eine Liste der verschickten Benachrichtigungen abzufragen.
Ausblick
Der Monitoring-Oldtimer Xymon bietet mit seinen vielen Erweiterungen [4] auf Server- und Client-Seite, der Definition von SLAs und einem CLI zur Abfrage der Daten sehr mächtige und flexible Möglichkeiten zum Anpassen an individuelle Bedürfnisse. Dank des Web-GUI, der zentralen Konfiguration, guter Skalierbarkeit und schnellem Setup empfiehlt sich Xymon auch für große Installationen.
Infos
- Xymon: http://www.xymon.com
- “Goodbye Hobbit, hello Xymon”: http://lists.xymon.com/archive/2008-November/021870.html
- Xen-Monitoring: https://wiki.xymonton.org/doku.php/monitors:xen
- Extensions: https://wiki.xymonton.org








