Elasticsearch ist eine verteilte Open-Source-Volltextsuch- und Analyse-Engine. Es unterstützt RESTful-Operationen und ermöglicht es Ihnen, zu speichern, suchen, und große Datenmengen in Echtzeit analysieren.
Elasticsearch ist eine der beliebtesten Suchmaschinen, die Anwendungen mit komplexen Suchanforderungen unterstützt, wie z. B. große E-Commerce-Shops und Analyseanwendungen.
Dieses Tutorial führt Sie durch den Prozess der Installation Elasticsearch auf Debian 9.
Voraussetzungen #
Sie müssen sich mit sudo privilegesto als Benutzer angemeldet sein, der Lage sein, Pakete auf Ihrem Debian-Server zu installieren.
Installieren von Elasticsearch #
Der einfachste Weg, Elasticsearch auf Debian zu installieren, ist über die offizielle Elasticsearch Repository. Zum Zeitpunkt des Schreibens dieses Artikels, die neueste Version von Elasticsearch ist 7.0.0
und erfordert Java 8 auf dem System installiert werden.
Beginnen Sie mit den Paketen Index zu aktualisieren und die Installation der apt-transport-https
Paket, das für den Zugriff auf ein Repository über HTTPS erforderlich ist:
sudo apt update
sudo apt install apt-transport-https
Installieren Sie OpenJDK 8:
sudo apt install openjdk-8-jdk
Überprüfen Sie die Java-Installation durch den Druck der Java-Version:
java -version
Die Ausgabe sollte in etwa so aussehen:
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
Der nächste Schritt ist das Elasticsearch Repository hinzuzufügen.
Importieren Sie den öffentlichen Schlüssel des Repository mit dem folgenden wget
Befehl:
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.
Als nächstes fügen Sie das Elasticsearch Repository in das System, indem Sie:
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 andere Version von Elasticsearch installieren möchten, ändern 7.x
im obigen Befehl mit der Version, die Sie benötigen. Aktualisieren Sie die Pakete Index und installieren Sie das Elasticsearch Motor:
sudo apt update
sudo apt install elasticsearch
Wenn der Installationsvorgang abgeschlossen ist, starten und den Dienst mit den folgenden Befehlen aktivieren:
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
Um sicherzustellen, dass Elasticsearch eine HTTP-Anforderung an Port 9200 auf localhost mit dem folgenden senden läuft curl
Befehl:
curl -X GET "localhost:9200/"
Die Ausgabe sollte etwa so aussehen:
{
"name" : "stretch",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Nj2W3PswRuWvJW8JG75O1Q",
"version" : {
"number" : "7.0.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "b7e28a7",
"build_date" : "2019-04-05T22:55:32.697037Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.7.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.
Um zu sehen, die Nachrichten von der Elasticsearch Dienst angemeldet ist, verwenden Sie den Befehl unter:
sudo journalctl -u elasticsearch
Das ist es. Elasticsearch auf Ihrem Debian-Server installiert wurde.
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 die Verbindung zur Datenbank auch auf demselben Host ausgeführt wird, und Sie werden einen einzelnen Knoten einrichten Cluster Sie nicht Remote-Zugriff zu ermöglichen, benötigen.
Fernzugriff #
Aus der Box Elasticsearch, implementieren keine Authentifizierung, so dass es von jedermann zugänglich, die den HTTP-API zugreifen können. Wenn Sie Remote-Zugriff auf Ihren Elasticsearch Server zulassen möchten, müssen Sie Ihre Firewall konfigurieren und ermöglichen den Zugang zum Elasticsearch Port 9200 nur von vertrauenswürdigen Kunden.
Wenn Sie UFWas Ihre Firewall-Tool der Wahl führen Sie den folgenden Befehl verwenden, beurteilen zu ermöglichen, sich auf Port 9200 von der entfernten vertrauenswürdige IP-Adresse:
sudo ufw allow from 192.168.100.20 to any port 9200
Vergessen Sie nicht, ändern 192.168.100.20
mit Remote-IP-Adresse. Andernfalls, wenn Sie nur alte iptables laufen verwenden:
sudo iptables -A INPUT -p tcp -s 192.168.100.20 --dport 9200 -j ACCEPT
Sobald Ihre Firewall ist der nächste Schritt zu bearbeiten konfiguriert ist, ist die Konfiguration und legt Elasticsearch für externe Verbindungen zu hören.
Ö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 Rechner haben, können Sie die Schnittstelle IP-Adresse angeben, die Elasticsearch verursachen nur auf die angegebene Schnittstelle zu hören.
Starten Sie den Elasticsearch-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart elasticsearch
An diesem Punkt sollten Sie auf den Elasticsearch Server von Ihrem entfernten Standort verbinden können.