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.
Dieses Tutorial erklärt, wie man Elasticsearch auf CentOS 7 installiert.
Voraussetzungen #
Der Benutzer, als der Sie angemeldet sind, muss über sudo-Berechtigungen verfügen, um Pakete installieren zu können.
Installieren von Elasticsearch #
Die empfohlene Methode zur Installation von Elasticsearch auf CentOS 7 ist die Installation des RPM-Pakets aus dem offiziellen Elasticsearch-Repository.
Zum Zeitpunkt der Erstellung dieses Artikels war die neueste Version von Elasticsearch 6.7
und erfordert Java 8 oder höher.
Geben Sie Folgendes ein, um OpenJDK8 auf Ihrem CentOS-System zu installieren:
sudo yum install java-1.8.0-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 "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
Nachdem Java installiert ist, besteht der nächste Schritt darin, das Elasticsearch-Repository hinzuzufügen.
Importieren Sie den GPG-Schlüssel des Repositorys mit dem folgenden Befehl:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Repo-Datei:
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-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.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.
Wenn Sie eine frühere Version von Elasticsearch installieren möchten, ändern Sie6.x
im obigen Befehl mit der Version, die Sie benötigen. Sie können jetzt das Elasticsearch-Paket installieren, indem Sie Folgendes eingeben:
sudo yum install elasticsearch
Sobald der Installationsvorgang abgeschlossen ist, starten und aktivieren Sie den Dienst, indem Sie Folgendes ausführen:
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
Sie können überprüfen, ob Elasticsearch ausgeführt wird, indem Sie mit dem folgenden Curl-Befehl eine HTTP-Anforderung an Port 9200 auf localhost senden:
curl -X GET "localhost:9200/"
Die Ausgabe sieht etwa so aus:
{
"name" : "fLVNqN_",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "6zKcQppYREaRH0tyfJ9j7Q",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"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 die vom Elasticsearch-Dienst protokollierten Nachrichten anzuzeigen, können Sie den folgenden Befehl verwenden:
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.
Beginnend mit CentOS 7 ersetzt FirewallD iptables als standardmäßiges Firewall-Verwaltungstool.
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, können Sie die IP-Adresse der Schnittstelle angeben, die bewirkt, dass Elasticsearch nur auf der angegebenen Schnittstelle lauscht.
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.