Zentrales Logging mit Seq
In den Bereichen der Entwicklung und DevOps spielt das Verhalten von Anwendungen eine wichtige Rolle. Im Bereich der Anwendungsentwicklungen ist Logging notwendig, um Aktivitäten innerhalb der Anwendung zu protokollieren und das Logging unterstützt bei der Fehleranalyse. Im Bereich von DevOps ist ein aussagekräftige und möglichst umfassendes Logging notwendig, um das Verhalten der Anwendung im Betrieb in Bezug auf Stabilität und Performance bewerten zu können. Ein zentrales Logging hilft, diese Informationsbedürfnisse für alle Beteiligten abzudecken.
Individuelles vs. zentrales Logging
Das Logging von Anwendungsaktivitäten innerhalb der Entwicklung kann auf verschiedene Art abgebildet werden. Logs werden typischerweise in die Konsole, in Textdateien oder eine Datenbank geschrieben. Häufig arbeiten mehrere Entwickler lokal an einer Anwendung und das Logging erfolgt während dieser Zeit ebenfalls lokal. Darüberhinaus handeln unterschiedliche Personen in den Bereichen Entwicklung und DevOps, die auch unterschiedliche Anforderungen an die Inhalte der Loginformationen haben.
Bei einem zentralisierten Logging werden alle erforderlichen Loginformationen (zusätzlich) aus den Anwendungen heraus an einen zentralen Logginserver gesendet und dort gespeichert. Über eine grafische Benutzeroberfläche können Nutzer genau die Informationen aus den Logdateien entnehmen, die sie für ihren konkreten Informationsbedarf benötigen.
Da die Logging-Informationen zentral vorliegen,
- können bedarfsgerechte und individuelle Auswertungen generiert,
- Logeinträge können gefiltert und gezielt durchsucht,
- eine Fehleranalyse kann im Bedarfsfall bis auf den Anwenderkontext heruntergebrochen und
- Benachrichtigungen, abhängig vom Kontext, an verschiedene Interessensebenen versendet werden.
Seq ist eine Lösung für zentrales und strukturiertes Logging, das wir in diesem Artikel vorstellen.
Seq – eine Zentrale Logging-Infrastruktur
Seq von der Firma datalust ist eine Lösung für eine zentralisierte und strukturierte Logging-Infrastruktur. Seq ist für einen Anwender mit vollem Funktionsumfang kostenlos.
Seq unterstützt folgende Sprachen mit verschiedenen Logging-Bibliotheken:
- .NET
- Node.js
- Python
- Java
- Ruby
- Go
- HTTPS
- GELF
Im Bereich von .NET beispielsweise werden die folgenden Logging-Bibliotheken direkt unterstützt:
- Serilog
- Microsoft.Extension.Logging
- NLog
- Apache log4Net
Über die Seq API können darüber hinaus individuelle Entwicklungen bedient werden.
Die folgende Abbildung gibt einen Überblick über die Nutzung von Seq:
Anwendungen senden Logging-Informationen zentral an Seq. Diese Informationen werden im JSON-Format in einer zentralen Datenbank gespeichert. Über die Benutzeroberfläche von Seq können Anwender gezielt Loginformationen suchen, filtern und abfragen.
Mit Hilfe von Seq Apps können Log-Ereignisse verarbeitet und Benachrichtigungen auf diversen Wegen generiert werden. Es können auch eigene Seq Apps erstellt werden.
Fazit
Mit Hilfe von Seq können Sie eine zentrale und strukturierte Logging-Infrastruktur einrichten. Das zentrale Logging erlaubt es, verschiedenen Nutzern und Organisationseinheiten indivduelle Sichten und Auswertungen zu den Logaktivitäten zu erstellen, diese zu analysieren und gesamtheitliche Maßnahmen zu ergreifen.
Wir werden Seq in weiteren Artikeln verfolgen und die Installation von Seq unter Docker sowie die Nutzung unter .NET Core 6 und Serilog beschreiben.