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 für Anwendungen mit komplexen Suchanforderungen, wie große E-Commerce-Shops und Analyseanwendungen.
Dieses Tutorial behandelt die Installation von Elasticsearch auf CentOS 8.
Installieren von Java #
Elasticsearch ist eine Java-Anwendung, daher ist der erste Schritt die Installation von Java.
Führen Sie den folgenden Befehl als Root oder Benutzer mit sudo-Berechtigungen aus, um das OpenJDK-Paket zu installieren:
sudo dnf install java-11-openjdk-devel
Überprüfen Sie die Java-Installation, indem Sie die Java-Version drucken:
java -version
Die Ausgabe sollte in etwa so aussehen:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Installieren von Elasticsearch #
Elasticsearch ist in den Standard-Repositories von CentOS 8 nicht verfügbar. Wir installieren es aus dem Elasticsearch RPM-Repository.
Importieren Sie das GPG des Repositorys mit rpm
Befehl:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Öffnen Sie Ihren Texteditor und erstellen Sie die Repository-Datei /etc/yum.repos.d
Verzeichnis:
sudo nano /etc/yum.repos.d/elasticsearch.repo
Fügen Sie den folgenden Inhalt in die Datei ein:
/etc/yum.repos.d/elasticsearch.repo[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Speichern Sie die Datei und schließen Sie Ihren Texteditor.
Zum Zeitpunkt der Erstellung dieses Artikels war die neueste Version von Elasticsearch7.6
. 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. Nachdem das Repository aktiviert ist, installieren Sie das Elasticsearch-Paket, indem Sie Folgendes eingeben:
sudo dnf install elasticsearch
Sobald der Installationsvorgang abgeschlossen ist, starten und aktivieren Sie den Dienst:
sudo systemctl enable elasticsearch.service --now
Verwenden Sie curl
, um zu überprüfen, ob Elasticsearch ausgeführt wird um eine HTTP-Anfrage an Port 9200 auf localhost zu senden:
curl -X GET "localhost:9200/"
Die Ausgabe sieht in etwa so aus:
{
"name" : "centos8.localdomain",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "V_mfjn2PRJqX3PlZb_VD7w",
"version" : {
"number" : "7.6.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
"build_date" : "2020-02-06T00:09:00.449973Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"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
Zu diesem Zeitpunkt haben Sie Elasticsearch auf Ihrem CentOS-Server installiert.
Elasticsearch konfigurieren #
Elasticsearch-Daten werden in /var/lib/elasticsearch
gespeichert Verzeichnis, Konfigurationsdateien befinden sich in /etc/elasticsearch
.
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 auf die HTTP-API zugreifen kann. Wenn Sie den Fernzugriff auf Ihren Elasticsearch-Server zulassen möchten, müssen Sie Ihre Firewall konfigurieren und den Zugriff auf den Elasticsearch-Port 9200 nur von vertrauenswürdigen Clients zulassen.
Zum Beispiel, um nur Verbindungen von 192.168.121.80
zuzulassen , geben Sie den folgenden Befehl ein:
Führen Sie den folgenden Befehl aus, um die Bewertung von der vertrauenswürdigen Remote-IP-Adresse auf Port 9200
zuzulassen :
Vergessen Sie nicht,sudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanent
sudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
192.168.121.80
zu ändern mit Ihrer entfernten IP-Adresse. Wenn Sie später den Zugriff von einer anderen IP-Adresse zulassen möchten, verwenden Sie:
sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent
sudo firewall-cmd --reload
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 vom Remote-Standort aus mit dem Elasticsearch-Server verbinden.