[[Vorlage(getestet, bionic)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:mit_Root-Rechten_arbeiten:] [:Editor: Eine Datei mit einem Editor bearbeiten] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/service.png, 48, align=left)]] Der System-Monitoring-Dienst [sourceforge2:xymon:Xymon] {en} ist das Open-Source-Pedant zu [wikipedia:Big_Brother_(Software):Big Brother]. Aus dem ursprünglichen "bbgen toolkit" ist die Standalone-Version [wikipedia:Hobbit_(Software):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 [https://www.xymon.com/ Online-Demo] {en} an. {{{#!vorlage 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 == {{{#!vorlage Paketinstallation xymon, Server hobbit-plugins, optional - Erweiterungen für Server und Client }}} == Client == {{{#!vorlage Paketinstallation xymon-client, Client hobbit-plugins, optional - Erweiterungen für Client und Server }}} Die Xymon-Dienste werden automatisch gestartet und können wie jeder andere [:Dienste: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 `.`: * Enthält die Farben der Statusänderungen in der Form: ` ` * '''/var/lib/xymon/histlog''' enthält Dateien in der Form `//` * 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: {{{#!vorlage Tabelle 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. {{{#!vorlage Experten 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: {{{#!vorlage Befehl 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 ''''''-Blöcke der Konfigurationsdatei '''/etc/apache2/conf-available/xymon.conf''' ein weiteres "Require"-Statement hinzugefügt werden. Man ergänzt daher in jedem ''''''-Block folgende Zeile: {{{ Require ip 192.168.0 }}} Mehr Details zum Apache Modul mod_authz_core findet man z.B. [https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html hier] {en} === Authentifizierung === Um der Standardkonfiguration gemäßig benutzerbasierenden Zugriff zu gewähren, fügt man mit folgendem Kommando neue Benutzer zur Datei xymonpasswd hinzu: {{{#!vorlage Befehl sudo htpasswd /etc/xmyon/xymonpasswd }}} Hat man die Zugriffkontrolle vorab auf IP-Basis umgesetzt, muss man nun alle Require-Anweisungen mit '''...''' und/oder '''...''' verschachteln. Nach einer Änderungen an der Apache-Konfiguration startet man den Webserver neu: {{{#!vorlage Befehl sudo apache2ctl restart }}} ==== Beispielkonfiguration mit IP- und Benutzerauthentifizierung ==== {{{#!code html ... ScriptAlias /xymon-seccgi/ "/usr/lib/xymon/cgi-secure/" AllowOverride None Options ExecCGI Includes # Apache 2.4+ Require local Require ip 10.20.30 Order deny,allow #Allow from localhost ::1/128 10.0.0.0/24 AuthBasicProvider file AuthUserFile /etc/xymon/xymonpasswd AuthType Basic AuthName "Xymon Administration" # "valid-user" restricts access to anyone who is logged in. Require valid-user ... }}} == 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: {{{#!vorlage Tabelle 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: {{{#!vorlage Befehl sudo apt-cache policy libwbclient0 }}} {{{#!vorlage Code 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl apt-cache policy libwbclient0 }}} {{{#!vorlage Code 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: {{{#!code bash #!/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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo systemctl restart xymon-client.service }}} Ggf. kann man serverseitig alle Daten zum libs-Test eines Clients löschen: {{{#!vorlage Befehl /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 = * [sourceforge:xymon:Projektseite] {en} auf SourceForge * [wikibooks_en:System_Monitoring_with_Xymon:System Monitoring with Xymon] {en} - Dokumentation bei Wikibooks.org * [:Netzwerk-Monitoring:] {Übersicht} Programmübersicht #tag: Netzwerk, System, Server