Elastic Stack
Der Elastic Stack ist eine Gruppe von Open-Source-Produkten von Elastic, die Benutzern dabei helfen sollen, Daten aus beliebigen Quellen und in beliebigen Formaten zu nutzen und diese Daten in Echtzeit zu durchsuchen, zu analysieren und zu visualisieren. Die Produktgruppe war früher unter dem Namen ELK Stack für die Kernprodukte der Gruppe –Elasticsearch, Logstash und Kibana – bekannt, wurde aber in Elastic Stack umbenannt. Ein viertes Produkt, Beats, wurde dem Stack später hinzugefügt. Der Elastic Stack kann vor Ort eingesetzt oder als Software-as-a-Service (SaaS) zur Verfügung gestellt werden. Elasticsearch unterstützt Amazon Web Services (AWS), Google Cloud Platform und Microsoft Azure.
Was sind 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.
Im Folgenden werden die Kernprodukte des Elastic Stack und ihre Funktionalitäten beschrieben:
- Elasticsearch ist eine verteilte RESTful-Suchmaschine, die auf Apache Lucene aufbaut und unter einer Apache-Lizenz veröffentlicht wurde. Sie ist Java-basiert und kann Daten einlesen sowie Dokumentdateien in verschiedenen Formaten durchsuchen und indizieren.
- Logstash ist eine Datensammelmaschine, die Daten aus verschiedenen Quellen vereinheitlicht, Datenbanknormalisierung bietet und die Daten verteilt. Das Produkt wurde ursprünglich für Protokolldaten optimiert, hat aber seinen Anwendungsbereich erweitert, um Daten aus allen Quellen zu erfassen.
- Kibana ist ein Open-Source-Tool zur Datenvisualisierung und -exploration, das auf große Mengen von Streaming- und Echtzeitdaten spezialisiert ist. Die Software macht komplexe Datenströme durch grafische Darstellung einfacher und schneller verständlich.
- Beats sind Data Shipper, die auf Servern als Agenten installiert werden, um verschiedene Arten von Betriebsdaten entweder direkt oder über Logstash an Elasticsearch zu senden, wo die Daten verbessert oder archiviert werden können.
Wer nutzt den Elastic Stack und warum?
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.
Im Folgenden werden beliebte Anwendungsfälle für den Elastic Stack aufgeführt:
- Big Data. Unternehmen mit großen Mengen an unstrukturierten, semistrukturierten und strukturierten Datensätzen können den Elastic Stack für ihre Datenoperationen nutzen. Netflix, Facebook und LinkedIn sind Beispiele für erfolgreiche Unternehmen, die den Stack nutzen.
- Anwendungen mit komplexen Suchanforderungen. Jede Anwendung mit komplexen Suchanforderungen kann von der Verwendung des Elastic Stack als zugrunde liegende Engine für erweiterte Suchvorgänge stark profitieren.
- Andere prominente Anwendungsfälle. Der Elastic Stack wird in den Bereichen Infrastrukturmetriken und Containerüberwachung, Protokollierung und Protokollanalyse, Überwachung der Anwendungsleistung, Analyse und Visualisierung von Geodaten, Sicherheits- und Geschäftsanalysen sowie Scraping und Kombination öffentlicher Daten eingesetzt.
Nachfolgend sind wichtige Gründe aufgeführt, warum Unternehmen die Integration des Elastic Stack in ihre täglichen Abläufe in Betracht ziehen könnten:
- Kostenlos und quelloffen (Open Source). Einer der größten Vorteile des ELK Stack ist, dass er quelloffen ist und kostenlos genutzt werden kann. Unternehmen müssen keine Vorab- oder laufenden Softwarelizenzgebühren zahlen, um die Vorteile dieser Stack-Plattform zu nutzen.
- Zentralisierte Protokollierung. Der ELK Stack bietet zentralisierte Protokollierungsfunktionen, um Serverprotokolle aus komplexen Cloud-Umgebungen in einem einzigen durchsuchbaren Index zusammenzufassen. Dies hilft bei der Sicherheitsüberwachung und der Ursachenanalyse, da Daten aus verschiedenen Quellen korreliert werden können.
- Mehrere Hosting-Optionen. Der ELK Stack bietet eine Reihe von Hosting-Optionen. Ein Unternehmen, das über die entsprechenden Ressourcen verfügt, kann ihn auf einem lokalen Server installieren und selbst verwalten. Unternehmen können den ELK Stack auch als verwalteten Service mit Produkten wie Amazon OpenSearch bereitstellen, indem sie eine Partnerschaft mit einem spezialisierten Anbieter von verwalteten Services eingehen.
- Visualisierung und Analyse von Daten in Echtzeit. Kibana des Elastic Stack ermöglicht es Benutzern, komplexe Strukturen in Echtzeit zu interpretieren und zu verstehen, indem Daten in visuelle Darstellungen wie Diagramme und Histogramme umgewandelt werden.
- Der ELK Stack ist skalierbar und funktioniert in allen Arten von Infrastrukturen, einschließlich SaaS, Container oder Bare Metal, Private Cloud und 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.
- Clients in mehreren Programmiersprachen. Der Elastic Stack ermöglicht es Unternehmen, Elasticsearch für mehrere Sprachen in der Codebasis einzusetzen. Der Elastic Stack hat offizielle Clients für mindestens 12 Programmiersprachen veröffentlicht, darunter JavaScript, Python, .NET und Perl. Elastic bietet auch Support und Bugfixes für alle Clients und unterstützt Abfragen.
So nutzen Sie den Elastic Stack
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 ELK-Stack können diese Komponenten zusammen eingesetzt werden, um Protokolldaten zu aggregieren, zu indizieren und zu durchsuchen, Prozesse zu transformieren und Datenvisualisierungen zu erstellen.
Wie setzen erfolgreiche Unternehmen den Elastic Stack ein?
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 ELK auch für seine automatische Replikation, sein flexibles Schema und seine zahlreichen Plug-ins.
- Diese 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 ELK-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.
- Diese 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.
Elastic Stack - Herausforderungen und Problemlösungen
Obwohl der ELK Stack unbestreitbare Vorteile für Unternehmen bietet, treten manchmal Probleme und Herausforderungen auf. Im Folgenden finden Sie einige bekannte Probleme mit dem Elastic Stack und einige Abhilfen:
Begrenzte Speicherkapazität. Wenn ein ELK Stack in einer Multisystem- und Anwendungsumgebung eingesetzt wird, können riesige Datenmengen erzeugt werden. Wenn ein Unternehmen die unkritischen Protokolle nicht effizient filtert, analysiert und verwirft, können Speicherplatz und Kosten außer Kontrolle geraten. Das Problem tritt häufig bei lokalen ELK-Stack-Implementierungen auf, bei denen eine große Anzahl von Protokolldateien auf herkömmlichen Festplattenspeichern gespeichert werden kann, so dass die Speicherkapazität für die ELK-Ausgaben nicht ausreicht. Dies gilt auch für unternehmenskritische Protokolldateien, die zunächst gesichert und dann separat in einer isolierten Umgebung gespeichert werden müssen, was die Speicherkapazität weiter verringert.
- 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.
Schlechte Indizierung. Die in Elasticsearch und dem ELK 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 ELK 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.
- 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.
Vernetzungsprobleme. Auf einen ELK Stack werden spezifische Netzwerkregeln angewendet, und jedes Netzwerkproblem kann sich auf den gesamten Stack auswirken. Wenn beispielsweise Logstash auf dem ELK-Server gehostet wird, können die Client-Server die Verbindung unterbrechen oder eine Zeitüberschreitung verursachen.
- 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.
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 ELK 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.
- Unternehmen können ein auf maschinellem Lernen basierendes Protokollierungsprodukt wie Splunk oder Coralogix verwenden, um die negativen Auswirkungen dieser Protokolle zu vermeiden.