Menü

Elasticsearch Architecture: 7 Key Components

Inhalt

Diese Seite teilen

Yifat Perry
Yifat Perry

Elasticsearch-Architektur: 7 Schlüsselkomponenten

Was ist Elasticsearch?

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.

 

 

Was sind die Hauptanwendungen von Elasticsearch?

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:

  • Volltextsuche für Dokumente, Produkte oder E-Mails
  • Log- und Metrik-Analysen für Monitoring und Observability
  • Security Analytics und SIEM-Anwendungsfälle
  • Ad-hoc-Analysen auf großen Datenmengen

Elasticsearch kann sowohl in der Cloud als auch on-premises betrieben werden, selbst gehostet oder als verwalteter Dienst (z. B. in AWS).

 

Wie funktioniert Elasticsearch?

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:

  • Diagramme wie Linien-, Balken- und Kreisdiagramme erstellen,
  • Karten und Geodaten visualisieren,
  • Dashboards aufbauen und teilen,
  • mit Canvas dynamische Infografiken bereitstellen.

 

Elasticsearch-Architektur: Schlüsselkomponenten

Die Elasticsearch-Architektur ist auf Skalierbarkeit, Flexibilität und Resilienz ausgelegt. Die wichtigsten Bausteine sind Cluster, Knoten, Shards, Replikate, Analysatoren und Dokumente.

Elasticsearch-Cluster

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:

  • die Anzahl der Knoten,
  • die IP-Adressen bzw. Hosts der Server,
  • weitere Einstellungen in 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.

Elasticsearch-Knoten

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:

  • Masterknoten – steuert den Clusterzustand, koordiniert die Erstellung und Löschung von Indizes und verwaltet clusterweite Operationen. Der Master verteilt den jeweils gültigen Cluster State an alle anderen Knoten.
  • Datenknoten – speichern die Daten und die invertierten Indizes. Sie führen Such- und Aggregationsanfragen aus und sind der Standardknotentyp.
  • Client- bzw. Koordinationsknoten – dienen als Lastverteiler, nehmen Anfragen entgegen und verteilen sie auf die zuständigen Datenknoten. Sie aggregieren die Ergebnisse und liefern sie an den Client zurück.

Ports 9200 und 9300

Elasticsearch nutzt zwei zentrale Ports:

  • Port 9200 – dient der Kommunikation mit Clients über REST-APIs. Hier laufen Suchanfragen, Indexoperationen und Verwaltungsbefehle ein.
  • Port 9300 – wird für die interne Kommunikation zwischen Knoten verwendet (Transportschicht) und ist essenziell für Clusterbildung und Replikation.

Elasticsearch Shards

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:

  • die Verteilung von Daten und Last auf mehrere Knoten,
  • eine bessere Performance bei Suche und Aggregationen,
  • flexibles horizontales Skalieren.

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.

Elasticsearch-Replikate

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.


Elasticsearch-Analysatoren

Analysatoren zerlegen Text in seine Bestandteile, bevor er in den Index geschrieben wird. Der Analyseprozess besteht typischerweise aus:

  • einem Tokenizer, der eine Zeichenfolge in Tokens (Begriffe) zerlegt,
  • einer Kette von Tokenfiltern, die Tokens normalisieren (z. B. Kleinschreibung, Stemming, Stopwort-Filter).

Durch geeignete Analysatoren wird sichergestellt, dass Suchanfragen mit der gleichen Logik aufbereitet werden wie die indexierten Inhalte, eine zentrale Grundlage für relevante Suchergebnisse.

Elasticsearch-Dokumente

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.

 

Elasticsearch-Speicher mit Cloud Volumes ONTAP

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:

  • Hochverfügbarkeit und integrierten Datenschutz,
  • Speichereffizienz durch Thin Provisioning, Komprimierung und Deduplizierung,
  • Integration in Kubernetes-Umgebungen,
  • flexible Unterstützung von SAN- und NAS-Workloads, einschließlich NFS-Freigaben für Big-Data- und Analytics-Cluster.

So lassen sich Elasticsearch-Deployments in der Cloud kosteneffizienter, widerstandsfähiger und besser skalierbar betreiben.

Drift chat loading