Definition

Elastic Stack

Der Elastic Stack, früher als ELK Stack bekannt, ist eine Gruppe von Open-Source-Produkten von Elastic, die Benutzern dabei helfen, Daten aus beliebigen Quellen und in beliebigen Formaten zu nutzen und diese Daten in Echtzeit zu durchsuchen, zu analysieren und zu visualisieren. Die Kernprodukte des Stacks sind Elasticsearch, Logstash, Kibana und Beats. Der Elastic Stack kann vor Ort eingesetzt oder als Software-as-a-Service (SaaS) genutzt werden, wobei Elasticsearch Amazon Web Services (AWS), Google Cloud Platform und Microsoft Azure unterstützt.

Die Kernprodukte des Elastic Stack

Das Unternehmen Elastic wurde 2012 in Amsterdam gegründet, um die Entwicklung von Elasticsearch und verwandten kommerziellen Produkten und Dienstleistungen zu unterstützen. Die Kernprodukte des Elastic Stack umfassen:

  • Elasticsearch: Eine verteilte RESTful-Suchmaschine, die auf Apache Lucene aufbaut. Sie ist Java-basiert und kann Daten einlesen sowie Dokumentdateien in verschiedenen Formaten durchsuchen und indizieren.
  • Logstash: Eine Datensammelmaschine, die Daten aus verschiedenen Quellen vereinheitlicht, Datenbanknormalisierung bietet und die Daten verteilt. Ursprünglich für Protokolldaten optimiert, hat es seinen Anwendungsbereich erweitert, um Daten aus allen Quellen zu erfassen.
  • Kibana: Ein Open-Source-Tool zur Datenvisualisierung und -exploration, spezialisiert auf große Mengen von Streaming- und Echtzeitdaten. Es macht komplexe Datenströme durch grafische Darstellung einfacher und schneller verständlich.
  • Beats: Data Shipper, die auf Servern als Agenten installiert werden, um verschiedene Arten von Betriebsdaten entweder direkt oder über Logstash an Elasticsearch zu senden.
Abbildung 1: Die Kernfunktionen von Elastic Stack im Kurzüberblick.
Abbildung 1: Die Kernfunktionen von Elastic Stack im Kurzüberblick.

Neue Entwicklungen und Erweiterungen

In den vergangenen Jahren hat Elastic den Stack kontinuierlich weiterentwickelt und verschiedene Funktionalitäten hinzugefügt. Dazu gehören:

  • Elastic Security: Eine integrierte Lösung für SIEM (Security Information and Event Management) und Endpoint Security, die auf dem Elastic Stack aufbaut.
  • Elastic Observability: Ein umfassendes Tool für Anwendungs- und Infrastrukturüberwachung, das Logs, Metrikenund APM (Application Performance Monitoring) in einer einzigen Plattform vereint.
  • Elastic Enterprise Search: Eine Suchplattform, die es Unternehmen ermöglicht, alle ihre Inhalte und Daten durchsuchbar zu machen.

Anwendungsfälle und Nutzer

Der Elastic Stack weist eine steilere Lernkurve auf als einige vergleichbare Produkte und erfordert mehr Setup, was zum Teil auf seinen Open-Source-Charakter zurückzuführen ist.

Der Elastic Stack wird in verschiedenen Bereichen eingesetzt, darunter die folgenden:

  • Big-Data-Analysen
  • Komplexe Suchanwendungen
  • Infrastrukturüberwachung und Containermonitoring
  • Protokollierung und Protokollanalyse
  • Anwendungsleistungsüberwachung
  • Analyse und Visualisierung von Geodaten
  • Sicherheits- und Geschäftsanalysen
  • Scraping und Kombination öffentlicher Daten

Prominente Nutzer des Elastic Stack sind unter anderem Netflix, LinkedIn, SoundCloud, GitHub und Tripwire.

Vorteile des Elastic Stack

Nachfolgend sind wichtige Gründe und Vorteile aufgeführt, warum Unternehmen die Integration des Elastic Stack in ihre täglichen Abläufe in Betracht ziehen:

Open Source und kostenlos: Der Elastic Stack ist quelloffen und kann kostenlos genutzt werden, was Unternehmen Lizenzkosten spart. Es müssen zudem keine Vorabinvestitionen getätigt werden.

Zentralisierte Protokollierung: Ermöglicht die Zusammenfassung von Serverprotokollen aus komplexen Cloud-Umgebungen in einem durchsuchbaren Index. Dies unterstützt die Sicherheitsüberwachung und Ursachenanalyse, da hier Daten aus verschiedenen Quellen korreliert werden.

Flexible Hosting-Optionen: Kann lokal (selbstverwaltet), in der Cloud oder als verwalteter Service betrieben werden, zum Beispiel mit Amazon OpenSearch.

Echtzeit-Datenvisualisierung: Kibana ermöglicht die Interpretation komplexer Datenstrukturen in Echtzeit. Daten werden zum besseren Verständnis in visuelle Darstellungen wie Diagramme oder Histogramme umgewandelt.

Skalierbarkeit: Funktioniert in verschiedenen Infrastrukturen, einschließlich SaaS, ContainerBare MetalPrivate Cloudund Public Cloud. Elasticsearch ist zum Beispiel ein verteilter Dokumentenspeicher, der komplexe Daten als JavaScript Object Notation-Dokumente speichert. Dadurch lässt er sich leicht skalieren und in jeder großen Organisation implementieren.

Mehrsprachige Unterstützung: Bietet offizielle Clients für mindestens 12 Programmiersprachen. Dabei werden offiziell zehn Sprachen unterstützt: Java, Python, JavaScript/Node.js, RubyGo.NET/C#, PHP, Perl, R und Rust. Zusätzlich zu den offiziellen Clients gibt es viele Community-basierte Integrationen für weitere Sprachen, die eine Interaktion mit Elasticsearch über RESTful HTTP-APIs ermöglichen. Über Logstash und Beats können zudem Daten aus nahezu jeder Programmiersprache oder Anwendung gesammelt und an Elasticsearch weitergeleitet werden.

Wie lässt sich Elastic Stack nutzen?

Um den Elastic Stack zu nutzen, sollten die Anwender zunächst die drei Open-Source-Softwareprodukte – Elasticsearch, Logstash und Kibana – über die entsprechenden Links auf der Elastic-Website herunterladen. Nachdem die Dateien entpackt wurden, können die Benutzer diese Programme auf ihrem lokalen System einrichten.

Nach den ersten Schritten mit dem Elastic Stack können diese Komponenten zusammen eingesetzt werden, um Protokolldaten zu aggregieren, zu indizieren und zu durchsuchen, Prozesse zu transformieren und Datenvisualisierungen zu erstellen.

Welche Unternehmen verwenden Elastic Stack?

Im Folgenden finden Sie Beispiele aus der Praxis einiger erfolgreicher Unternehmen und wie sie den Stack nutzen:

  • Netflix, ein beliebter Film- und Content-Streaming-Dienst, verlässt sich in hohem Maße auf den Elastic Stack, um Kundendienstvorgänge und sicherheitsrelevante Protokolle zu überwachen und zu analysieren. Das Unternehmen nutzt Elastic Stack auch für seine automatische Replikation, sein flexibles Schema und seine zahlreichen Plug-ins.
  • LinkedIn ist eine beliebte Social-Networking-Plattform für Fachleute nutzt den Elastic Stack mit Apache Kafka, um die Leistung und Sicherheit zu überwachen und ihre Datenströme in Echtzeit aufzunehmen und zu verarbeiten. Der Elastic-Stack-Betrieb von LinkedIn umfasst mehr als 100 Cluster in mehr als 20 Teams und sechs Rechenzentren.
  • SoundCloud, eine Online-Plattform für Audio-Streaming und -Vertrieb, verwendet Elasticsearch für seine Echtzeit-Such- und Analyse-Engine, die Millionen von Nutzern weltweit bedient.
  • Lyft ist eine Mitfahrgelegenheitsplattform, die Fahrgäste mit Fahrern verbindet, setzt Elasticsearch erfolgreich für die Analyse von Betriebsprotokollen ein.
  • GitHub, das weltweit größte Repository für Entwickler zur Speicherung und Verwaltung ihres Codes, nutzt Elasticsearch zur Indizierung von mehr als 8 Millionen Code-Repositories sowie von wichtigen Ereignisdatenquellen.
  • Tripwire konzentriert sich auf Sicherheits- und Compliance-Automatisierung und nutzt den Elastic Stack, um die Analyse von Informationspaketen und Logs durchzuführen.

Herausforderungen und Lösungen

Trotz seiner Vorteile kann der Elastic Stack einige Herausforderungen mit sich bringen. Wir haben einige bekannte Probleme im Folgenden augeführt und erklären Lösungsoptionen

1. Begrenzte Speicherkapazität: Kommt Elastic Stack in einer Multisystem- und Anwendungsumgebung zum Einsatz, so werden enorme Datenmengen generiert. Wenn ein Unternehmen die unkritischen Protokolle nicht effizient filtert, analysiert und verwirft, können Speicherplatz und Kosten schnell anwachsen. Das Problem tritt häufig bei lokalen Elastic-Stack-Implementierungen auf, bei denen eine große Anzahl von Protokolldateien (Log Files) auf herkömmlichen Festplattenspeichern gespeichert werden kann, so dass die Speicherkapazität für die Elastic-Stack-Ausgaben nicht ausreicht. Dies gilt auch für unternehmenskritische Protokolldateien, die zunächst in einem Backup gesichert und dann separat in einer isolierten Umgebung gespeichert werden müssen, was die Speicherkapazität weiter verringert.

  • Lösungsansatz: Cloud-basierte Speicherung ist eine gute Option, da sie ein höheres Maß an Flexibilität bei den Protokolldateien und die Skalierbarkeit von On-Demand-Ressourcen bietet. Cloud-basierte Speicherung ist auch billiger als herkömmliche Festplattenspeicherung, aber die meisten Unternehmen halten interne Experten für die Verwaltung der zugrunde liegenden Cloud-Infrastruktur vor. Entscheidet sich ein Unternehmen beispielsweise für den webbasierten Cloud-Speicherdienst Amazon Simple Storage Service (AWS), kann es die verschiedenen Amazon-S3-Speicherklassen je nach Leistungs- und Speicherbedarf bewerten und auswählen.

2. Indizierungsprobleme: Die in Elasticsearch und dem Elastic Stack indizierten Daten werden in einem oder mehreren Indizes gespeichert. Diese Indizes sind sowohl für die Verteilung als auch für die Trennung der Daten verantwortlich, was jedoch manchmal zu Komplikationen führen kann. Da der gesamte Stack miteinander verbunden ist, ist die Funktion der Schreibindizes wahrscheinlich betroffen, wenn ein Aspekt des Stacks aktualisiert wird. Dies ist auch ein bekanntes Problem beim Upgrade auf Beats 7.x, wodurch alle Indizes, die von früheren Versionen von Beats erstellt wurden, mit Kibana inkompatibel werden und andere Leistungsprobleme verursachen können.

  • Lösungsansatz: Elastic empfiehlt auf seiner Website, dass vor dem Upgrade von Beats ein vollständiges Upgrade von Elasticsearch und Kibana auf Version 7.0 durchgeführt werden sollte, um das Problem zu lösen. Um den ELK-Stack gesund zu erhalten, sollten Optionen wie das Hinzufügen mehrerer Shards, die Konfiguration von Drosselungen und die Vergrößerung des Indexpuffers in Betracht gezogen werden.

3. Netzwerkprobleme: Für einen Elastic Stack komen spezifische Netzwerkregeln zum Einsatz. Generell kann sich jedes Netzwerksproblem negativ auf den gesamten Stak auswirken. Wird zum Beispiel Logstash auf dem Elastic-Stack-Server gehostet, können die Client-Server die Verbindung unterbrechen oder eine Zeitüberschreitung verursachen.

  • Lösungsansatz: Um Netzwerkprobleme mit dem Stack zu vermeiden, sollten geeignete Routing-Regeln implementiert werden. Wenn die Netzwerkprobleme nach der Bewertung der Routing-Regeln immer noch auftreten, sollten die Firewall-Regeln und Port-Konfigurationen überprüft werden.

4. Übermäßige Protokollierung (Noisy Logs): Anwendungen produzieren Millionen von Protokollen mit niedriger Priorität, die manchmal unübersichtlich werden können. Wenn sie nicht korrekt verwaltet werden, können diese Protokolle Elastic-Stack-Benutzer dazu zwingen, diese irrelevanten Daten zu durchsuchen. Dies kann sich auf die Produktivität auswirken und die Zeit verlängern, die benötigt wird, um einen Fehler aufzuspüren oder neue Geschäftserkenntnisse zu erlangen.

  • Lösungsansatz: Unternehmen können ein auf maschinellem Lernen basierendes Protokollierungsprodukt wie Splunk oder Coralogix verwenden, um die negativen Auswirkungen dieser Protokolle zu vermeiden.
Diese Definition wurde zuletzt im Januar 2025 aktualisiert

Erfahren Sie mehr über Datenverwaltung