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.

Das könnte dich auch interessieren …