Realtime Analytics mit Apache Kafka So analysieren Sie Logdateien mit Open Source Software
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.
Anbieter zum Thema

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.
(ID:43519968)