Realtime Analytics mit Apache Kafka

So analysieren Sie Logdateien mit Open Source Software

| Autor / Redakteur: Thomas Joos / Nico Litzel

Apache Kafka lässt sich optimal in eine Hadoop-Infrastuktur einbinden und arbeitet mit anderen Apache-Projekten zusammen.
Apache Kafka lässt sich optimal in eine Hadoop-Infrastuktur einbinden und arbeitet mit anderen Apache-Projekten zusammen. (Bild: T. Joos)

Wenn Logdateien in hoher Anzahl analysiert werden sollen, dann stellt das sehr große Anforderungen an das Backend-System, das die Daten speichern und bereitstellen soll. Kommt in ein solches Szenario noch der Bedarf auf, diese großen Datenmengen schnell verarbeiten zu müssen, ist Apache Kafka das ideale System.

In Big-Data-Umgebungen fallen dauerhaft große Mengen an Logs an. Diese müssen verwaltet, versendet und oft auch gespeichert werden. Die ursprünglich von LinkedIn entwickelte Lösung Apache Kafka ist dazu in der Lage. Die Software basiert auf Scala und wurde von LinkedIn entwickelt, um die extrem hohen Mengen an Protokolldateien nutzen zu können, die in dem sozialen Netzwerk anfallen. Das verteilte Nachrichtensystem ist mit Java-Anwendungen kompatibel und arbeitet dazu auch innerhalb einer Java Virtual Machine. Seit 2011 ist Kafka ein Incubator-Projekt der Apache Software Foundation.

Daher setzen vor allen große Unternehmen, die zahlreiche Protokolldateien von verschiedenen Quellen zentral sammeln, auswerten und verteilen wollen, auf das Open-Source-Projekt Kafka. Auch Logging-Server wie Graylog nutzen zur Verarbeitung der Daten Apache Kafka. Mit Kafka können also Unternehmen Realtime-Analyse von Protokolldateien durchführen und die Daten mit anderen Systemen weiter verarbeiten, zum Beispiel Hadoop.

Protokolldateien schnell auszuwerten und versenden

In Big-Data-Umgebungen finden ständig Änderungen und Erweiterungen statt, die in den Protokolldateien gespeichert werden. Alle Aktionen werden in kleinen oder großen Protokolldateien gespeichert und müssen auch in großen Datenmengen schnell analysiert werden. Vor allem, wenn es um die Verarbeitungen von Daten in sozialen Netzwerken geht, also das Markieren von Beiträgen, Kommentaren, Likes und mehr.

Diese Datenmengen stellen Messaging-Systeme vor große Herausforderungen, da die Daten offline verarbeitet werden müssen, und auch bei steigender Datenmenge die Leistung nicht einbrechen darf. Dazu kommt die Speicherung der Daten und das Weiterreichen von Daten an andere Systeme.

Auch Protokolle in größeren Serverumgebungen können schnell große Datenmengen verursachen, vor allem dann, wenn Fehler vorliegen und damit die Protokolldateien schnell anwachsen. Fehler müssen von Administratoren in diesem Fall schnell erkannt und behoben werden. Daher müssen die Daten in den Protokolldateien effizient und schnell zur Verfügung stehen, häufig in wenigen Sekunden.

Eine weitere Anforderung sind kaufmännische Auswertungen, wie das Aufrufen bestimmter Seiten oder das Abrufen von Informationen. Die Daten müssen darüber hinaus auch in verschiedenen Werkzeugen auslesbar sein. Diese Werkzeuge müssen wiederum ständig die neusten Informationen verwenden, zum Beispiel für die Geschäftsführung und andere leitende Angestellte.

Kafka behält die Datenmengen im Griff

Apache Kafka besticht vor allem durch den sehr hohen Datendurchsatz. Kafka kann Protokolldateien auswerten, analysieren und versenden. Auch mehrere Tausend Nachrichten pro Sekunde spielen dabei keine Rolle. Kafka nutzt dazu eine Java Virtual Machine (JVM). Einer der herausragenden Vorteile von Kafka ist die Erstellung einer Schnittstelle zwischen den schnellen Datenspeichern auf Servern.

Kafka verbindet Arbeitsspeicher, Cache von Speichersystemen und die Speicherverwaltung des lokalen Betriebssystems miteinander. Das ermöglicht eine effiziente Verteilung der Rechen- und Speicheraufgaben. Auch der Netzwerk-Adapter wird in das Szenario eingebunden, sodass Nachrichten immer direkt aus dem schnellen Cache auf die Netzwerkkarte übertragen werden. Die meisten anderen Systeme müssen Daten erst zwischen Festplatte und Arbeitsspeicher hin und her kopieren, bevor ein Versenden über das Netzwerk erfolgt. Das kostet vor allem bei großen Datenmengen Einiges an Zeit.

Die zugestellten Nachrichten werden außerdem gespeichert. Hierbei werden ebenfalls spezielle Verfahren verwendet, die vor allem in Umgebungen mit großen Datenmengen eine hohe Geschwindigkeit versprechen.

Betrieb im Cluster

Kafka besteht aus mehreren Komponenten. Diese lassen sich auf mehrere Knoten verteilen und auf diesem Weg auch clustern. Damit die Komponenten miteinander interagieren können und dabei leistungsstark zu Verfügung stehen, wird Apache ZooKeeper verwendet. Mit Apache ZooKeeper können Administratoren die Hadoop-Infrastruktur zentral steuern, inklusive Apache Kafka. Zookeeper ist ein zentraler Dienst für die Pflege von Konfigurationsinformationen, die Benennung von Objekten und bietet eine verteilte Synchronisierung und Gruppendienste. Die Lösung soll vor allem Wildwuchs in der Infrastruktur verhindern und dabei helfen, eine einheitliche Konfiguration zu erreichen.

Natürlich lässt sich Kafka auch ohne Zookeeper nutzen, allerdings ist dann die Verwaltung des Clusters unnötig kompliziert. Kafka verarbeitet im Hintergrund die Daten und speichert diese an im Consumer-Teil der Lösung. Dieser Teil kann durch Anwendungen oder Big-Data-Lösungen wie Hadoop abonniert werden, um später weiter analysiert werden zu können.

Kafka und Hadoop, HDInsight oder AWS

Kafka kann auch dazu verwendet werden, große Datenmengen zu verarbeiten und direkt in das Hadoop-System zu senden. Aus diesem Grund ist Kafka auch Bestandteil der Hortonworks Data Platform (HDP). Auch mit HDInsight in Microsoft Azure arbeitet Kafka zusammen. Wer auf Big Data in Amazon Web Services (AWS) setzt, kann ebenfalls Kafka integrieren. In solchen Umgebungen kann Kafka seinen Nutzen ausspielen.

Das System empfängt dazu die Protokolle aus den verschiedenen Systemen und stellt diese in NoSQL-Datenbanken wie HBase zur Verfügung. Dabei werden die Daten vor der Speicherung schon klassifiziert und vorverarbeitet. Dieses Szenario ermöglicht das Verarbeiten zahlreicher Transaktionen in sehr geringer Zeit. Allerdings ist die Konfiguration einer solchen Umgebung recht kompliziert und erfordert einiges an Know-how in diesem Bereich. Wer Kafka in Amazon Web Services bereitstellen will, kann auf vorgefertigte Skripte setzen.

Zusammenarbeit mit Storm & Co.

Ein weiterer Vorteil von Kafka ist dagegen die enge Integration mit anderen Apache-Projekten für eine optimale Zusammenarbeit. So arbeitet Apache Kafka arbeitet auch mit Apache Storm zusammen. Storm kann Daten aus anderen Streams auslesen, bevor diese persistent gespeichert und abgeschlossen werden, auch aus Apache Kafka. Die Software wird bereits von zahlreichen Unternehmen produktiv genutzt, darunter Twitter, Cisco, Spotify, Yahoo, Microsoft und Alibaba.com.

Mit Apache Ranger können Unternehmen vor allem in Hadoop-Clustern für Sicherheit sorgen. Die Umgebung bietet Sicherheitsrichtlinien und kann deren Umsetzung überwachen. Vor allem für Workloads, Abfragen und Batch-Aufgaben bietet Ranger die Möglichkeit, mehr Sicherheit zu integrieren, indem Richtlinien erfasst und umgesetzt werden. Der Vorteil von Ranger ist, dass die Lösung auch eng mit YARN, SOlr, Falcon und Apache Kafka zusammenarbeitet und sich auch in diese Lösungen integrieren lässt. Auf diesem Weg sichern Unternehmen Kafka und den Rest der Big-Data-Infrastruktur vor Angreifern oder gefährlichen Daten ab. Eine Liste der möglichen Koexistenzen mit anderen Apache-Projekten ist auf der Seite der Entwickler zu finden.

Kafka verwalten

Wie für viele Apache-Projekte im Big-Data-Bereich, so gibt es auch für Apache Kafka verschiedene Werkzeuge zur Verwaltung. Optimal verwalten lässt sich Kafka mit der Open-Source-Lösung Kafka Manager. Zusätzlich steht eine Webkonsole für Apache Kafka zur Verfügung.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43519968 / Infrastruktur)