Was ist Observability?

Arfan Sharif - März 1, 2023

Das Konzept der Beobachtbarkeit, das wie ein neues, von der Technikwelt erfundenes Schlagwort erscheinen mag, wurde tatsächlich bereits vor fast einem Jahrhundert in der technischen Kontrolltheorie eingeführt. Kurz gesagt drückt Beobachtbarkeit aus, dass der interne Zustand eines Systems nur durch das Beobachten seiner externen Ausgaben abgeleitet wird.

Übertragen auf Software-Entwicklung und moderne IT-Infrastrukturen bedeutet dies, dass ein sehr gut beobachtbares System den IT-Mitarbeitern genug Informationen liefert, um ihnen ein ganzheitliches Bild über seinen Zustand bereitzustellen. Wenn Beobachtbarkeit gut implementiert ist, kann das IT-Team den internen Zustand eines Systems mit nur wenig Aufwand verstehen.

Bei der Beobachtbarkeit geht es nicht nur um Technologie. Sie ist eine Praktik, um sich mithilfe von Prozessen und zugehörigen Tools den gewünschten Einblick in ein System zu verschaffen. In diesem Artikel erläutern wir die wichtigsten Konzepte der Beobachtbarkeit:

  • Die wichtigsten Komponenten der Beobachtbarkeit
  • Warum Beobachtbarkeit wichtig ist
  • Der Unterschied zwischen Überwachung und Beobachtbarkeit
  • Worauf Sie bei einer Beobachtbarkeitsplattform achten sollten

Die Grundlagen von Beobachtbarkeit: Wichtige Komponenten

Bei den meisten Beobachtbarkeitstools stehen die drei Säulen der Beobachtbarkeit im Mittelpunkt: Protokolle, Metriken und Spuren. Einige Tools bieten eine Schnittstelle für einen separaten Aspekt der Beobachtbarkeit: Ereignisse.

Metriken

Metriken sind Zähler oder Messwerte von Systemattributen für einen bestimmten Zeitraum. Sie bestehen per Definition aus Zahlen und repräsentieren aggregierte Daten. Beispiele dafür sind die durchschnittliche Prozessorauslastung pro Minute pro Server oder die Zahl der zu Fehlern führenden Anfragen pro JVM (Java Virtual Machine) am Tag. Metriken können aus der Infrastruktur sowie aus Anwendungen und Load Balancern erfasst werden.

Protokolle

Protokolle sollen Hinweise darauf geben, welchen Teil der Codebasis eine Anfrage erreicht hat und ob die Anwendung bei der Verarbeitung der Anfrage etwas Unerwartetes oder Ungewöhnliches festgestellt hat. Im Fall von Zugriffsprotokollen werden sie zudem zur Erfassung von Zugriffsversuchen verwendet. Protokolle können von der Anwendung, die auf Anfragen reagiert, oder vom Betriebssystem (z. B. von Syslog oder dem Windows-Ereignisprotokoll) generiert werden.

Spuren

Spuren sind den Protokollen ähnlich, bieten jedoch einen Einblick in die tatsächlichen Codeschritte. Sie geben beispielsweise Aufschluss darüber, über welche Methode oder über welchen Service eine bestimmte Anfrage vor dem Beenden (oder Absturz) lief. Aufgrund ihrer Beschaffenheit werden Spuren nur stichprobenartig erhoben und nicht für alle Anfragen gespeichert. Die Möglichkeit, Spuren zu erfassen, hängt von den Funktionen Ihrer Beobachtbarkeitsplattform oder Bibliothek ab.

Mithilfe von Metriken kann das IT-Team feststellen, wann ein System ungewöhnlich langsam läuft, sowie identifizieren, welcher Teil des Systems davon betroffen ist, und ob Gegenmaßnahmen ergriffen werden müssen. In weiteren Analysen kann das Team die Protokolle auf Fehler und Ausnahmen überprüfen.

Ereignisse

Neben den drei Säulen können auch Ereignisse dazu genutzt werden, die Beobachtbarkeit eines Systems zu verbessern. So können Sie zum Beispiel festlegen, dass das System jedes Mal, wenn ein Administrator eine privilegierte Aufgabe ausführt, ein Ereignis in einem Beobachtbarkeitstool hinterlegt. Ereignisse werden mit bestimmten Aktionen registriert (z. B. das Ausführen einer Funktion, das Aktualisieren eines Datenbankeintrags oder eine Ausnahme, die durch den Code ausgelöst wurde). Durch langfristige Analysen können Ereignisse helfen, Muster zu erkennen. Alternativ dazu lassen sich auch strukturierte Protokolle als grundlegende Ereignisse nutzen.

Beobachtbarkeit ist für die Geschäftskontinuität Ihrer kritischen Systeme sehr wichtig. Dies sind Beispiele für kritische Systeme:

  • Anwendungen
  • Container
  • Infrastruktur
  • Netzwerke
  • Datenquellen
  • Edge Computing-Knoten

Je kritischer eine Komponente für das Gesamtsystem ist, desto wichtiger ist es, die Beobachtbarkeit dafür zu verbessern.

Warum benötigen wir Beobachtbarkeit?

Beobachtbarkeit ist kein Selbstzweck, sondern eine Methode, um die Verfügbarkeits- und Zuverlässigkeitsanforderungen von Unternehmen zu erfüllen. Beobachtbarkeit dient dazu, die mittlere Reparaturzeit (Mean Time to Repair, MTTR) zu verkürzen und die mittlere Betriebsdauer zwischen Ausfällen (Mean Time between Failures, MTBF) zu erhöhen. Dies ist nur möglich, wenn das IT-Team die Fehler in Produktionsumgebungen schnell ermitteln und Probleme identifizieren kann, bevor daraus Zwischenfälle entstehen. Zudem muss das Team proaktive Maßnahmen ergreifen können.

Das IT-Team verschafft sich mithilfe der Beobachtbarkeit einen vollständigen Überblick über die von ihm verwalteten Systeme, während das Sicherheitsteam Beobachtbarkeitstools nutzt, um Kompromittierungen und schädliche Aktivitäten aufzuspüren.

Den Entwicklern ermöglicht Beobachtbarkeit, Fehler frühzeitig im Entwicklungsprozess zu finden und somit zuverlässigere Software zu veröffentlichen. Dies fördert Innovationen und sorgt gleichzeitig für erstklassige Software sowie kürzere Veröffentlichungszyklen. Darüber hinaus profitiert auch das Support-Team insbesondere durch Real User Monitoring (RUM) von Beobachtbarkeit, da dies die Zusammenarbeit zwischen den einzelnen Teams und dem Kundensupport verbessert.

Die Kunden erhalten nicht nur bessere Produkte, sondern auch einen zuverlässigeren Service, denn die Entwickler und Support-Mitarbeiter können Probleme identifizieren und proaktiv beheben. Zudem kann ein hohes Maß an Beobachtbarkeit die sogenannten „unknown unknowns“ offenlegen – also Probleme, von deren Existenz vorher noch niemand etwas wusste.

Überwachung und Beobachtbarkeit

Ein Punkt, der häufig für Verwirrung sorgt, ist der Unterschied zwischen Beobachtbarkeit und Überwachung.

Überwachung bezeichnet das kontinuierliche Überprüfen von Metriken und Protokollen eines Systems, um zu ermitteln, ob das System sicher und zuverlässig ist oder ein manueller Eingriff erfolgen muss. Bei der Überwachung steht zudem die Messung individueller isolierter Komponenten (z. B. Server, Netzwerke oder Datenbanken) im Mittelpunkt.

Beobachtbarkeit ist dagegen weiter gefasst, denn hierbei werden alle erfassten Daten korreliert – einschließlich der Überwachungsdaten –, sodass sichtbar wird, wo genau etwas falsch läuft. Anders ausgedrückt: Überwachung teilt uns mit, dass etwas nicht stimmt, und Beobachtbarkeit sagt uns, wo die Ursache dafür liegt. Trotz ihrer Unterschiede gehören die Konzepte Überwachung und Beobachtbarkeit zusammen, da in beiden Fällen die Ausgaben eines Systems im Fokus stehen.

Die Wahl einer Beobachtbarkeitsplattform

Eine gute Beobachtbarkeitsplattform ist für Unternehmen ein wertvolles Asset. Sie hilft, Anforderungen in puncto Sicherheit, Zuverlässigkeit und Verfügbarkeit zu erfüllen, weshalb die Wahl der Beobachtbarkeitsplattform gut überlegt sein sollte.

Moderne IT-Systeme sind komplex. Die meisten sind dezentral, befinden sich potenziell in einer Multi-Cloud- oder Hybrid-Cloud-Umgebung und haben hohe Verfügbarkeitsanforderungen. Zudem stehen sie häufig im Visier von Angreifern.

Ein derart komplexes verteiltes System kann eine enorme Menge an beobachtbaren Daten generieren. Daher sollte eine gute Beobachtbarkeitsplattform in der Lage sein, Daten aus all diesen Quellen abzurufen, zu speichern, in kurzer Zeit zu analysieren und aussagekräftige Informationen aus den Daten herauszuziehen. Außerdem sollte sie Wichtiges – also relevante Ereignisse – von Unwichtigem trennen können. Eine gute Beobachtbarkeitsplattform muss Daten korrelieren und anreichern, um Anomalien und Trends für das IT-Team aufzuzeigen.

Die Beobachtbarkeitsplattform Ihrer Wahl sollte Folgendes bieten:

  • Integration in alle Systeme Ihres Anwendungsbestands, entweder nativ oder durch zuverlässige Plug-ins
  • Automatisierte, reproduzierbare Installation
  • Kostengünstige Erfassung von Echtzeitdaten aus allen relevanten Komponenten sowie Speicherung, Katalogisierung und aussagekräftige Korrelation dieser Daten
  • Echtzeitüberblick über Ihr komplexes System
  • Zurückverfolgbarkeit, um aufzuzeigen, wo und wie genau etwas falsch gelaufen ist – wichtige Informationen sollten dazu von unwichtigen getrennt werden
  • Berichte zu historischen Trends und Anomalien
  • Anzeige aller relevanten Kontextdaten für alle Warnungen und Berichte
  • Benutzerfreundliche Oberfläche und Möglichkeit der Erstellung benutzerdefinierter, konsolidierter Berichte für verschiedene Teams

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

KOSTENLOS TESTEN

INFORMATIONEN ZUM AUTOR

Arfan Sharif ist Product Marketing Lead für das Observability-Portfolio bei CrowdStrike. Er verfügt über mehr als 15 Jahre Erfahrung bei der Umsetzung von Lösungen für Log-Management, ITOps, Beobachtbarkeit, Sicherheit und Benutzerunterstützung für Unternehmen wie Splunk, Genesys und Quest Software. Arfan Sharif hat einen Abschluss in Informatik bei der Buckinghamshire New University und blickt auf eine Karriere in den Bereichen Produktmarketing und Sales Engineering zurück.