Beim modernen DevOps-Modell werden die Begriffe Beobachtbarkeit und Überwachung häufig synonym verwendet. In vielen Fällen sind es scheinbar ähnliche Konzepte, die nur marginal voneinander abweichen. Es gibt jedoch eindeutige Unterschiede zwischen den beiden Begriffen.
Überwachung bezeichnet die Prozesse, die Entwicklungs- und IT-Teams verwenden, um den aktuellen Zustand ihrer Systeme zu überwachen und zu verstehen. Sie beruht auf der Erfassung vordefinierter Metriken und blickt auf eine lange Geschichte zurück, die fast so alt ist wie die Datenverarbeitung selbst.
Beobachtbarkeit ist dagegen ein sehr viel moderneres Konzept. Es lässt sich etwas schwerer eingrenzen, ist jedoch mit einem klaren Ziel verbunden. Beobachtbarkeit ist also nicht einfach ein leeres Schlagwort im DevOps-Bereich.
In diesem Artikel erfahren Sie, was beide Begriffe bedeuten und wie sie zueinander in Beziehung stehen. Außerdem gehen wir näher auf einige Tools zur Implementierung von Beobachtbarkeit und Überwachung ein.
Schauen wir uns zunächst die Definition von Überwachung genauer an.
Was ist Überwachung?
Überwachung dient dazu, effektive Kommunikation zu fördern. In der modernen IT erhält das DevOps- oder SRE-Team (Site Reliability Engineering) durch Überwachung einen Einblick darin, wie gut ein beobachtbares System funktioniert.
Vor der Implementierung eines Überwachungsprozesses müssen Sie festlegen, welche Metriken Sie überwachen möchten. Dann können Sie diese vordefinierten Metriken (und möglicherweise auch Protokolle) aus den relevanten überwachten Systemen erfassen. Anschließend müssen Sie Daten aggregieren, Trends ermitteln und mögliche Störungen, Probleme oder Fehler aufspüren.
Bei welchen Problemen könnten Ihre Überwachungstools eine Warnung ausgeben? Dies kann beispielsweise aus folgenden Gründen geschehen:
- Netzwerklatenz
- Schlechte Reaktionszeit einer Anwendung
- Schwache I/O-Leistung
- Fehlgeschlagene Datenbankvorgänge
Moderne Web-Anwendungen nutzen zwei Arten von Überwachung: synthetische Überwachung und Real User Monitoring (RUM). Synthetische Überwachung wird meist zur Überwachung kurzfristiger Trends genutzt, während RUM besser für langfristige Trends geeignet ist. Die synthetische Überwachung misst die Funktionalität eines Systems mithilfe von Automatisierungstools. Dabei wird beispielsweise anhand von Musterwerten ermittelt, ob sich eine Web-Anwendung wie erwartet verhält. Beim RUM werden die Benutzerinteraktionen mit einer Anwendung aufgezeichnet, um zu bestimmen, ob die Anwendung wie erwartet funktioniert.
Überwachung ist kein neues Verfahren oder Konzept. Sie war schon immer Teil der modernen Computing-Landschaft und wird seit den Anfängen der PC-Ära genutzt. Ein frühes Beispiel für ein Überwachungstool war Norton Disk Doctor. Das Programm führte Scans von PC-Festplatten durch und meldete die gefundenen Fehler.
In der modernen DevOps-Praktik nutzen SRE-Teams Überwachung, um den allgemeinen Zustand einzelner Server, Netzwerke und Datenspeicher zu überprüfen. Zudem ist Überwachung ein Teil der allgemeinen Beobachtbarkeitsziele einer Umgebung.
Was ist Beobachtbarkeit?
Laut Wikipedia ist „Beobachtbarkeit ein Maß dafür, wie gut die internen Zustände eines Systems aus der Kenntnis seiner externen Ausgaben abgeleitet werden können.“
Dies ist vergleichbar mit einem Patienten, der nach dem Auftreten quälender Schmerzen routinemäßig medizinisch versorgt wird. Aus der IT-Perspektive dient Beobachtbarkeit dazu, externe Ausgaben zu analysieren, die ähnlich wie klinische Symptome Einblicke darin gewähren, wie das System intern funktioniert. Beobachtbarkeit untersucht Effekte und korreliert diese mit einer bestimmten Ursache.
Warum ist Beobachtbarkeit ein so heißes Thema in der IT-Welt? Cloud-Computing und die Nutzung verteilter Anwendungen hat seit dem Jahr 2005 rasante Verbreitung gefunden. Längst sind die Zeiten vorbei, in denen man einen einzelnen VM-Cluster überwachen und dann Feierabend machte konnte. In der modernen IT-Welt befindet sich eine Anwendung mitunter in mehreren Clouds gleichzeitig und nutzt Container sowie Mikroservices. Häufig sind die Services zudem noch verteilt und mehrstufig.
Das ist der entscheidende Unterschied zwischen einfacher Überwachung und Beobachtbarkeit. Eine mehrstufige Umgebung erfordert einen ganzheitlichen Überblick über die gesamte Infrastruktur – etwas, das nur durch Beobachtbarkeit möglich ist.
Beobachtbarkeit hat das Ziel, einen umfassenden Überblick über die Infrastruktur bereitzustellen, also mehr als das, was die individuelle Überwachung eines Systems bieten kann. Dadurch kann die Ursache von Problemen besonders in verteilten und komplexen Systemen deutlich genauer ermittelt werden.
Zu den externen Ausgaben eines beobachtbaren Systems gehören Metriken, Ereignisse, Spuren und Protokolle. DevOps-Teams können Beobachtbarkeit unter anderem für folgende Aufgaben nutzen:
- Erkennung von Sicherheitsanomalien
- Kostenanalyse von Cloud-Ressourcen
- Durchführung von Spurenanalysen, um festzustellen, wie sich bestimmte Eingabewerte auf Programmfehler auswirken
- Identifizierung von saisonalen Spitzen in der Systemauslastung, die sich auf ungenügendes Load Balancing zurückführen lassen
Die meisten Beobachtbarkeitsplattformen bieten Benutzern detaillierte Informationen, mit denen sie die Ursache eines Problems mühelos identifizieren können. Einige Plattformen geben entweder Behebungsempfehlungen oder übernehmen gleich selbst die Ausführung entsprechender Maßnahmen.
Warum erscheinen Beobachtbarkeit und Überwachung so ähnlich?
Weshalb also herrscht so viel Verwirrung um Beobachtbarkeit und Überwachung? Zum einen bezeichnen die Begriffe ähnliche Konzepte mit ähnlichen Zwecken. Beide dienen dazu, die Zuverlässigkeit eines Systems zu verbessern und die Ursache eines Problems zu ermitteln, um die Gesamtleistung zu optimieren.
Zum anderen nutzen beide die gleichen Daten. Ganz gleich, ob Sie ein beobachtbares oder ein überwachtes System aufbauen möchten: Im ersten Schritt müssen die richtigen Ausgaben erfasst werden. Dazu müssen Datensammler und Agenten installiert und möglicherweise Anwendungscode instrumentiert werden.
Zudem können beide Technologien nebeneinander bestehen. Wie bereits erwähnt, ist Überwachung ein Teil der Beobachtbarkeit. Genau genommen gibt es viele Beobachtbarkeitsplattformen, die über integrierte Überwachungstools verfügen. Das bedeutet, dass Sie nicht zwei separate Tools benötigen, sondern sowohl Überwachung als auch Beobachtbarkeit über ein Tool verwalten können.
Der Unterschied zwischen Beobachtbarkeit und Überwachung
Trotz all ihrer Gemeinsamkeiten gibt es einige wichtige Unterschiede zwischen Beobachtbarkeit und Überwachung. Zunächst stellt Überwachung eine eher operative Funktion dar. Sie untersucht das interne Verhalten und meldet Probleme, gibt jedoch keine Auskunft darüber, welche Faktoren für ein Problem verantwortlich sein könnten. Die Überwachung kann das DevOps-Team lediglich über ein vorhandenes Problem informieren.
Ein Überwachungstool kann zum Beispiel Ihre SRE-Teams über einen Server informieren, der nicht mehr reagiert. Es kann Informationen über den Arbeitsspeicher, die Netzwerkleistung und Prozessormetriken bereitstellen, den Teams aber nicht sagen, wodurch die Spitzen verursacht werden. Eine Beobachtbarkeitsplattform geht einen Schritt weiter. Sie untersucht Server-Protokolle, Spuren, Ereignisse sowie Metriken und korreliert diese Daten, um dann beispielsweise zu ermitteln, dass ein außer Kontrolle geratener Prozess die Spitzen in der Prozessorauslastung verursacht. Anschließend gibt die Beobachtbarkeitsplattform eine Warnung über diesen Prozess heraus.
Überwachung teilt uns mit, dass etwas nicht stimmt. Beobachtbarkeit erfasst Daten, um uns zu melden, dass etwas nicht stimmt und was die Ursache ist.
Ein Überwachungstool erfasst zwar Metriken, allerdings muss das DevOps-Team die Informationen manuell analysieren, mit dem Problem korrelieren und den Fehler finden. Ein Beobachtbarkeitstool automatisiert diese aufwändigen Aufgaben und erleichtert es dem Team erheblich, ein Problem zu lokalisieren und zu beheben.
Eine solche Plattform bietet hochentwickelte Funktionen wie Datenkorrelation und nutzt mitunter künstliche Intelligenz (KI), um die Bereitstellung von Kontext, Distributed Tracing und hochentwickelter Anomalieerkennung zu unterstützen.
Ein weiterer wichtiger Unterschied ist, dass Beobachtbarkeit sogenannte „unknown unknowns“ aufzeigen kann. Das sind Probleme, die dem DevOps-Team möglicherweise noch gar nicht bewusst waren. Im Gegensatz dazu steht bei der Überwachung mehr der Zustand eines Systems im Fokus.
So können Beobachtbarkeit und Überwachung gemeinsam funktionieren
Obwohl die beiden Funktionen unterschiedlich sind und verschiedenen Zwecken dienen, schließen sie sich nicht gegenseitig aus. Sie können und sollten gemeinsam genutzt werden, denn sie ergänzen sich gegenseitig und erleichtern die Lösung von Problemen.
Überwachung kann kleine bekannte Probleme erfassen und davor warnen. Dadurch erhalten die SRE-Teams die nötigen Informationen, um Probleme zu beseitigen, bevor es zu ernsten Schäden kommt.
Zudem können geplante Änderungen an einem System durch Überwachung bestätigt werden. Stellen Sie sich zum Beispiel ein Szenario vor, in dem ein Server keinen Speicherplatz mehr hat. Das Überwachungstool kann darauf aufmerksam machen. Anschließend kann das DevOps-Team geplante Änderungen implementieren, um den Speicherplatz zu erweitern, woraufhin keine weiteren Warnungen erfolgen sollten. In diesem Fall kann das Problem als erledigt betrachtet werden, ohne dass eine weitere komplexe Beobachtung nötig wäre.
Doch was geschieht, wenn es wiederholt zu den immer gleichen Zwischenfällen kommt und keine klare Ursache zu erkennen ist? Möglicherweise muss dies umfassender beobachtet und analysiert werden – eine Aufgabe, für die Überwachung nicht geeignet ist. Ein Beobachtbarkeitstool dagegen kann die Ursache(n) identifizieren. Ist dies erledigt, kann das DevOps-Team zusätzliche Metriken im Überwachungstool einrichten oder es so konfigurieren, dass es weitere Warnungen verschickt oder sogar bestimmte Warnbedingungen ignoriert.
Beobachtbarkeitstools eignen sich hervorragend für die Unterstützung von IT-Aufgaben wie Kapazitätsplanung, Kostenoptimierung, Patching, Upgrades oder Fehlerbehebung. Überwachungstools sind für diese Aufgaben nicht immer geeignet, können jedoch bestätigen, ob Maßnahmen zum Erfolg geführt haben.
Vollständige Protokollierung und Einblicke – kostenlos
Falcon LogScale Community Edition (ehemals Humio) ist eine kostenlose moderne Log-Management-Plattform für die Cloud. Durch die Erfassung von Streaming-Daten erhalten Sie einen sofortigen Überblick über verteilte Systeme und können Zwischenfälle verhindern bzw. beheben.
Falcon LogScale Community Edition ist sofort kostenlos verfügbar und bietet folgende Vorteile:
- Erfassung von bis zu 16 GB pro Tag
- Speicherung bis zu 7 Tage
- Keine Kreditkarte erforderlich
- Unbegrenzter Zugriff ohne Testzeitraum
- Indexlose Protokollierung, Echtzeit-Warnungen und Live-Dashboards
- Zugriff auf unseren Marktplatz und zugehörige Pakete, einschließlich Leitfäden zur Entwicklung neuer Pakete
- Lernen und Kooperation in einer aktiven Gemeinschaft