V7_Elastic Stack Flashcards
Elastic Stack
Der Elastic Stack, auch bekannt als ELK Stack, ist ein Paket von Open-Source-Softwareprodukten, die von der Firma Elastic entwickelt wurden. Er besteht aus drei Hauptkomponenten: Elasticsearch, Logstash und Kibana. Jede dieser Komponenten erfüllt eine spezifische Funktion:
Was bedeutet Volltextsuche?
Volltextsuche ist eine spezielle Art der Suche, die mehr kann als nur einfaches Finden von Zeichenketten in einem Text. Sie bietet verschiedene Techniken und Funktionen, um eine effiziente und relevante Suche zu ermöglichen:
Tokenizing: Dieser Prozess teilt den Text in kleinere Teile, meist Worte, auf. Das hilft der Suchmaschine, den Text besser zu verstehen. Stemming: Hier werden Worte auf ihre Grundform reduziert. Das bedeutet, dass verschiedene Formen eines Wortes (zum Beispiel Singular, Plural, Konjugationen) als das gleiche Wort behandelt werden. Filtering: Manche Worte, oft Füllworte wie "und", "oder", "das", werden bei der Suche ignoriert, da sie oft keine relevante Information enthalten. Geo-Location Suche: In manchen Fällen kann die geografische Position in die Suche einbezogen werden. Das ist besonders nützlich für lokale Suchanfragen. Ranking der Ergebnisse: Die Suchmaschine ordnet die Suchergebnisse nach Relevanz. Das kann zum Beispiel daran gemessen werden, wie oft das gesuchte Wort in einem Dokument vorkommt. Such-Index: Ein Index wird genutzt, um die Suche zu beschleunigen. Statt das ganze Dokument zu durchsuchen, sucht die Maschine nur im Index. Invertierter Index: Dabei handelt es sich um einen speziellen Typ des Such-Indexes. Er listet alle Suchbegriffe und zu jedem Begriff die Stellen, an denen er in den Dokumenten vorkommt.
Vereinfacht gesagt, macht die Volltextsuche die Suche in Texten einfacher und schneller, indem sie den Text in handhabbare Teile zerlegt, irrelevante Informationen filtert und den Suchprozess mit Hilfe von Indexen beschleunigt. Sie liefert auch relevantere Ergebnisse, indem sie die Suchergebnisse nach ihrer Relevanz sortiert.
In Elasticsearch aber auch..
Suche nach Geo-Locations, inkls. Entfernungen (Umkreis-Suche),
Suche nach Datums- und Zeitangabe, inkl. Suche nach Bereichen,
Relevanz-Scroring der Ergebnisse, beeinflussbar
Dokument
Ist ein Datensatz, sprich eine Sammlung von Schlüssel-Werte Paaren, im JSON Format
Index
Ist eine Zusammenstellung von Dokumenten.
Wie eine Collection in Firebase..
Gleich benannte Felder von Dokumenten im selben Index müssen auch vom selben Datentyp sein .
Elasticsearch Cluster
Bestehen aus mehreren Elasticsearch Nodes.
Cluster über den Cluster-Namen identifiziert. Beim Hinzufügen eines Knotens muss der Cluster-Name angegeben werden.
Anfragen können an jeden Knoten des Clusters gerichtet werden. Anfragen werden dann automatisch verteilt um die Performance zu erhöhen.
Höhere Performance und/oder Ausfallsicherheit durch Clustering.
Sharding im Elasticsearch Cluster
Bedeutet das Aufteilen eines Indexes in mehrere Teile, da dass jede Shard nur einen Teil des Indexes speichert.
Z.B. wenn der Index so groß wird, dass der Knoten ihn nicht mehr verwalten / speichern kann.
Oder wenn die Updates eines Gesamt-Index beim Einfügen neuer Daten zu lange dauern.
Jede Shard kann Replicas haben: höhere Performance, Ausfallsicherheit.
Replicas von Elasticsearch Shards
Replizieren den Datenbestand der Shard.
Suchanfragen n der Shard können auf die Repliken verteilt werden: Performance.
Ausfallsicherheit der Shard durch Redundanz mittels der Replica.
Logstash:
Logstash ist ein mächtiger Datenverarbeitungspipeline-Server, der in erster Linie dazu dient, Daten aus verschiedenen Quellen zu sammeln, zu transformieren und dann an eine gewünschte Zielplattform weiterzuleiten. Die Hauptaufgaben von Logstash können in drei Schritten detaillierter beschrieben werden:
Daten sammeln (Data Collection): Logstash kann Daten aus einer Vielzahl von Quellen einsammeln. Beispiele sind Log-Dateien, Datenbanken, APIs und mehr. Der Input kann auf verschiedene Weisen definiert werden, darunter auch dateibasiert. Daten verarbeiten (Data Processing): Nach dem Sammeln der Daten, verarbeitet Logstash diese durch Parsing und Identifizierung von Strukturen. Dabei werden rohe Daten in eine strukturierte Form gebracht, um die Datenanalyse zu vereinfachen. Es kann auch eine Transformation der Daten durchgeführt werden, um beispielsweise Daten zu bereinigen oder zu normieren, bevor sie an die Zielplattform weitergeleitet werden. Daten weiterleiten (Data Shipping): Nach der Verarbeitung sendet Logstash die transformierten und strukturierten Daten an die gewünschten Zielsysteme. Eine gängige Zielsystem ist Elasticsearch, ein Echtzeitsuch- und Analyse-Engine, die oft zusammen mit Logstash und Kibana als Teil des ELK Stack (Elasticsearch, Logstash, Kibana) verwendet wird.
Zusammengefasst sorgt Logstash also für das Einlesen, die Verarbeitung und die Weiterleitung von Daten in einer organisierten und effizienten Weise. Es ist flexibel einsetzbar und kann leicht an verschiedene Datenquellen und -ziele angepasst werden.
Kibana.
Kibana ist eine Open-Source-Visualisierungsplattform, die in erster Linie dazu dient, Daten zu analysieren und in verständlicher, grafischer Form darzustellen. Sie ist speziell darauf ausgerichtet, mit Elasticsearch zusammenzuarbeiten, kann aber auch andere Datenquellen nutzen. Hier sind die Hauptfunktionen von Kibana:
Datenanalyse: Mit Kibana können Benutzer ihre Daten durchsuchen und analysieren. Die Anwendung ermöglicht es, komplexe Datenabfragen durchzuführen und die Ergebnisse auf verschiedene Weise zu filtern und zu sortieren. Datenvisualisierung: Kibana ist besonders nützlich, um die analysierten Daten in visueller Form darzustellen. Es bietet eine Vielzahl von Diagrammtypen, darunter Histogramme, Kreisdiagramme, Linien-, Balken- und Flächendiagramme, sowie spezielle Typen wie Geo-Maps für geografische Daten. Dashboard-Konfiguration: Kibana ermöglicht es den Benutzern, personalisierte Dashboards zu erstellen. Diese Dashboards können eine oder mehrere Datenvisualisierungen enthalten und sind interaktiv, so dass Benutzer die angezeigten Daten nach Bedarf anpassen können.
Zusammenfassend lässt sich sagen, dass Kibana ein mächtiges Werkzeug für die interaktive Datenanalyse und -visualisierung ist. Es kann komplexe Datenmengen in verständliche und aussagekräftige grafische Darstellungen umwandeln, die es Benutzern erleichtern, Muster und Trends in ihren Daten zu erkennen.
Beats
Beats ist eine Sammlung von Datenversendungsprogrammen, die als leichte und effiziente Agenten auf Ihren Maschinen laufen. Jeder Beat ist speziell für eine bestimmte Art von Datensammlung konzipiert und sie alle teilen das gemeinsame Ziel, diese Daten zu sammeln und an einen zentralen Ort zu senden, wie z.B. Logstash oder Elasticsearch. Hier sind die Hauptfunktionen von Beats:
Spezialisierte Datensammler: Beats besteht aus einer Reihe von "Shippers" (Datenversendern), von denen jeder für einen speziellen Anwendungsfall entwickelt wurde. Zum Beispiel sammelt Filebeat Logdateien, Metricbeat sammelt Metriken von Ihrem System und Ihren laufenden Anwendungen, Packetbeat sammelt Netzwerkdaten und so weiter. Leichtgewichtig und effizient: Beats-Agenten sind so konzipiert, dass sie wenig Ressourcen verbrauchen und trotzdem effizient arbeiten. Sie können auf Hunderten oder sogar Tausenden von Maschinen in Ihrem Netzwerk installiert werden, um Daten zu sammeln. Senden von Daten: Nachdem die Daten gesammelt wurden, senden die Beats-Agenten sie an einen zentralen Ort für die weitere Verarbeitung und Analyse. Dies kann Logstash sein (für weitere Verarbeitung vor der Speicherung) oder Elasticsearch (für Speicherung und Suche).
Zusammenfassend ist Beats eine Suite von Datenversendern, die es ermöglichen, spezifische Arten von Daten aus Ihrem gesamten Netzwerk zu sammeln und zu zentralisieren. Sie sind ein wichtiger Teil des Elastic Stack, da sie die Rohdaten liefern, die dann von Logstash verarbeitet und von Elasticsearch gespeichert und indiziert werden, bevor Kibana sie visualisiert.