Elasticsearch ist eine verteilte Open-Source-Volltextsuch- und Analyse-Engine. Es unterstützt RESTful-Operationen und ermöglicht Ihnen das Speichern, Suchen und Analysieren großer Datenmengen in Echtzeit. Elasticsearch ist eine der beliebtesten Suchmaschinen, die Anwendungen mit komplexen Suchanforderungen unterstützt, wie z. B. große E-Commerce-Shops und Analyseanwendungen.
Diese Anleitung erklärt, wie man Elasticsearch auf Ubuntu 20.04 installiert.
Installieren von Elasticsearch #
Die Installation von Elasticsearch auf Ubuntu ist ziemlich einfach. Wir aktivieren das Elasticsearch-Repository, importieren den GPG-Schlüssel des Repositorys und installieren den Elasticsearch-Server.
Das Elasticsearch-Paket wird mit einer gebündelten Version von OpenJDK geliefert, sodass Sie Java nicht installieren müssen.
Aktualisieren Sie zuerst den Paketindex und installieren Sie die Abhängigkeiten, die zum Hinzufügen eines neuen HTTPS-Repositorys erforderlich sind:
sudo apt update
sudo apt install apt-transport-https ca-certificates wget
Importieren Sie den GPG-Schlüssel des Repositorys:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Der obige Befehl sollte OK
ausgeben , was bedeutet, dass der Schlüssel erfolgreich importiert wurde und Pakete aus diesem Repository als vertrauenswürdig betrachtet werden.
Fügen Sie als Nächstes das Elasticsearch-Repository zum System hinzu, indem Sie Folgendes ausgeben:
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Wenn Sie eine frühere Version von Elasticsearch installieren möchten, ändern Sie 7.x
im obigen Befehl mit der Version, die Sie benötigen. Sobald das Repository aktiviert ist, installieren Sie Elasticsearch, indem Sie Folgendes eingeben:
sudo apt update
sudo apt install elasticsearch
Der Elasticsearch-Dienst wird nach Abschluss des Installationsvorgangs nicht automatisch gestartet. Um den Dienst zu starten und zu aktivieren, führen Sie Folgendes aus:
sudo systemctl enable --now elasticsearch.service
Verwenden Sie curl
, um zu überprüfen, ob Elasticsearch ausgeführt wird um eine HTTP-Anfrage an Port 9200
zu senden auf localhost:
curl -X GET "localhost:9200/"
Sie sollten etwas Ähnliches sehen:
{
"name" : "vagrant",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "IJqDxPfXSrmFQ27KbXbRIg",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Es kann 5-10 Sekunden dauern, bis der Dienst gestartet wird. Wenn Sie curl: (7) Failed to connect to localhost port 9200: Connection refused
, warten Sie einige Sekunden und versuchen Sie es erneut.
Verwenden Sie den folgenden Befehl, um die vom Elasticsearch-Dienst protokollierten Nachrichten anzuzeigen:
sudo journalctl -u elasticsearch
Das ist es. Elasticsearch wurde auf Ihrem Ubuntu-Server installiert.
Elasticsearch konfigurieren #
Elasticsearch-Daten werden in /var/lib/elasticsearch
gespeichert Verzeichnis. Konfigurationsdateien befinden sich in /etc/elasticsearch
und Java-Startoptionen können in /etc/default/elasticsearch
konfiguriert werden Datei.
Standardmäßig ist Elasticsearch so konfiguriert, dass es nur auf localhost lauscht. Wenn der Client, der sich mit der Datenbank verbindet, auch auf demselben Host ausgeführt wird und Sie einen Einzelknoten-Cluster einrichten, müssen Sie die Standardkonfigurationsdatei nicht ändern.
Fernzugriff #
Standardmäßig implementiert Elasticsearch keine Authentifizierung, sodass jeder darauf zugreifen kann, der Zugriff auf die HTTP-API hat.
Um den Fernzugriff auf Ihren Elasticsearch-Server zuzulassen, müssen Sie Ihre Firewall konfigurieren und den TCP-Port 6379 öffnen.
Normalerweise möchten Sie den Zugriff auf den Redis-Server nur von einer bestimmten IP-Adresse oder einem bestimmten IP-Bereich aus zulassen. Zum Beispiel, um nur Verbindungen von 192.168.121.0/24
zuzulassen subnet, würden Sie den folgenden Befehl ausführen:
sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379
Sobald die Firewall konfiguriert ist, besteht der nächste Schritt darin, die Elasticsearch-Konfiguration zu bearbeiten und Elasticsearch zu erlauben, auf externe Verbindungen zu lauschen.
Öffnen Sie dazu die elasticsearch.yml
Konfigurationsdatei:
sudo nano /etc/elasticsearch/elasticsearch.yml
Suchen Sie nach der Zeile, die network.host
enthält , kommentieren Sie es aus und ändern Sie den Wert in 0.0.0.0
:
network.host: 0.0.0.0
Wenn Sie mehrere Netzwerkschnittstellen auf Ihrem Computer haben, geben Sie die IP-Adresse der Schnittstelle an, um Elasticsearch zu zwingen, nur auf die angegebene Schnittstelle zu hören.
Starten Sie den Elasticsearch-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart elasticsearch
Das ist es. Sie können sich jetzt von Ihrem Remote-Standort aus mit dem Elasticsearch-Server verbinden.