So installieren und verwenden Sie Elasticsearch unter Ubuntu 20.04
Elasticsearch ist eine verteilte Open-Source-Analyse-Engine, die auf Apache Lucene basiert. Sie nimmt unstrukturierte Daten von verschiedenen Orten auf und speichert sie gemäß benutzerdefiniertem Mapping und indiziert sie. Sie unterstützt RESTful-Operationen und ermöglicht es Ihnen, große Datenmengen in Echtzeit zu durchsuchen und zu analysieren.
In diesem Tutorial zeigen wir Ihnen, wie Sie Elasticsearch auf Ubuntu 20.04 installieren.
Voraussetzungen
- Ein Server, auf dem Ubuntu 20.04 läuft.
- Ein Root-Passwort ist auf dem Server konfiguriert.
Erste Schritte
Bevor Sie beginnen, müssen Sie Ihr System auf die neueste Version aktualisieren. Sie können es mit dem folgenden Befehl aktualisieren:
apt-get update -y
Sobald Ihr System aktualisiert ist, installieren Sie weitere erforderliche Pakete mit dem folgenden curl Befehl:
apt-get install curl gnupg2 apt-transport-https unzip -y
Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Elasticsearch installieren
Standardmäßig ist das Elasticsearch-Paket nicht im Standard-Repository von Ubuntu verfügbar. Sie müssen also das Elasticsearch-Repository zu Ihrem System hinzufügen. Importieren Sie zunächst den GPG-Schlüssel mit dem folgenden Befehl:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Als nächstes fügen Sie das Elasticsearch-Repository mit dem folgenden Befehl hinzu:
sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Sobald das Repository hinzugefügt ist, aktualisieren Sie den Repository-Cache und installieren Sie Elasticsearch mit dem folgenden Befehl:
apt-get update -y apt-get install elasticsearch -y
Sobald die Installation abgeschlossen ist, starten Sie den Elasticsearch-Dienst und aktivieren Sie, dass er beim Neustart des Systems gestartet wird:
systemctl start elasticsearch systemctl enable elasticsearch
Sie können nun den Status des Elasticsearch-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status elasticsearch
Sie sollten die folgende Ausgabe erhalten:
? elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2021-01-09 11:13:09 UTC; 5s ago Docs: https://www.elastic.co Main PID: 5110 (java) Tasks: 65 (limit: 2353) Memory: 1.2G CGroup: /system.slice/elasticsearch.service ??5110 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl> ??5304 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller Jan 09 11:12:50 ubuntu2004 systemd[1]: Starting Elasticsearch... Jan 09 11:13:09 ubuntu2004 systemd[1]: Started Elasticsearch.
Verify Elasticsearch
Standardmäßig lauscht Elasticsearch auf Port 9200. Sie können dies mit dem folgenden Befehl überprüfen:
ss -antpl | grep 9200
Sie sollten die folgende Ausgabe erhalten:
LISTEN 0 4096 [::ffff:127.0.0.1]:9200 *:* users:(("java",pid=5110,fd=257)) LISTEN 0 4096 [::1]:9200 [::]:* users:(("java",pid=5110,fd=255))
Sie können Elasticsearch auch mit folgendem Befehl verifizieren:
curl -X GET "localhost:9200/"
Sie sollten die folgende Antwort erhalten:
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "mToloP2UQGilY7nUCeBnjg", "version" : { "number" : "7.10.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa", "build_date" : "2020-12-05T01:00:33.671820Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Elasticsearch konfigurieren
Die Hauptkonfigurationsdatei von Elasticsearch befindet sich unter /etc/elasticsearch/elasticsearch.yml. Sie können den Clusternamen, den Port und die Erlaubnis für eine Remote-Verbindung einstellen, indem Sie diese Datei bearbeiten.
Öffnen Sie die Datei elasticsearch.yml in Ihrem nano-Editor:
nano /etc/elasticsearch/elasticsearch.yml
Ändern Sie die folgenden Zeilen:
cluster.name: my-cluster network.host: 172.16.0.10 discovery.seed_hosts: 172.16.0.10
Speichern und schließen Sie die Datei und starten Sie den Elasticsearch-Dienst neu, um die Konfiguration zu übernehmen:
systemctl restart elasticsearch
An diesem Punkt ist Elasticsearch so konfiguriert, dass es die Verbindung vom entfernten Host akzeptiert. Sie können nun mit dem nächsten Schritt fortfahren.
UFW-Firewall konfigurieren
Standardmäßig ist UFW in Ubuntu 20.04 installiert. Wenn sie nicht installiert ist, können Sie sie mit dem folgenden Befehl installieren:
apt-get install ufw -y
Sobald die UFW installiert ist, erlauben Sie die SSH-Verbindung und den Elasticsearch-Port für den Remote-Host (172.16.0.100) mit dem folgenden Befehl:
ufw allow ssh ufw allow from 172.16.0.100 to any port 9200
Aktivieren Sie als nächstes die UFW-Firewall mit dem folgenden Befehl:
ufw enable
Überprüfen Sie als Nächstes den Status der UFW-Firewall-Regeln mit dem folgenden Befehl:
ufw status
Sie sollten die folgende Ausgabe erhalten:
Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 9200 ALLOW 172.16.0.100 22/tcp (v6) ALLOW Anywhere (v6)
Fazit
Herzlichen Glückwunsch! Sie haben Elasticsearch erfolgreich installiert und für die Remote-Verbindung auf dem Ubuntu 20.04-Server konfiguriert. Sie können nun Elasticsearch in Ihre Anwendung integrieren. Wenn Sie Fragen haben, können Sie sich gerne an mich wenden.