Was ist ein Event Log?

Arfan Sharif - Mai 17, 2023

Definition von Ereignisprotokollen

In der Informatik ist ein Ereignis jede bedeutende Aktion oder Begebenheit, die von einem Software-System erkannt wird. Ereignisse können in Betriebssystemen, Netzwerken, Servern, Firewalls, Virenschutzsoftware, Datenbank-Anfragen, Hardware-Infrastruktur usw. auftreten. In der Regel werden sie in einer speziellen Datei namens Ereignisprotokoll aufgezeichnet.

Ein Ereignisprotokoll ist eine chronologisch geordnete Liste der aufgezeichneten Ereignisse. Der Begriff „Ereignisprotokoll“ bezeichnet auch eine Kernkomponente von Microsoft Windows. In diesem Artikel geht es jedoch um den allgemeinen Begriff, der für alle Betriebssysteme verwendet wird – einschließlich Windows.

Ereignisprotokolle enthalten unter anderem folgende wichtige Informationen:

  • Datum und Uhrzeit des Ereignisses
  • Eine Beschreibung des Ereignisses
  • Den Schweregrad des Ereignisses
  • Die beteiligte Anwendung oder den beteiligten Prozess
  • Spezifischer Code zur Identifizierung des Ereignisses
  • Andere relevante Informationen wie IP-Adressen oder Benutzernamen

ITOps-, DevOps- und SecOps-Teams benötigen diese Informationen, um nachvollziehen zu können, was in einem System passiert ist – zum Beispiel, ob es abgestürzt ist, ob es schädliche Aktivitäten gab oder ob ein Fehler der Infrastruktur vorliegt.

In diesem Artikel erläutern wir, was in einem Ereignisprotokoll aufgezeichnet wird, warum Ereignisprotokolle wichtig sind und wofür sie verwendet werden.

Was enthält ein Ereignisprotokoll?

Ereignisprotokolle in Rechnersystemen erfassen Informationen über Hardware- und Software-Ereignisse. Diese Ereignisprotokolle können Teil des Betriebssystems sein oder von einzelnen Anwendungen generiert werden.

Betriebssysteme

So werden beispielsweise Windows-Ereignisprotokolleinträge auf jedem Rechner mit einem Windows-Betriebssystem generiert. Diese Ereignisse werden häufig in eine von drei Kategorien eingeteilt:

  1. Systembezogene Ereignisse, die Ereignisse aus dem Betriebssystem erfassen
  2. Anwendungsereignisse, die von Anwendungen protokolliert werden, die auf einem Windows-Rechner ausgeführt werden
  3. Sicherheitsereignisse, die Anmelde- und Abmeldevorgänge erfassen

In ähnlicher Weise zeichnet der Prozess Syslog (oder rsyslog bzw. journalctl) unter Linux sowohl betriebssystem- als auch anwendungsbezogene Ereignisse auf. Bei Linux-Distributionen von Red Hat befindet sich das Ereignisprotokoll in der Regel in der Datei /var/log/messages.

Anwendungen, Server und Netzwerke

Ein Datenbankereignisprotokoll zeichnet unter anderem folgende Informationen auf:

  • Zugriffsanfragen
  • Interne Nachrichten, die vom Datenbankmodul generiert werden
  • Von Benutzern initiierte Abfragen
  • API-Anfragen
  • usw.

Das SQL Server-Fehlerprotokoll (meist ERRORLOG genannt) ist ein Beispiel für ein Datenbank-Ereignisprotokoll.

Webserver wie Apache oder Nginx zeichnen ihre Ereignisse in den Dateien access.log (Zugriffsprotokoll) und error.log (Fehlerprotokoll) auf. Das Zugriffsprotokoll zeichnet Webserver-Verbindungen auf, während das Fehlerprotokoll Fehlermeldungen enthält, die von der Software selbst generiert werden.

Im Netzwerkbereich erfasst ein Router-Ereignisprotokoll die Ereignisse im Netzwerkdatenverkehr sowie Änderungen an der Routerkonfiguration. Darüber hinaus zeichnet ein Firewall-Ereignisprotokoll Ereignisse wie blockierten Datenverkehr für bestimmte Ports auf.

Cloud-Services

Im Rahmen von Cloud-Services zeichnen Ereignisprotokolle wie AWS CloudTrail, CloudWatch Log oder AWS Config Ereignisse auf, die von verschiedenen Services verschickt werden. Dazu gehören zum Beispiel Datenbank-Ereignisse aus RDS-Instanzen oder die Ausgaben einer serverlosen Funktion von Lambda.

Ereignisprotokollfelder

Ein Ereignisprotokoll ist eine strukturierte Datei, die Aufzeichnungen von Ereignisdaten enthält. In der Regel gibt es für jedes Ereignis im Ereignisprotokoll eine Reihe von Standardfeldern, zum Beispiel:

  • Die Klassifizierung und der Schweregrad des Ereignisses, z. B. „allgemeine Informationen“, „Warnung“ oder „kritischer Fehler“
  • Der Zeitstempel des Ereignisses
  • Die Quelle des Ereignisses, z. B. Hardware, Software, Betriebssystem, Anwendungsmodul, Bibliothek oder Remote-IP-Adresse
  • Bei Bedarf das Ziel des Ereignisses, das eine Anwendung, eine IP-Adresse oder ein anderer Ort sein kann
  • Bei Bedarf eine Ereigniszahl, die das Ereignis eindeutig identifiziert, z. B. ein interner Fehlercode des Webservers
  • Der Benutzername bei benutzergenerierten Aktionen
  • Die Beschreibung des Ereignisses

Durch die Felder werden alle relevanten Informationen rund um das Ereignis zur Analyse bereitgestellt.

Wie werden Ereignisprotokolle mit Daten befüllt?

Alle Betriebssysteme – sowie die meisten Anwendungen – generieren ihre eigenen Ereignisprotokolle. Meist schreiben sie fortlaufend in dieselbe Datei und beginnen eine neue, wenn ein bestimmter Schwellenwert für die Dateigröße erreicht ist. Die Protokollierung kann ausführlich oder kurz und knapp gefasst sein. Wie das Ereignisprotokoll genau mit Daten befüllt wird, hängt davon ab, wie die einzelnen Anwendungen ihrer Konfiguration entsprechend Ereignisse an das Protokoll schicken.

Meistens konfigurieren Systemadministratoren die Ereignisprotokollierung für jede Anwendung, die sie verwalten. Die Konfigurationsparameter umfassen unter anderem den Protokolldateinamen, die zu erfassenden ereignisbezogenen Felder, den Aufbewahrungszeitraum für die Ereignisse, den Mindestschweregrad für eine Protokollierung und die Zeitzone.

Software-Entwickler verwenden Protokolle auch, um Ereignisinformationen aus den Anwendungen zu erfassen, die sie selbst entwickeln. Genau genommen kann jede individuell entwickelte Anwendung ihre Ereignisse an das Ereignisprotokoll des Betriebssystems schicken, solange die Anwendung auf das Protokoll zugreifen und die zugehörige API aufrufen kann, um die Daten bereitzustellen. So können beispielsweise in der T-SQL-Sprache für Microsoft SQL Server benutzerdefinierte Datenbank-Anwendungsereignisse an das Windows-Anwendungsereignisprotokoll geschickt werden.

Warum sind Ereignisprotokolle so wichtig?

Ereignisprotokolle sind für die Ursachenanalyse von Problemen und Zwischenfällen unerlässlich – unabhängig davon, ob diese auf Hardwarefehler, Betriebssystemfehler, Sicherheitskompromittierungen, Anwendungsausfälle oder Leistungseinbußen zurückzuführen sind. Das IT-Team und die Entwickler können die Ursache eines Problems am effektivsten ermitteln, wenn sie sich die vorhergehenden Ereignisse in den Protokolldateien ansehen.

Zur Fehlersuche kann auch das Korrelieren und Analysieren mehrerer Ereignisprotokolle gehören.

Durch das Zusammenführen und Korrelieren von Daten aus den Ereignisprotokollen verschiedener Komponenten können sich die Mitarbeiter ein genaues Bild vom System machen. Bei der modernen Protokollverwaltung werden mehrere Ereignisprotokolle aufgezeichnet, um Trends, Anomalien und Muster aufzudecken. Dies ist vor allem bei komplexen verteilten Systemen notwendig, in denen Probleme nicht immer durch die Analyse eines einzelnen Protokolls erkannt werden können.

Diese umfangreiche Zusammenstellung und Analyse ist eine entscheidende Komponente der System-Beobachtbarkeit, also der Fähigkeit, den aktuellen internen Zustand eines Systems anhand der von ihm generierten Daten – einschließlich der Ereignisprotokolle – zu ermitteln.

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.