Interview mit Daniel Kühne

Bühne frei für Heka – dem Schweizer Taschenmesser zur Daten-Verarbeitung

Hartmut Schlosser

Daniel Kühne

Heka ist ein von Mozilla entwickeltes Werkzeug, mit dem das Sammeln und Verarbeiten von Daten aus verschiedensten Quellen vereinfacht werden soll. Daniel Kühne (The unbelievable Machine Company) stellt das Werkzeug auf der DevOps Conference 2016 im Zusammenhang mit einer Logging-Pipeline im ELK Stack vor. Vorab haben wir mit ihm über Hintergründe und Funktionsweise von Heka gesprochen.

JAXenter: Du stellst auf der DevOpsCon 2016 das Werkzeug Heka vor. Was ist Heka?

Daniel Kühne: Heka ist eine Art Schweizer Taschenmesser zum Bearbeiten von Daten, die in verschiedensten Formen und Formaten vorliegen bzw. bezogen werden können. Es kann u.a. genutzt werden, um Logdateien einzulesen, statsd-Metriken aufzubereiten und in anderen Formaten weiterzuleiten oder Daten zu analysieren und Unregelmäßigkeiten zu erkennen. Außerdem können die gesammelten Daten beispielsweise direkt via TCP, AMPQ, Kafka oder zu Elasticsearch weitergeleitet werden.

DevOpsCon Whitepaper 2018

Free: BRAND NEW DevOps Whitepaper 2018

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Michiel Rook, Christoph Engelbert, Scott Sanders and many more.

JAXenter: Kannst du einmal an einem Beispiel demonstrieren, wie man Heka sinnvoll einsetzen kann.

Daniel Kühne: Man nehme z.B. eine Logdatei für einen Apache, dann kann Heka gleichzeitig die Logmeldungen analysieren und zählen, wieviele Requests welchen Statuscode haben. Anschließend werden die Metriken in eine InfluxDB geschrieben und die analysierten Logmeldungen in Elasticsearch, wo sie dann mit Kibana ausgewertet werden.

JAXenter: Wo liegt aus deiner Sicht der Hauptunterschied zwischen Heka und anderen Logging Tools wie Graylog oder dem ELK-Stack?

Heka ist für mich kein Ersatz für einen ganzen Stack.

Daniel Kühne: Heka ist für mich kein Ersatz für einen ganzen Stack, sondern eine Ergänzung bzw. ein Ersatz für den Kollektor eines Stacks. Im Rahmen eines ELK-Stacks z.B. würde ich Logstash mit Heka ersetzen.

Für meinen Einsatzzweck bei einem Kunden hat Heka mit den Standardeinstellungen viel besser skaliert als z.B. Logstash. Am Anfang eines Projekts liefen bis zu 60K Nachrichten pro Sekunde durch eine Heka-Instanz, diese wurden mittels eines Rsyslog Decoder zerlegt und in einem Elasticsearch gespeichert. Dies geschah auf einer VM mit 2 CPUs und 4 GB RAM, auf der gleichzeitig auch das Elasticsearch und ein Kibana lief, die währenddessen eine sehr geringe Last hatte.

JAXenter: Kannst du uns einen Blick in die Entstehungsgeschichte von Heka gewähren? Wie, wann und warum kam es zustande? Wer steht dahinter? Wie wird es heute entwickelt?

Daniel Kühne: Der erste Commit im Git Repository von Heka wurde am 10.10.2012 von Rob Miller von Mozilla gemacht. Er hat mir auch verraten, dass Hekas erster Prototyp in Python geschrieben wurde und danach noch einer in Go, woraus Heka dann entstanden ist. Damals wollten sie einen Agenten, der das Parsen, Weiterleiten und Aufbereiten von Metriken, Daten und Logdateien für die Mozilla Cloud Services übernimmt. Zuerst wurde Logstash verwendet, jedoch gab es Performance-Probleme. Als die Suche nach einer Alternative kein zufriedenstellendes Ergebnis brachte, wurde eine eigene Entwicklung gestartet, und so entstand Heka.

JAXenter: Nun ist Heka wie du sagst ja in Go geschrieben. Weshalb fiel die Wahl auf Go?

Daniel Kühne: Unter anderem fiel die Wahl auf Go, weil eine hohe Performance benötig wird, da sehr viele Daten verarbeitet werden müssen. Aber ich kann mir auch vorstellen, dass die Ein-Binary-Strategy ohne viele externe Abhängigkeiten ein ausschlagebendes Argument war.

JAXenter: Welche Pläne gibt es für Heka?

Daniel Kühne: Leider ist die Zukunft von Heka gerade etwas ungewiss, denn das Team der Mozilla Cloud Services verwendet immer mehr Hindsight anstatt Heka. Hindsight basiert auf der gleichen Lua Sandbox, die auch Heka verwendet, jedoch sind bei Hindsight Inputs, Outputs und Analyse auch in Lua geschrieben und nicht in Go wie bei Heka.

JAXenter: Vielen Dank für dieses Interview!

Daniel KühneDaniel Kühne is System Architect at The unbelievable Machine Company in Berlin. Primarily responsible for a main customer, he acts as a consultant and technical principal covering all operations topics. He has more than ten years‘ experience within the IT industry and proven expertise in the usage of Docker as an OPS toolkit, monitoring systems and automation. More informations at www.unbelievable-machine.com

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: