Frank PientkaInnovation und Technologie

Unlock your logs!

Überall in Unternehmen und ihren Systemen werden Protokolle erstellt. Erst wenn die dort abgelegten Informationen Aktionen zur Folge haben, ist daraus ein Nutzen generierbar. Ansonsten erzeugen diese nur hohe Kosten und können meist nach kurzer Zeit gelöscht werden. Gerade Fehlerprotokolle von Systemen sind wichtige Informationsquellen für die Fehleranalyse und Optimierung, wenn diese zentral gesammelt und auf eine einheitliche Weise strukturiert gespeichert und verarbeitet werden. 

Oft gibt es fast so viele Protokollformate wie Systeme. Ein wenig können diese vereinheitlicht werden, wenn das Format beispielsweise auf das weit verbreitete standardisierte NCSA Common Fog Format konfiguriert werden kann. Für Web-Server existiert noch das Extended Log Format (ELF) des W3C. Ein anderes Format ist das von Syslog und wurde in den 1980ern für Sendmail entwickelt. Dieses ist seit dem Jahr 2009 durch die Internet Engineering Task Force (IETF) als RFC 5424 standardisiert, da es viele Programme und Betriebssysteme unterstützen.

Neben der Fehlererkennung dienen Protokolle auch dazu, Systemaktivitäten zu überprüfbar und nachvollziehbar zu machen. Es gibt bereits seit längerem viele Versuche, die auf den unterschiedlichen Systemen vorhandenen Protokoll-Dateien an einer Stelle zusammenzuführen oder direkt in entfernten Syslog-Servern zu schreiben. Doch wegen der großen Log-Formatvielfalt, bei der schon weit verbreitete Produkte, wie Apache http, FTP, Tomcat, MS IIS, Exchange oder Squid, ihre eigenen Formate definieren, ist es im Nachhinein schwierig, diese zu vereinheitlichen.

Protokollierung ist jedoch kein reines Infrastrukturproblem. Gerade in eigenen Anwendungen sollte man die von „Logging Diagnostic Messages Patterns“ des Mapped Diagnostic Context (MDC) oder noch besser Nested Diagnostic Context (NDC) von Neil Harrison verwenden, um neben der Fehlermeldung auch einen aussagekräftigen Anwendungskontext mit zu protokollieren.

Um von der Fehlermeldung auf die Ursache schließen zu können, sind die Aussagefähigkeit, der Kontext und die Struktur der Protokollmeldungen entscheidende Faktoren. Im Sinne von DevOps müssen hier Entwicklung und Betrieb noch enger zusammen arbeiten, um gemeinsam Verantwortung für die Lösung von Problemen zu übernehmen.

Protokolldateien bergen ein enormes Optimierungspotenzial. Gerade durch das Internet der Dinge wird die Bedeutung von ereignisorientierter Nachrichtenverarbeitung noch zunehmen.

Mit aktuellen Big Data-Lösungen, die aus dem Bereich Volltextsuche kommen, wie der ELK-Stack, der für ElasticSearch, Kibana und Logstash steht, gibt es fertige Lösungen, die einerseits die skalierbare Verarbeitung und Speicherung ermöglichen und andererseits die Ergebnisse in Realzeit anzeigen.

Alternative Produkte mit einem anderen Schwerpunkt gibt es mit logFaces, Graylog2, Flume, Graphite, Errbit und Splunk. Dabei werden ausgewählte Felder in den unterschiedlichen Protokollformaten auf ein einheitliches Auswertungsformat abgebildet. Dadurch dass die Auswertung separat von den überwachten Systemen erfolgt, ist es auch ressourcenschonender und einfacher, darauf zuzugreifen. Durch eine einheitliche Web-Oberfläche benötigt nicht mehr jeder Zugriff auf die eigentlichen Produktionssysteme, sondern man kann darüber Fehler bequem eingrenzen oder Kennzahlen für die proaktive Optimierung der überwachten Systeme ableiten.

Ein anderer Aspekt ist die Sicherheit, da zum Durchsuchen der vorgefilterten Protokolldateien nicht volle Zugriffsrechte benötigt werden, so dass nur die relevanten Ausschnitte angezeigt werden, z. B. ggf. ohne interne preisgebende Stacktraces-Ausgaben. Durch die Realzeitverarbeitung kann schneller auf unvorhergesehene Ereignisse reagiert werden, z. B. bei Ressourcenengpässen oder Angriffen.

Deswegen lohnt es sich, das in den eigenen Protokolldateien brachliegende Potenzial zu heben. Die Beratungsfirma ThoughtWorks empfiehlt das Thema „strukturiertes Logging“ in seinem Technologie-Radar 2015, um aus Protokolldateien auswertbare Daten zu generieren.

All dies erfolgt gemäß dem Motto „Unlock your logs“ oder gewinnen Sie mehr wertvolle Informationen aus ihren Protokolldaten!