Elasticsearch ist eine kostenlose Open-Source-Such- und Analyse-Engine auf Basis von Apache Lucene. Die Lösung ist verteilt angelegt und unterstützt alle Datentypen – von numerischen und textuellen über strukturierte und unstrukturierte Daten bis hin zu Geodaten. Dank einfacher REST-APIs, hoher Skalierbarkeit und schneller Suchabfragen eignet sich Elasticsearch ideal für moderne Datenplattformen.
Elasticsearch ist ein zentraler Bestandteil des Elastic Stack, einer Sammlung von Open-Source-Tools für Datenerfassung, -speicherung, -anreicherung, -visualisierung und -analyse. Zum Stack gehören insbesondere Elasticsearch, Logstash und Kibana (ELK).
Die Elasticsearch-Architektur nutzt den Lucene-Indexierungsaufbau und kombiniert ihn mit einem verteilten Modell: Indizes werden in kleine, verteilbare Einheiten (Shards) aufgeteilt, die über mehrere Knoten hinweg skaliert werden können.
Elasticsearch ist eine skalierbare Such- und Analyselösung mit Mandantenfähigkeit und nahezu Echtzeitsuche. Sie können damit verschiedenste Datenquellen zentral durchsuchen: Protokolle, Metriken, Traces, Dokumente, Produktkataloge, E-Mails und mehr.
Die Engine erfasst Daten aus mehreren Quellen, speichert und indiziert sie nach vordefinierten, manuellen oder automatisierten Mappings. Durch die verteilte Architektur lassen sich auch sehr große Datenmengen nahezu in Echtzeit durchsuchen und analysieren. Sie können klein starten und bei Bedarf auf Dutzende oder Hunderte Knoten skalieren.
Typische Einsatzszenarien sind:
Elasticsearch kann sowohl in der Cloud als auch on-premises betrieben werden, selbst gehostet oder als verwalteter Dienst (z. B. in AWS).
Elasticsearch nutzt sogenannte Beats, um Rohdaten aus unterschiedlichen Quellen in den Stack zu übertragen. Nach der Aufnahme durchlaufen die Daten einen Ingest-Prozess: Sie werden analysiert, normalisiert, angereichert und für die Indizierung vorbereitet.
Sind die Daten erst einmal indiziert, können Nutzer komplexe Abfragen formulieren und mit Aggregationen aussagekräftige Zusammenfassungen und Statistiken erzeugen, etwa für Dashboards, Anomalie-Erkennung oder Reports.
Für die Visualisierung und Verwaltung steht mit Kibana ein webbasiertes UI zur Verfügung. Dort lassen sich unter anderem:
Die Elasticsearch-Architektur ist auf Skalierbarkeit, Flexibilität und Resilienz ausgelegt. Die wichtigsten Bausteine sind Cluster, Knoten, Shards, Replikate, Analysatoren und Dokumente.
Ein Elasticsearch-Cluster besteht aus einer Gruppe von Knoten, die gemeinsam Daten speichern und Such-/Indexierungsoperationen ausführen. Beim Einrichten eines Clusters legen Sie unter anderem fest:
config/elasticsearch.yml.Knoten eines Clusters sind miteinander verbunden und halten jeweils einen Teil der Gesamtdaten. Üblicherweise betreiben Unternehmen einen oder wenige Cluster pro Umgebung (z. B. Dev, Test, Produktion). Starten Sie einen neuen Knoten ohne weitere Konfiguration, erzeugt Elasticsearch in der Regel automatisch einen neuen Cluster oder lässt den Knoten einem bestehenden beitreten.
Ein Knoten ist eine Elasticsearch-Instanz, die Teil eines Clusters ist. Dabei gilt: Ein Knoten ist eine Instanz, nicht zwingend eine physische Maschine, mehrere Knoten können auf einem Host laufen. Standardmäßig wird beim Start einer Instanz ein Knoten erzeugt.
Es gibt drei zentrale Knotentypen:
Elasticsearch nutzt zwei zentrale Ports:
Die Größe eines Index ist grundsätzlich nicht begrenzt. Wird ein Index jedoch zu groß, kann er die Ressourcen einer einzelnen Maschine überlasten. Deshalb teilt Elasticsearch Indizes in mehrere Shards auf.
Shards sind kleinere, skalierbare Indexierungsbausteine und ermöglichen:
Jeder Shard ist ein eigenständiger Lucene-Index, der auf einem beliebigen Knoten im Cluster liegen kann. Die Anzahl der Shards definieren Sie bei der Indexerstellung, Replikate können nachträglich angepasst werden.
In Elasticsearch sind Replikate Kopien von Index-Shards. Replikate dienen als ausfallsicherer Mechanismus für Backup- und Wiederherstellungszwecke. Replikate werden niemals auf dem Knoten platziert, der die ursprünglichen (primären) Shards enthält.
Um die Verfügbarkeit zu gewährleisten, werden Replikate an verschiedenen Orten gespeichert. Sie können nach der Indexerstellung eine Replikase definieren und so viele Replikate wie möglich erstellen. Das bedeutet, dass Sie mehr Replikate als primäre Shards speichern können.
Analysatoren zerlegen Text in seine Bestandteile, bevor er in den Index geschrieben wird. Der Analyseprozess besteht typischerweise aus:
Durch geeignete Analysatoren wird sichergestellt, dass Suchanfragen mit der gleichen Logik aufbereitet werden wie die indexierten Inhalte, eine zentrale Grundlage für relevante Suchergebnisse.
Die Grundeinheit der Datenhaltung in Elasticsearch ist das Dokument. Dokumente werden als JSON-Objekte gespeichert und können verschachtelte Strukturen enthalten, was komplexe Datenmodelle und Abfragen ermöglicht.
Zur Verwaltung von Metadaten verwendet Elasticsearch spezielle Felder mit vorangestelltem Unterstrich (z. B. _id, _index). Über diese Felder lassen sich Dokumente eindeutig identifizieren, adressieren und versionieren.
NetApp Cloud Volumes ONTAP, eine führende Speicherverwaltungslösung für Unternehmen, stellt sichere und bewährte Storage-Services auf AWS, Azure und Google Cloud bereit. Cloud Volumes ONTAP unterstützt Kapazitäten bis zu 368 TB und deckt zahlreiche Anwendungsfälle ab, von Dateidiensten und Datenbanken über DevOps bis hin zu weiteren Unternehmens-Workloads.
Für Elasticsearch-Cluster bietet Cloud Volumes ONTAP unter anderem:
So lassen sich Elasticsearch-Deployments in der Cloud kosteneffizienter, widerstandsfähiger und besser skalierbar betreiben.