!!!Monitoring

Unter Monitoring verstehen wir hier die Überwachung eines Servers oder einer Vielzahl von Rechnern / eines ganzen Netzwerks. Monitoring bedeutet also, daß ich den Status eines Systems, d.h. meines Rechners, meines Netzwerks (oder prinzipiell auch von etwas ganz anderem - läuft meine Kühltruhe noch, ist meine Heizung kaputt - siehe HomeAutomation) beobachte, analysiere und betrachten kann. Dabei kann es z.B. interessant sein, bestimmte Werte über die Zeit zu beobachten (wie verhält sich meine Systemauslastung über den Tag verteilt) oder auch bestimmte Zustände (läuft mein Webserver noch) oder sich ankündigende Probleme (die Platte ist zu 90% voll) zu erkennen und ggf. zu melden.

Dabei gibt es zwei unterschiedliche Aspekte:
# Alarm, wenn ein Server oder eine Dienst auf dem Server ausfällt.
# Sammeln von statistischen Daten (CPU-Auslastung, Hauptspeicherauslastung, Plattenbelegung, I-/O-Mengen, etc.), um präventiv Engpässe vorherzusehen oder im Nachhinein eine Fehler analysieren zu können.

!!Werkzeuge für einen Rechner

Für einen einzelnen Rechner oder ein kleines Netz sind zu empfehlen:
# [Munin|Monitoring.Munin] für das Sammeln der Daten
# [Monit|Monitoring.Monit] für die Kontrolle von Diensten und Ressourcen  


!! Werkzeuge für ganz kleine Geräte

Unter [Maemo], z.B. für das N900 gibt es [Queen BeeCon|http://wiki.maemo.org/Queen_BeeCon_Widget], das einen schönen Systemstatus auch für entfernte Geräte auf Das Display Deines Mobiltelefons zaubert. Die dort benutzten sogenannten "Beecons" scheinen im Grunde das Gleiche wie die Plugins von [Nagios|Monitoring.Nagios] zu sein (mit leichten Abwandlungen sollte man diese evtl. sogar benutzen können). Mir gefallen vor allem auch die Screenshots, weil in der Oberfläche die interessanten Informationen auf sehr kleinem Raum gut sichtbar zusammengefasst werden. Sowas bietet sich auch für embedded Lösungen (siehe auch EmbeddedLinux oder HomeAutomation) an, wo man dem Benutzer ein einfaches, kleines Display geben will. Seltsam, daß es das nicht auch für normale Linux-Systeme gibt?!?


!! mächtigere Werkzeuge für komplexere Netzwerke

Eine weitverbreitete Standardlösung ist [Nagios|Monitoring.Nagios] (http://www.nagios.org). Es erlaubt die Überwachung eines Rechnersystems durch einen oder mehrere Administratoren. Im Grunde verwaltet es die Zustände "OK", "Warning" und "Critical". Damit ist es sehr nützlich, damit man alle Dienste, Server, Hosts und angeschlossene Peripherie in seinem Netzwerk überwachen kann. Ein Ausfall wird dann z.B. per Mail oder per SMS an den Administrator gemeldet, der dadurch im besten Fall handeln kann, bevor die User anfangen, zu schreien. Oftmals geht es aber auch nicht um User, sondern um Dienste, die im Hintergrund laufen wie z.B. ein Backup oder eine Daten-Aktualisierung, die aus irgendeinem Grund einfach stillschweigend den Dienst einstellen. Auch sowas will man ja wissen.

Auf dem FrOSCon2010 war ein Stand des relativ neuen [Icinga|http://www.icinga.org/]-Projekts. Das ist ein Fork von Nagios, der sich bisher noch nicht allzu weit vom Original entfernt hat, der allerdings verspricht, ein offeneres Entwicklungsmodell umzusetzen als das Original (das im Kern von einer einzigen Person entwickelt wird). Nach einer Unterhaltung mit den anwesenden Icinga-Leuten habe ich mich entschlossen, das demnächst mal anzutesten (siehe Seite [Icinga|Monitoring.Icinga]).

Für Leute, die statistische Daten verwalten wollen und z.B. Temparaturen, Systemauslastung o.ä. überwachen wollen, scheint [Monitoring.Munin] das bessere Tool zu sein. Alternativ gibt es auch für Nagios bzw. Icinga-Daten graphische Anzeigeprogramme für solche Daten wie z.B. [Netways Grapher|https://www.netways.org/projects/show/grapher-v2], aber auch da habe ich bisher noch keine Erfahrung mit.

Eine Alternative zum weit verbreiteten Nagios ist [OpenNMS|http://www.opennms.org]. Dazu verweise ich nur auf die beiden folgenden Weblog-Einträge:
*[http://blog.it4sport.de/2009/04/11/opennms-statt-nagios-2/]
*[http://www.open-factory.org/?q=node/115]

Ein weiterer Gedanke, den Peter Hormanns beim LUG-Treffen am 3.8.15 einbrachte, ist [Riemann|Monitoring.Riemann]. Es ist Teil eines Ökosystems von Programmen. Dabei geht ein lokaler Client wie z.B. [collectd|https://collectd.org/] hin und sammelt auf einer Maschine verschiedene Werte. Diese meldet er dann in regelmäßigen Abständen an den [Riemann|http://riemann.io] Monitoring Server. Die Daten können aber auch an einen [Cyanite|http://cyanite.io/]-Server gegeben werden, der sie dann in einer Datenbank speichert (normalerweise [Apache Cassandra|http://cassandra.apache.org/]) und der die Daten auch kumulieren kann. Das Paket [Graphite|http://graphite.wikidot.com/] erlaubt dann, aus diesen Zeitreihen-Daten hübsche Graphiken mit dem zeitlichen Verlauf von Parametern zu machen. Einige Tools binden Graphite ein, um ausgehend von Riemann-Events entsprechende historische Daten ansehen zu können. Welchen Client man benutzt, um den Riemann-Server zu überwachen und zu steuern, kann ich bis jetzt noch nicht sagen. Wir haben uns vorgenommen, am nächsten Montag einen Riemann-Server als LUG-Projekt aufzusetzen.

!!weitere Seiten im Wiki
[{HasTagOf Monitoring}]

[{Tag Linux Debian Monitoring ServerDienste}]