Hi Thomas,

wie sehen denn Anforderungen und Umgebung aus? Grundsätzlich:


Am 10.04.19 um 09:54 schrieb Thomas Güttler:

Frage 1: Könnt ihr die Aussage (Keinen Bock mehr auf "Logging to file") nachvollziehen?


Jein. "Logging to file" ist für mich eigentlich nur Implementationsfrage. Manchmal passt die besser zu den Anforderungen, manchmal schlechter. Zweitens ist daher interessanter:


Frage 2: Hat jemand schon eine Alternative zu Logfiles ausprobiert. Ein Erfahrungsbereicht aus
der Praxis wäre interessant.

Wir nutzen Elastic-Stack für Logging zusammen mit mannigfaltigen serverseitigen Anwendungen. Insgesamt sieht das wie folgt aus:

- Java-Module laufen in docker-Containern und sprechen via logstash direkt mit dem Logging-Server. Das ist elegant, weil dort Log-Nachrichten als JSON-Strukturen übergeben werden und serverseitig relativ leicht verarbeitbar sind.

- Nicht-Java-Module, Unix-Systemdienste, ... laufen wie gehabt lokal, dazu lebt auf jeder Maschine ein filebeat-Dienst, der einige dedizierte Logfiles beobachtet, Nachrichten dort 'rausnimmt und an den Logging-Server weiterleitet. Serverseitig gibt es hier Filter-/Vorverarbeitungsprozesse im logstash, die aus den Logfile-Zeileneinträgen auswertbare Dokumente machen.

Das funktioniert insgesamt *relativ* gut. Der Log-Server ist im Allgemeinen extrem robust und die Suche über alle Log-Daten über die Weboberfläche vereinfacht den Prozess erheblich.


Schmerzpunkte, die ich dort sehe:

- Zum einen (deswegen tendiere ich in unserem Use Case auch zu "logging to file ist nervig"): Man ist sehr schnell an einem Punkt, an dem man relativ viele und relativ komplexe Regeln hat, wie serverseitig die Logfiles zu zerlegen sind (speziell konfigurierte Logfiles im apache sind dort ein Standardbeispiel, bei denen ein Entwickler 'mal eben das LogFormat ändert und plötzlich der gesamte Prozess umfällt, weil die Information, die Du brauchst, plötzlich weiter vorn oder hinten in der Zeile steht). Dort ist das Logging von JSON-Strukturen schlicht etwas robuster und besser zu debuggen.

- Zum zweiten: Zugriff auf den Elastic Stack läuft als relativ schwere Anwendung über Kibana, respektive den Browser. Das ist eine andere Nummer, als an der Shell mal schnell ein Logfile durch verschiedene Tools zu pipen. Bietet mehr Möglichkeiten, aber kommt zu einem Preis.

- Der Elastic-Stack ist eine Infrastruktur, die man aufsetzen und pflegen will. Im *Allgemeinen* läuft der extrem robust, aber wenn man den updaten möchte oder *irgendwo* innerhalb des technischen Zoos dann doch mal Probleme auftreten, wird es schnell anstrengend.

Viele Grüße,
Kristian



--
Kristian Rink
https://dm.zimmer428.net/
https://www.flickr.com/photos/z428
https://twitter.com/kr428
https://social.tchncs.de/@z428

"Withering under words you told me:
 Comfort in the great machine."

Antwort per Email an