Logging mit logstash und log4net im Microsoft-Umfeld

Elegant visualisiert

Sascha Werheid


Video: C# Performancetuning

Jeder schreibt Logeinträge, einige einfach in eine Textdatei, wieder andere per E-Mail oder vielleicht in eine Datenbank. Ein Zeitstempel und einige Daten zeichnen normalerweise einen Logeintrag aus. Üblich sind Logfiles vor allem bei Anwendungen, die über keine grafische Benutzeroberfläche verfügen. Meist protokollieren sie ein Fehlverhalten oder eine bestimmte Aktion und helfen so, mögliche Problemstellen später identifizieren zu können. Wenn man professionelle Anwendungen schreibt, lässt sich das Protokollieren nicht vermeiden. Ein bekanntes Szenario ist: Der Kunde findet einen Fehler und stellt ihn vielleicht sogar direkt mit der Fehlermeldung in das Bugtracking-System ein, aber die Informationen reichen nicht aus. Man hat zwar ausführliche Logfiles, allerdings liegen sie beim Kunden oder aber man scrollt stundenlang durch die vielen Zeilen in der mäßig formatierten Textdatei. Wäre es da nicht viel einfacher, alle relevanten Protokollinformationen an einem Ort zu haben und sie bequem mit einfachen Abfragen oder in vorher definierten Masken zu sichten? Genau das bietet logstash [1], das sich mit wenig Aufwand komplett in einem Windows-Umfeld betreiben lässt.

Was ist logstash?

Neben der bekannten Windows-Ereignisanzeige gibt es einige mehr oder weniger bekannte kommerzielle, zentrale Logserverlösungen im Windows-Bereich. logstash ist im Windows-Umfeld und vor allem im .NET-Bereich eher unbekannt, genießt im Java- und Webumfeld aber eine gewisse Bekanntheit. Dabei handelt es sich um eine kostenlose Open-Source-Lösung (Apache-2.0-Lizenz), um Logs zu managen. Es ist eine Java-Anwendung, die die Logs annimmt, filtert und wieder ausgeben kann. logstash bietet mehr als dreißig, Input-Plug-ins genannte, Möglichkeiten, Logs einzulesen. Von der klassischen Datei über die Windows-Ereignisse bis hin zu Twitter-Nachrichten ist alles dabei. Die über den Input erhaltene Information wird mit einem Filter verarbeitet, um daraus die eigentlich zu protokollierende Information zu ermitteln. Zum Beispiel lässt sich mit dem Grok-Filter eine unstrukturierte Zeichenkette in vergleich- und sortierbare Felder parsen. Die gefilterten oder ungefilterten Informationen werden dann über einen Output-Plug-in ausgegeben. Hier gibt es wieder viele Optionen; die sinnvollste ist eindeutig Elasticsearch [2].

Warum Elasticsearch?

Im August 2013 hat sich Jordan Sissel, der Schöpfer von logstash, Elasticsearch angeschlossen und logstash zu einem Teil der Firm...

Logging mit logstash und log4net im Microsoft-Umfeld

Elegant visualisiert

Sascha Werheid


Video: C# Performancetuning

Jeder schreibt Logeinträge, einige einfach in eine Textdatei, wieder andere per E-Mail oder vielleicht in eine Datenbank. Ein Zeitstempel und einige Daten zeichnen normalerweise einen Logeintrag aus. Üblich sind Logfiles vor allem bei Anwendungen, die über keine grafische Benutzeroberfläche verfügen. Meist protokollieren sie ein Fehlverhalten oder eine bestimmte Aktion und helfen so, mögliche Problemstellen später identifizieren zu können. Wenn man professionelle Anwendungen schreibt, lässt sich das Protokollieren nicht vermeiden. Ein bekanntes Szenario ist: Der Kunde findet einen Fehler und stellt ihn vielleicht sogar direkt mit der Fehlermeldung in das Bugtracking-System ein, aber die Informationen reichen nicht aus. Man hat zwar ausführliche Logfiles, allerdings liegen sie beim Kunden oder aber man scrollt stundenlang durch die vielen Zeilen in der mäßig formatierten Textdatei. Wäre es da nicht viel einfacher, alle relevanten Protokollinformationen an einem Ort zu haben und sie bequem mit einfachen Abfragen oder in vorher definierten Masken zu sichten? Genau das bietet logstash [1], das sich mit wenig Aufwand komplett in einem Windows-Umfeld betreiben lässt.

Was ist logstash?

Neben der bekannten Windows-Ereignisanzeige gibt es einige mehr oder weniger bekannte kommerzielle, zentrale Logserverlösungen im Windows-Bereich. logstash ist im Windows-Umfeld und vor allem im .NET-Bereich eher unbekannt, genießt im Java- und Webumfeld aber eine gewisse Bekanntheit. Dabei handelt es sich um eine kostenlose Open-Source-Lösung (Apache-2.0-Lizenz), um Logs zu managen. Es ist eine Java-Anwendung, die die Logs annimmt, filtert und wieder ausgeben kann. logstash bietet mehr als dreißig, Input-Plug-ins genannte, Möglichkeiten, Logs einzulesen. Von der klassischen Datei über die Windows-Ereignisse bis hin zu Twitter-Nachrichten ist alles dabei. Die über den Input erhaltene Information wird mit einem Filter verarbeitet, um daraus die eigentlich zu protokollierende Information zu ermitteln. Zum Beispiel lässt sich mit dem Grok-Filter eine unstrukturierte Zeichenkette in vergleich- und sortierbare Felder parsen. Die gefilterten oder ungefilterten Informationen werden dann über einen Output-Plug-in ausgegeben. Hier gibt es wieder viele Optionen; die sinnvollste ist eindeutig Elasticsearch [2].

Warum Elasticsearch?

Im August 2013 hat sich Jordan Sissel, der Schöpfer von logstash, Elasticsearch angeschlossen und logstash zu einem Teil der Firm...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang