Elasticsearch 8 ist eine leistungsstarke und flexible Open-Source-Suchmaschine und -Analyse-Engine, die für ihre Skalierbarkeit, Geschwindigkeit und Echtzeit-Datenindizierungsfunktionen bekannt ist. Die Version 8.x bietet erhebliche Verbesserungen, darunter verbesserte Sicherheitsfunktionen mit einfacher Zertifikatsverwaltung, erweiterte Textsuchfunktionen und effizientere Abfrageausführung. Außerdem wird native Unterstützung für Laufzeitfelder eingeführt, wodurch die Indizierung und Suche von Daten einfacher angepasst werden kann, ohne das zugrunde liegende Schema zu ändern. Diese Verbesserungen machen Elasticsearch 8.x zu einer robusten Lösung für die Verwaltung und Analyse großer Datenmengen.
Um Elasticsearch 8 auf Debian 12, 11 oder 10 zu installieren, können Sie das offizielle APT-Repository von Elasticsearch verwenden. Diese Anleitung führt Sie durch die Schritte zum Einrichten von Elasticsearch und stellt sicher, dass Sie Zugriff auf die neuesten Funktionen und Verbesserungen haben.
Aktualisieren Sie Debian vor der Installation von Elasticsearch
Im ersten Schritt müssen Sie sicherstellen, dass Ihr Debian-Linux-System aktualisiert ist. Dieser Schritt aktualisiert die gesamte vorhandene Software auf die neueste Version und bereitet Ihr System für die Installation vor.
Führen Sie den folgenden Befehl aus, um Ihr Debian-System zu aktualisieren:
sudo apt update && sudo apt upgrade
Installieren der erforderlichen Pakete
Bevor wir Elasticsearch 8 unter Debian installieren, müssen wir bestimmte Voraussetzungen erfüllen. Dazu gehört die Installation einiger erforderlicher Pakete wie software-properties-common, apt-transport-https und curl. Diese Pakete erleichtern die Softwareverwaltung und den Datentransfer über das Netzwerk.
Installieren Sie die erforderlichen Pakete, indem Sie Folgendes ausführen:
sudo apt install software-properties-common apt-transport-https curl -y
Elasticsearch 8 APT Repository unter Debian hinzufügen
Als Nächstes fügen wir das Elasticsearch APT-Repository zu unserem Debian-Linux-System hinzu. Zunächst importieren wir den GPG-Schlüssel für Elasticsearch, der die Authentizität der von Ihnen installierten Software gewährleistet. Führen Sie den folgenden Befehl aus, um den GPG-Schlüssel zu importieren:
curl -fSsL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-8.gpg > /dev/null
Als nächstes importieren wir das Elasticsearch-Repository. Dadurch können wir Elasticsearch direkt mit dem apt
Paket-Manager:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-8.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch-8.list
Aktualisieren des APT-Index-Cache
Wir müssen den APT-Paketindex aktualisieren, nachdem wir das Elasticsearch-Repository zu unserem System hinzugefügt haben. Dadurch wird sichergestellt, dass APT über die neuen Pakete aus dem neu hinzugefügten Repository informiert ist. Führen Sie den folgenden Befehl aus, um den APT-Index zu aktualisieren:
sudo apt update
Installieren Sie Elasticsearch 8 über den APT-Befehl
Nachdem unser System nun vorbereitet und der APT-Index aktualisiert ist, können wir Elasticsearch 8 installieren. Verwenden Sie den folgenden Befehl, um Elasticsearch zu installieren:
sudo apt install elasticsearch
Hinweis: Wenn zwei Einträge für dasselbe Elasticsearch-Repository vorhanden sind, tritt während der APT-Aktualisierung ein Fehler auf. Wenn der Fehler „Doppelter Eintrag in sources.list“ auftritt, suchen Sie in /etc/apt/sources.list.d/elasticsearch-8.x.list nach dem doppelten Eintrag oder suchen Sie den doppelten Eintrag unter den Dateien in /etc/apt/sources.list.d/ und der Datei /etc/apt/sources.list.
Aktivieren Sie Elasticsearch unter Debian nach der Installation
Nach der Installation ist der Elasticsearch-Dienst beim Booten deaktiviert und standardmäßig inaktiv. Um den Elasticsearch-Dienst zu aktivieren und so einzustellen, dass er beim Booten automatisch gestartet wird, verwenden Sie Folgendes systemctl
Befehl:
sudo systemctl enable elasticsearch.service --now
Elasticsearch 8 konfigurieren
Der nächste Schritt bei der Verwaltung von Elasticsearch 8 auf Ihrem Debian-Linux-System ist die Konfiguration.
Kennenlernen der Standardeinstellungen von Elasticsearch
Bei einer Neuinstallation von Elasticsearch platziert die Software ihre verarbeiteten und gespeicherten Daten im Verzeichnis /var/lib/elasticsearch. Wenn Sie Konfigurationsänderungen benötigen, ist /etc/elasticsearch Ihr bevorzugtes Verzeichnis. Wenn Java-Startoptionen optimiert werden müssen, können diese Einstellungen in der Konfigurationsdatei /etc/default/elasticsearch angepasst werden.
Diese Standardeinstellungen sind für Standalone-Server geeignet, bei denen Elasticsearch ausschließlich auf dem lokalen Host ausgeführt wird. Wenn Sie jedoch einen Elasticsearch-Cluster einrichten oder Remote-Verbindungen zulassen möchten, sind Änderungen an der Standardkonfiguration erforderlich.
Verfeinern der Elasticsearch-Konfigurationsdatei
Die Elasticsearch-Konfigurationsdatei enthält viele Parameter, die an Ihre individuellen Anforderungen angepasst werden können. Um diese Datei zu öffnen, führen Sie den folgenden Befehl aus:
sudo nano /etc/elasticsearch/elasticsearch.yml
Ein wichtiger Parameter ist cluster.name, der den Clusternamen angibt, zu dem Ihr Knoten gehört. Standardmäßig ist dies „elasticsearch“, in einer Produktionsumgebung ist jedoch ein eindeutigerer Name ratsam.
Hier ist ein Beispiel:
cluster.name: my_application
Die Option node.name ist eine weitere wichtige Option, die den Namen des Elasticsearch-Knotens festlegt. Dieser Name ist für eine reibungslose Administration und Verwaltung unerlässlich, insbesondere bei der Arbeit mit mehreren Knoten.
Hier ist ein Beispiel:
node.name: node-1
Konfigurieren Sie Elasticsearch 8 mit HTTPS unter Debian
Im Folgenden wird die Konfiguration von HTTPS für Ihre Elasticsearch-Installation beschrieben. Verschlüsselung ist für die Datensicherung unerlässlich. Wenn Elasticsearch 8 HTTPS verwendet, ist sichergestellt, dass Daten sicher zwischen Knoten und Clients übertragen werden.
SSL-Zertifikate generieren
Der erste Schritt bei der Konfiguration von Elasticsearch für HTTPS besteht darin, ein SSL-Zertifikat zu generieren. Dieses Zertifikat verschlüsselt die Daten zwischen Ihrem Server und den Clients. Elasticsearch verfügt über ein integriertes Tool namens elasticsearch-certutil, mit dem Sie ein selbstsigniertes Zertifikat generieren können. Führen Sie den folgenden Befehl aus:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/elastic-certificates.p12
Dadurch wird eine .p12-Datei im Konfigurationsverzeichnis erstellt. Diese Datei enthält sowohl den privaten Schlüssel als auch das öffentliche Zertifikat. Es ist wichtig, diese Datei zu schützen und sicherzustellen, dass sie nicht für unbefugte Benutzer zugänglich ist.
Aktualisieren Sie die Elasticsearch 8-Konfiguration
Als Nächstes müssen Sie die Elasticsearch-Konfigurationsdatei unter /etc/elasticsearch/elasticsearch.yml aktualisieren, um die Pfade zu Ihrem Zertifikat und privaten Schlüssel einzuschließen. Öffnen Sie die Konfigurationsdatei und fügen Sie die folgenden Zeilen hinzu:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
Diese Einstellungen aktivieren SSL für die Transportschicht, geben an, dass wir Zertifikate zur SSL-Verifizierung verwenden, und definieren die Pfade zum Zertifikat und zum privaten Schlüssel.
Remotezugriff zulassen (optional)
Elasticsearch ist standardmäßig so konfiguriert, dass es nur auf localhost hört. Dies kann jedoch in Fällen angepasst werden, in denen Fernzugriff erforderlich ist. Suchen Sie nach dem Abschnitt „Netzwerk“ und heben Sie die Kommentierung der Zeile „network.host“ auf, indem Sie das # davor entfernen. Ersetzen Sie den vorhandenen Wert durch Ihre interne private IP-Adresse oder externe IP-Adresse.
Hier ist ein Beispiel:
# network.host: 192.168.0.1
In diesem Beispiel wurde network.host auskommentiert und auf eine interne private IP-Adresse angepasst.
Aus Sicherheitsgründen empfiehlt es sich, einzelne IP-Adressen anzugeben. Sie können die Netzwerkschnittstelle jedoch so ändern, dass sie alle abhört, indem Sie sie für mehrere interne oder externe IP-Adressen, die eine Verbindung zum Server herstellen, auf 0.0.0.0 setzen.
Nachdem Sie die erforderlichen Änderungen vorgenommen haben, speichern Sie die Konfigurationsdatei (STRG+O zum Speichern, STRG+X zum Beenden).
Um die Änderungen an der Konfigurationsdatei zu erzwingen, starten Sie den Elasticsearch-Dienst mit dem folgenden Befehl neu:
sudo systemctl restart elasticsearch
Ändern der UFW-Firewall-Regeln für Remoteverbindungen
Wenn Sie Elasticsearch so konfiguriert haben, dass Remoteverbindungen zugelassen werden, müssen Sie Ihre Firewall-Regeln unbedingt so anpassen, dass diese Verbindungen möglich sind. Die Uncomplicated Firewall (UFW) kann Ihnen dabei helfen.
Sie können einer bestimmten IP-Adresse die Verbindung zu Elasticsearch erlauben, indem Sie den folgenden Befehl ausführen:
sudo ufw allow from <IP Address> to any port 9200
Vergessen Sie nicht, zu ersetzen mit der tatsächlichen IP-Adresse, von der Sie Verbindungen zulassen möchten. Dieser Befehl öffnet Port 9200 für die angegebene IP-Adresse und ermöglicht die Interaktion mit Elasticsearch.
Wenn Sie beispielsweise eine Verbindung mit der IP-Adresse 192.168.0.2 zulassen möchten, lautet der Befehl:
sudo ufw allow from 192.168.0.2 to any port 9200
Anschließend lässt Ihr Debian-Server Datenverkehr von 192.168.0.2 zu, um über Port 9200 auf Elasticsearch zuzugreifen. Denken Sie daran, dass die Sicherheit Ihrer Server an erster Stelle steht. Stellen Sie daher sicher, dass Sie nur vertrauenswürdigen IP-Adressen Zugriff gewähren.
Überprüfen der Elasticsearch 8-Konfiguration
Nachdem Sie Ihre Elasticsearch-Konfiguration geändert haben, müssen Sie unbedingt überprüfen, ob die Änderungen korrekt implementiert wurden und ob Ihre Elasticsearch-Instanz wie erwartet funktioniert.
Überprüfen des Elasticsearch 8-Dienststatus
Überprüfen Sie zunächst den Status Ihres Elasticsearch-Dienstes, um sicherzustellen, dass er aktiv und ausgeführt wird. Sie können dies mit dem folgenden Befehl tun:
sudo systemctl status elasticsearch
Dieser Befehl gibt Informationen zum Elasticsearch-Dienst aus, einschließlich der Angabe, ob er aktiv und ausgeführt wird. Wenn nicht, müssen Sie möglicherweise das Problem beheben oder Ihre Konfigurationsänderungen überprüfen.
Testen des Fernzugriffs (optional)
Wenn Sie den Remotezugriff aktiviert haben, können Sie ihn testen, indem Sie versuchen, von einem Remotecomputer aus eine Verbindung zu Ihrer Elasticsearch-Instanz herzustellen. Wie im vorherigen Abschnitt erläutert, muss die IP-Adresse, von der aus Sie eine Verbindung herstellen, in Ihren Firewall-Regeln zulässig sein.
Sie können zu diesem Zweck den Curl-Befehl verwenden:
curl https://<Your_Elasticsearch_IP>:9200
Ersetzen mit der IP-Adresse Ihres Elasticsearch-Servers. Bei Erfolg sollte dieser Befehl Informationen zu Ihrer Elasticsearch-Instanz zurückgeben.
Überprüfen der Datenintegrität
Schließlich ist es wichtig, die Integrität Ihrer Elasticsearch-Daten zu überprüfen, insbesondere wenn Sie in Ihrer Konfiguration Änderungen am Datenverzeichnis vorgenommen haben. Elasticsearch bietet APIs, mit denen Sie den Status Ihrer Daten überprüfen können.
Um beispielsweise den Status aller Indizes abzurufen, verwenden Sie den folgenden Befehl:
curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty"
Dieser Befehl listet alle Indizes in Ihrer Elasticsearch-Instanz und deren Integritätsstatus auf. Überprüfen Sie den Integritätsstatus Ihrer Indizes, um sicherzustellen, dass Ihre Daten sicher und zugänglich sind.
Hinweis: Denken Sie daran, dass die Integrität und Sicherheit Ihrer Daten immer oberste Priorität haben sollte. Überprüfen Sie Ihre Änderungen immer doppelt, validieren Sie Ihre Konfiguration und überwachen Sie Ihre Elasticsearch-Instanz regelmäßig. Auf diese Weise können Sie mit Elasticsearch ein zuverlässiges, effizientes und sicheres Datenverwaltungssystem aufrechterhalten.
Interaktion mit Elasticsearch 8 über cURL
In diesem Abschnitt werden allgemeine Befehle erläutert, die mit Ihrer Elasticsearch 8-Instanz interagieren. Wir verwenden den curl
Befehlszeilentool, eine flexible Bibliothek zum Übertragen von Daten mithilfe verschiedener Protokolle.
Löschen eines Indexes
Ein Elasticsearch-Index ist eine Reihe von Dokumenten mit ähnlichen Merkmalen. Wenn Sie einen Index mit dem Namen „Samples“ haben, den Sie löschen möchten, können Sie dies mit dem folgenden Befehl tun:
curl -X DELETE 'https://localhost:9200/samples'
Dieser Befehl sendet eine HTTP-DELETE-Anfrage an die angegebene URL, die Elasticsearch anweist, den Samples-Index zu löschen.
Auflistung aller Indizes
Um eine Liste aller Indizes in Ihrer Elasticsearch-Instanz abzurufen, verwenden Sie den Endpunkt _cat/indices mit einer GET-Anfrage wie dieser:
curl -X GET 'https://localhost:9200/_cat/indices?v'
In der Antwort werden alle Indizes aufgelistet, einschließlich Integrität, Status, Größe und Anzahl der Dokumente des Index.
Abrufen von Dokumenten aus einem Index
Um alle Dokumente aus einem bestimmten Index, beispielsweise „sample“, abzurufen, verwenden Sie den Endpunkt _search:
curl -X GET 'https://localhost:9200/sample/_search'
Dieser Befehl ruft alle im Beispielindex gespeicherten Dokumente ab.
Suchen mit URL-Parametern
Sie können die Abfragesyntax von Lucene für einfache Textsuchen verwenden. Wenn Sie beispielsweise Dokumente finden möchten, in denen Harvard als Schulfach angegeben ist, verwenden Sie:
curl -X GET https://localhost:9200/samples/_search?q=school:Harvard
Dieser Befehl sendet eine GET-Anfrage an den _search-Endpunkt und verwendet dabei den q-Parameter für die Abfrage.
Suchen mit Elasticsearch Query DSL
Für komplexere Abfragen bevorzugen Sie möglicherweise die Verwendung der Query DSL von Elasticsearch, mit der Sie Abfragen in JSON definieren können. Dieses Format ist besser lesbar und für das Debuggen komplexer Abfragen leichter zugänglich.
Hier ist ein Beispiel:
curl -XGET --header 'Content-Type: application/json' https://localhost:9200/samples/_search -d '{
"query" : {
"match" : { "school": "Harvard" }
}
}'
Dieser Befehl macht dasselbe wie der vorherige, verwendet aber JSON für die Abfragedefinition. Auf diese Weise ist der Befehl lesbarer, insbesondere bei komplexeren Abfragen.
Hinzufügen und Aktualisieren von Dokumenten
Um einem Index ein neues Dokument hinzuzufügen, können Sie die PUT-Methode zusammen mit dem _doc-Endpunkt verwenden. Um beispielsweise dem Samples-Index ein Dokument mit der ID 1 und dem Schulfach Harvard hinzuzufügen, würden Sie Folgendes verwenden:
curl -XPUT --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1 -d '{
"school" : "Harvard"
}'
Um ein Dokument zu aktualisieren, können Sie die POST-Methode mit dem Endpunkt _update verwenden. Um beispielsweise dem gerade erstellten Dokument ein Feld für Studenten hinzuzufügen, verwenden Sie:
curl -XPOST --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1/_update -d '{
"doc" : {
"students": 50000}
}'
Dieser Befehl weist Elasticsearch an, das Dokument mit der ID 1 im Beispielindex zu aktualisieren und ein Feld „Students“ mit dem Wert 50000 hinzuzufügen.
Diese Befehle sind nur ein kleiner Ausschnitt dessen, was Sie mit Elasticsearch erreichen können. Die Elasticsearch Query DSL
Verwalten Sie Elasticsearch 8 unter Debian 12, 11 oder 10
In diesem Abschnitt wird der Entfernungsprozess von Elasticsearch 8 von Ihrem Debian-Linux-Server beschrieben. Dies kann aus verschiedenen Gründen erforderlich sein, z. B. weil die Software nicht mehr Ihren Anforderungen entspricht oder Sie auf eine alternative Lösung umsteigen möchten. Unabhängig von Ihren Gründen führen Sie die unten beschriebenen Schritte durch den Vorgang.
Elasticsearch 8-Entfernung aus Debian
Um Elasticsearch von Ihrem Server zu entfernen, ist ein einfacher Befehl erforderlich. Beachten Sie jedoch, dass diese Aktion unumkehrbar ist und alle zugehörigen Daten löscht. Hier ist der auszuführende Befehl:
sudo apt remove elasticsearch
Durch Ausführen des obigen Befehls wird Elasticsearch effektiv deinstalliert und alle zuvor zugewiesenen Systemressourcen werden freigegeben.
Elasticsearch APT Repository entfernen
Das Elasticsearch-Repository bleibt nach der Deinstallation auf Ihrem System. Wenn Sie sicher sind, dass Sie Elasticsearch in Zukunft nicht erneut installieren möchten, können Sie es auch gleich entfernen, um unnötige Unordnung zu vermeiden.
So entfernen Sie das Elasticsearch-Repository:
sudo rm /etc/apt/sources.list.d/elasticsearch-8.list
Der obige Befehl löscht das Elasticsearch 8-Repository von Ihrem Debian-Linux-Server.
Repository-Liste aktualisieren
Der letzte Schritt besteht darin, die Apt-Paketliste zu aktualisieren. Dieser Schritt ist wichtig, um sicherzustellen, dass Ihr System Elasticsearch 8 bei zukünftigen Updates oder Installationen nicht berücksichtigt.
Der Befehl zum Aktualisieren Ihrer Repository-Liste lautet wie folgt:
sudo apt update
Abschluss
Wenn Elasticsearch 8 erfolgreich auf Ihrem Debian-System installiert wurde, können Sie dessen erweiterte Such- und Analysefunktionen nutzen, um Ihre Daten effizient zu verwalten und zu analysieren. Aktualisieren Sie Elasticsearch regelmäßig, um von den neuesten Funktionen und Sicherheitsverbesserungen zu profitieren. Profitieren Sie von den leistungsstarken Funktionen von Elasticsearch 8.x, die auf die Anforderungen moderner Datenverwaltung und -analyse zugeschnitten sind.