Mobi Fluentd

Benjamin Affolter

In Zusammenarbeit mit der Schweizerischen Mobiliar durfte Puzzle ITC Fluentd auf der Container Plattform der Mobi einführen und deployen. Das Ziel war es, Applikationslogs und die Logfiles von Betriebskomponenten analog der klassischen Plattform zur Verfügung zu stellen.

Ausgangslage

Als Container Plattform setzt die Schweizerische Mobiliar auf eine on premises Kubernetes Plattform, welche ihr Vikingsteam engineered und betreibt. Bei Containern ist es Best Practice, dass Applikationen in Containern auf Standardout und Standarderror loggen und sich die darunterliegende Plattform um das Weiterbearbeiten der Logs kümmert. In diesem Umfeld kommt oft das CNCF Tool Fluentd zum Einsatz, welches entsprechend als Deamonset auf allen Kubernetes Nodes läuft und die Dockerlogs sammelt und weiterverarbeitet.

Lösung/Projekt

Ziel des Projekts war die Einführung und das Deployment von Fluentd auf der Container Plattform der Mobiliar, damit die Containerlogs verarbeitet und an Splunk weitergeleitet werden können. So werden Applikationslogs und die Logfiles von Betriebskomponenten analog der klassischen Plattform für die Weiterverarbeitung oder Analysen den Entwickler- und Betriebsteams zur Verfügung gestellt.

Die Rolle von Puzzle ITC

Puzzle ITC durfte die Mobiliar bei diesem Vorhaben unterstützen. Insbesondere das Weiterleiten mehrzeiliger Logs, bspw. Java Stack Traces, erwies sich als ein nicht-triviales Problem. Dieses äusserte sich darin, dass Zeilen einer einzelnen Log Message in deren Reihenfolge vertauscht wurden und so keinen Sinn mehr machten. Die Verwendung des Docker json-file Logging-Treibers kann diesbezüglich äusserst hilfreich sein.

Der Einsatz von Fluentd dient hauptsächlich dazu, die Logs mit den Kubernetes Metadaten, sprich von welchem Namespace, welchem Pod etc. die Logs kommen, anzureichern. Der Splunk Universal Forwarder leitet die Logs anschliessend weiter.

Unterdessen existiert auch Splunk Connect for Kubernetes, welches auf denselben Technologie-Stack setzt und dabei helfen kann, diese Herausforderung in den Griff zu kriegen.

Tech Stack

Verwendete Technologien:

  • Docker
  • Kubernetes
  • Fluentd
  • Helm
  • Splunk