Xymon
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Der System-Monitoring-Dienst Xymon 🇬🇧 ist das Open-Source-Pedant zu Big Brother. Aus dem ursprünglichen "bbgen toolkit" ist die Standalone-Version Hobbit hervorgegangen, doch da dieser Begriff schon als Markenzeichen registriert ist, entstand der finale Name Xymon. Diese historische Entwicklung spiegelte sich in den Konfigurationsdateien, Datei- und Ordnernamen älterer Ubuntu-Versionen wider.
Die Version 5 befindet sich derzeit (Stand Juli 2018) in Entwicklung und wird Unterstützung für IPv6 mitbringen.
Um einen kurzen Überblick über die Funktionen zu bekommen, schaut man sich am Besten Online-Demo 🇬🇧 an.
Hinweis:
Ab Ubuntu 12.10 wurden nahezu alle Dateien, Pfade und Befehle im System, sowie das Nutzerkonto, unter welchem die Dienste laufen, von hobbit auf xymon umbenannt.
Installation¶
Xymon kann direkt aus den Paketquellen installiert werden. [1]
Server¶
xymon (Server)
hobbit-plugins (optional - Erweiterungen für Server und Client)
Befehl zum Installieren der Pakete:
sudo apt-get install xymon hobbit-plugins
Oder mit apturl installieren, Link: apt://xymon,hobbit-plugins
Client¶
xymon-client (Client)
hobbit-plugins (optional - Erweiterungen für Client und Server)
Befehl zum Installieren der Pakete:
sudo apt-get install xymon-client hobbit-plugins
Oder mit apturl installieren, Link: apt://xymon-client,hobbit-plugins
Die Xymon-Dienste werden automatisch gestartet und können wie jeder andere Dienst über systemctl gesteuert werden. Die Dienste heißen xymon.service und xymon-client.service. Installiert man den Server-Dienst, so wird auch automatisch der Client installiert, um den Xymon-Server selbst zu überwachen. Die Hobbit-Plugins stellen weitere Tests bereit, wie zum Beispiel eine "apt"-Abfrage, um die Aktualität des Systems anzuzeigen.
Funktionsweise¶
Client übermittelt eigenständig Daten (z.B. CPU-Last, RAM- und Festplattenbelegung, Logfiles)
Server fragt eigenständig Daten ab (z.B. Ping, Dienste auf TCP-Ports, HTTP-Anfragen)
Server verarbeitet gesammelte Daten und speichert diese unter /var/lib/xymon als Dateien ab
/var/lib/xymon/hist enthält Dateien der Form
<hostname>.<testname>
:Enthält die Farben der Statusänderungen in der Form:
<Datum> <Farbe> <Beginn (unix timestamp)> <Dauer (in Sek.)>
/var/lib/xymon/histlog enthält Dateien in der Form
<Hostname>/<Testname>/<Datum der Statusänderung>
Enthält die volle Meldung des Tests zum entsprechenden Zeitpunkt
Xymon arbeitet nicht in Echtzeit! Änderungen am Status eines Systems werden erst nach dem Überschreiten interner Bearbeitungszyklen angezeigt. In den meisten Fällen entspricht das einer Verzögerung von fünf bis zehn Minuten.
Konfiguration¶
Standardmäßig werden alle von Xymon benötigten Dateien nach /usr/lib/xymon installiert. Um Xymon an die ubuntutypischen Spezifika anzupassen, werden verschiedene Ordner mittels Symlinks "umgebogen". Aus diesem Grund findet man alle Konfigurationsdateien unter /etc/xymon. Zu beachten ist, dass in diesem Verzeichnis nun sowohl Server- als auch Client-Konfigurationsdateien gemischt sind.
Server¶
Tests, die von außen an einem überwachten System ausgeführt werden können, wie z.B. ob eine Webseite verfügbar oder ein anderer Dienst erreichbar ist, sollten serverseitig konfiguriert und ausgeführt werden.
Der Xymon-Server wird über folgende Dateien und Verzeichnisse konfiguriert:
Konfigurationsdatei | Beschreibung |
alerts.cfg | Steuerung der Alarmbenachrichtigung |
analysis.cfg | Serverseitige Interpretation der Daten, die vom Xymon-Client geliefert werden. |
cgioptions.cfg | Konfiguration der Kommandozeilenoptionen, die an CGI-Tools übergeben werden. |
client-local.cfg | legt fest, welche Dienste auf dem Client überwacht werden. Diese Datei wird vom Server als Antwort auf die vom Client gesendeten Daten geschickt, um die Konfiguration für den nächsten Überwachungszyklus mitzuteilen. (Auch hier ist zu bedenken, dass Xymon kein Echtzeit-System ist. Im ungünstigsten Fall dauert eine Änderung der Anzeige nach einer Konfigurationsänderung 15 Minuten: Der Client übermittelt alle fünf Minuten seine Daten und empfängt die neue Konfiguration, nach weiteren fünf Minuten übermittelt der Client die neuen Daten und nach weiteren fünf Minuten zeigt die Weboberfläche die Ergebnisse der geänderten Konfiguration.) |
combo.cfg | Hier können kombinierte Statusmeldungen aus mehreren Tests definiert werden. |
critical.cfg | hobbit-nkview.cgi nutzt diese Datei um zu entscheiden, ob ein Status gelb oder rot wird und ob es unter den "Critical Systems" aufgeführt wird. |
graphs.cfg | enthält die Definitionen der Standard-Graphen für überwachte Eigenschaften eines Systems. hobbitgrapf.cgi nutzt diese Datei, um die Graphen aus den RRD-Dateien zu generieren. |
graphs.d/ | Graph-Definitionen für benutzerdefinierte Test werden in diesem Verzeichnis geführt. |
hosts.cfg | Hauptkonfigurationsdatei der zu überwachenden Systeme |
misc.d | Enthält kleine zusätzliche Tests für Events, die üblicherweise selten eintreffen und im Sinne der Übersichtlichkeit keine zusätzliche Spalte bekommen sollten. |
protocols.cfg | Definitionen der Test für einen TCP basierenden Dienst |
rrddefinitions.cfg | Legt die Parameter für Round-Robin-Datenbanken fest (Datenpunkte, Detailtiefe, usw. für Graphdarstellungen) |
tasks.cfg | In dieser Datei werden die Module des Xymon-Servers konfiguriert |
tasks.d | Wird unter Ubuntu nicht verwendet, enthält sonst aber Konfigurationsdateien für benutzerdefinierte, serverseitige Tests. |
xymonlaunch.d/ | Enhält Konfigurationsdateien für benutzerdefinierte, serverseitige Tests. (Namensanlehnung an den Ordner clientlaunch.d/) |
xymonpasswd | Passwortgeschützter Webzugang |
xymonserver.cfg | Definition der Umgebung(svariablen) auf dem Server |
xymonserver.d/ | Enhält Konfigurationsdateien als Erweiterungen der Datei xymonserver.cfg, z.B. bzgl. Graphenerstellung für benutzerdefinierte Tests. |
Bereitstellen der Xymon-Website über einen Webserver¶
Um die Xymon-Webseite aufrufen zu können, muss ein Webserver auf dem Xymon-Host installiert und konfiguriert sein. Im folgenden wird die Konfiguration für den Webserver Apache beschrieben.
Apache¶
Das Xymon-Paket aus den Paketquellen enthält eine Beispielkonfiguration für den Webserver Apache. Diese findet man unter /etc/apache2/conf-available/xymon.conf. Diese Konfiguration wird automatisch geladen und ermöglicht den lokalen Zugriff auf die Xymon-Webseite ohne weiteres Eingreifen.
Experten-Info:
Es kann durchaus sinnvoll sein, die vorgegebene Konfigurationsdatei des Apache zu verschieben, um die Seite z.B. als virtuellen Host bereitzustellen. Mit Hilfe dieser Befehlskette führt man diese Veränderung durch:
sudo a2disconf xymon sudo mv /etc/apache2/conf-available/xymon.conf /etc/apache2/sites-available/ sudo a2ensite xymon sudo service apache reload
Nun kann man im Browser die Xymon-Webseite mit http://localhost/xymon
aufrufen.
Zugriffskontrolle¶
Netzwerkzugriff - mod_authz_core¶
Nach dem installieren der Dienste kann die Xymon-Webseite nur lokal vom Xymon-Server aufgerufen werden. Um z.B. dem lokalen Subnetz Zugriff zu gewähren muss in jedem der drei <IfModule mod_authz_core.c>-Blöcke der Konfigurationsdatei /etc/apache2/conf-available/xymon.conf ein weiteres "Require"-Statement hinzugefügt werden. Man ergänzt daher in jedem <IfModule mod_authz_core.c>-Block folgende Zeile:
Require ip 192.168.0
Mehr Details zum Apache Modul mod_authz_core findet man z.B. hier 🇬🇧
Authentifizierung¶
Um der Standardkonfiguration gemäßig benutzerbasierenden Zugriff zu gewähren, fügt man mit folgendem Kommando neue Benutzer zur Datei xymonpasswd hinzu:
sudo htpasswd /etc/xmyon/xymonpasswd <user>
Hat man die Zugriffkontrolle vorab auf IP-Basis umgesetzt, muss man nun alle Require-Anweisungen mit <RequireAll>...</RequireAll> und/oder <RequireAny>...</RequireAny> verschachteln. Nach einer Änderungen an der Apache-Konfiguration startet man den Webserver neu:
sudo apache2ctl restart
Beispielkonfiguration mit IP- und Benutzerauthentifizierung¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ... ScriptAlias /xymon-seccgi/ "/usr/lib/xymon/cgi-secure/" <Directory "/usr/lib/xymon/cgi-secure"> AllowOverride None Options ExecCGI Includes <RequireAll> <IfModule mod_authz_core.c> # Apache 2.4+ <RequireAny> Require local Require ip 10.20.30 </RequireAny> </IfModule> <IfModule !mod_authz_core.c> Order deny,allow #Allow from localhost ::1/128 10.0.0.0/24 </IfModule> AuthBasicProvider file AuthUserFile /etc/xymon/xymonpasswd AuthType Basic AuthName "Xymon Administration" <RequireAll> # "valid-user" restricts access to anyone who is logged in. Require valid-user </RequireAll> </RequireAll> ... |
Client¶
Im Gegensatz zur Serverkonfiguration kann natürlich auch der Client direkt konfiguriert werden. Auch weitere Tests, die vom Xymon-Client direkt auf dem System ausgeführt werden, können auf diesem Weg eingepflegt werden.
Der Xymon-Client wird über folgende Dateien konfiguriert:
Konfigurationsdatei | Beschreibung |
clientlaunch.cfg | Enthält eine Liste der Aufgaben, die beim Start des Clients ausgeführt werden. |
clientlaunch.d/ | Dieser Ordner enthält die Konfiguration von weiteren clientseitigen Tests. |
xymonclient.cfg | Diese Datei enthält die grundlegende Standardkonfiguration des Xymon-Client. Um systemspezifische Einstellungen vorzunehmen, sollte die hier "inkludierte" Datei /etc/default/xymon-client angepasst werden. Hierin wird der Xymon-Server und der Hostname des Clients angegeben. |
localclient.cfg | Die lokale Variante der hobbit-clients.cfg, Interpretationskonfiguration der RAW-Daten |
hobbit-plugins aktivieren¶
Alle clientseitigen Erweiterungen aus den Plugins werden über die entsprechenden Dateien unter /etc/xymon/clientlaunch.d/ konfiguriert. Möchte man einen zusätzlichen Test aktivieren/deaktivieren, so kommentiert man die Zeile "DISABLED" ein bzw. aus.
Problembehandlung¶
Um Problemen auf den Grund zu gehen sollten in erster Linie die Log-Dateien betrachtet werden. Diese schreibt sowohl der Server als auch der Client in das Verzeichnis /var/log/xymon/.
disk zeigt alle Snap-Volumes mit "100% used - has reached the PANIC level"¶
Um ungewünschte Volumes generell auszublenden, editiert man die Datei /usr/lib/xymon/client/bin/xymonclient-linux.sh. Auf den Zeilen 55 und 60 befinden sich die Aufrufe von df
. Diese ergänzt man z.B. mit einem -x squashfs
oder man piped df durch grep -v '/snap/'
.
Hobbit-Plugins: apt meldet "Packages not installed from apt repositories"¶
Dieses Verhalten ist normal für Pakete, die z.B. mit dpkg -i /path/to/package.deb
installiert wurden. Werden unter dieser Warnung Pakete gelistet, die definitiv nicht händisch installiert wurden, so helfen folgende Schritte (hier am Beispiel von libwbclient0):
Zuerst alle verfügbaren Versionen auflisten:
sudo apt-cache policy libwbclient0
libwbclient0: Installiert: 2:3.4.7~dfsg-1ubuntu3.11 Kandidat: 2:3.4.7~dfsg-1ubuntu3.11 Versions-Tabelle: *** 2:3.4.7~dfsg-1ubuntu3.11 0 100 /var/lib/dpkg/status 2:3.4.7~dfsg-1ubuntu3.10 0 500 http://archive.ubuntu.com/ubuntu/ lucid-updates/main Packages 500 http://archive.ubuntu.com/ubuntu/ lucid-security/main Packages 2:3.4.7~dfsg-1ubuntu3 0 500 http://archive.ubuntu.com/ubuntu/ lucid/main Packages'''
Hier sieht man, dass die aktuell installierte Version 2:3.4.7~dfsg-1ubuntu3.11
nur lokal unter /var/lib/dpkg/status
referenziert wird. Als Lösung für dieses Problem hilft ein Downgrade auf die Version, die auch in den Paketquellen verfügbar ist:
sudo apt-get install libwbclient0=2:3.4.7~dfsg-1ubuntu3.10
Führt man anschließend erneut den apt-cache
-Befehl aus, so wird die installierte Version auch im entsprechenden Repository gelistet:
apt-cache policy libwbclient0
libwbclient0: Installiert: 2:3.4.7~dfsg-1ubuntu3.10 Kandidat: 2:3.4.7~dfsg-1ubuntu3.10 Versions-Tabelle: *** 2:3.4.7~dfsg-1ubuntu3.10 0 500 http://archive.ubuntu.com/ubuntu/ lucid-updates/main Packages 500 http://archive.ubuntu.com/ubuntu/ lucid-security/main Packages 100 /var/lib/dpkg/status 2:3.4.7~dfsg-1ubuntu3 0 500 http://archive.ubuntu.com/ubuntu/ lucid/main Packages
Hobbit-Plugins: libs meldet "Can't check Kernel version"¶
Lösung 1 - Berechtigungen anpassen¶
Die Standardberechtigungen für die Kernel-Images wurden ab Ubuntu 17.10 geändert, sodass nur noch root sie lesen kann. Möchte man, dass Xymon die Aktualität des Kernels abfragen kann, so muss man die Berechtigungen ändern. Durch Einbindung dieses Skripts werden bei jedem Update die Berechtigungen automatisch korrigiert:
1 2 3 4 5 | #!/bin/sh version="$1" # passing the kernel version is required [ -z "${version}" ] && exit 0 dpkg-statoverride --add --update root root 0644 /boot/vmlinuz-${version} |
Dieses Skript speichert man in die Datei /etc/kernel/postinst.d/statoverride und macht sie ausführbar:
sudo chmod +x /etc/kernel/postinst.d/statoverride
Lösung 2 - Spalte "libs" ausblenden¶
Auf dem Client bearbeitet man die Datei /etc/xymon/clientlaunch.d/libs.cfg und entfernt die Raute vor "DISABLED", um den Test zu deaktivieren:
Anschließend startet man den Xymon-Client neu:
sudo systemctl restart xymon-client.service
Ggf. kann man serverseitig alle Daten zum libs-Test eines Clients löschen:
/usr/lib/xymon/client/bin/xymon 127.0.0.1 "drop xymonclienthostname libs"
Hobbit-Plugins: libs meldet "The following processes have libs linked that were upgraded"¶
Leider scheint es bei diesem Test Probleme zu geben, die noch nicht gemeldet und daher nicht untersucht worden sind. So tauchen bei der Ausführung des Xymon-Clients auf Desktopsystemen Prozesse wie "gnome-shell", "pulse-audio" oder auch "firefox" mit dieser Warnung auf. Ein Neustart der Programme oder des Systems helfen leider nicht. Daher verbleibt auf betroffenen Systemen bis auf Weiteres nur die Möglichkeit, diesen Test zu deaktivieren, siehe #Lösung_2_-_Spalte_"libs"_ausblenden.
Links¶
Projektseite 🇬🇧 auf SourceForge
System Monitoring with Xymon 🇬🇧 - Dokumentation bei Wikibooks.org
Netzwerk-Monitoring Programmübersicht