Einführung
Elasticsearch ist eine Plattform für Echtzeit-Volltextsuchen in Anwendungen, in denen große Datenmengen analysiert werden müssen. In Kombination mit anderen Tools wie Kibana, Logstash, X-Pack usw. kann Elasticsearch Big Data aggregieren und überwachen in großem Maßstab.
Mit seiner RESTful API-Unterstützung verwalten Sie Ihre Daten bequem über das gängige HTTP-Verfahren. Aufgrund seiner Geschwindigkeit und Benutzerfreundlichkeit eignet es sich auch für komplexere Aufgaben, die Hadoop und Spark bewältigen.
In diesem Tutorial zeigen wir Ihnen, wie Sie alles vorbereiten und wie Sie Elasticsearch unter Ubuntu 18.04 installieren . Die Installationsschritte sollten auch für andere Linux-Distributionen funktionieren.
Voraussetzungen
- Ein Ubuntu-basiertes System (dieses Handbuch verwendet Ubuntu 18.04)
- Zugriff auf ein Terminal oder eine Befehlszeile
- Ein Benutzer mit sudo-Berechtigungen zum Installieren der Pakete
Installieren Sie die erforderlichen Abhängigkeiten
Da Elasticsearch auf Java ausgeführt wird, müssen Sie das Java Development Kit (JDK) installieren .
Sie können überprüfen, ob Java installiert ist und die Version auf Ihrem Ubuntu-Rechner mit:
java -version
Die Ausgabe zeigt die installierte Java-Version an.
Wenn Sie Java nicht installiert haben, erhalten Sie die Standard-Bash-Meldung:bash:/usr/bin/java:No such file or directory . Denken Sie daran, dass Sie vorher die Möglichkeit haben, mit einem Bash-Befehl zu prüfen, ob eine Datei oder ein Verzeichnis existiert.
Bevor Sie mit der Installation fortfahren, aktualisieren Sie den Paketindex:
sudo apt update
Führen Sie den folgenden Befehl aus, um das Standard-JDK zu installieren:
sudo apt install openjdk-8-jdk
Führen Sie nach Abschluss des Vorgangs java -version
aus erneut befehlen. Die Ausgabe zeigt in unserem Fall folgende Version:
Um den Zugriff auf Ihre Repositorys über HTTPS zu ermöglichen, müssen Sie ein APT-Transportpaket installieren:
sudo apt install apt-transport-https
Die obige Ausgabe zeigt den letzten Teil, wenn der Prozess abgeschlossen ist.
Installieren und laden Sie Elasticsearch auf Ubuntu herunter
Nachdem Sie Java und apt-transport-https
bestätigt haben erfolgreich installiert haben, fahren Sie mit den Schritten zur Installation von Elasticsearch fort.
Elasticsearch-Repository hinzufügen
Aktualisieren Sie zuerst den GPG-Schlüssel für das Elasticsearch-Repository.
Verwenden Sie das wget
Befehl zum Abrufen des öffentlichen Schlüssels:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Die Ausgabe sollte OK
anzeigen ob alles so gelaufen ist wie es sollte.
Verwenden Sie als Nächstes diesen Befehl, um das Repository zu Ihrem System hinzuzufügen.
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Im obigen Befehl haben wir 7.x verwendet da dies zum Zeitpunkt der Erstellung dieses Handbuchs die neueste Elasticsearch-Version ist.
Elasticsearch installieren
Schließlich ist es an der Zeit, Elasticsearch zu installieren.
Aktualisieren Sie den Paketindex noch einmal, bevor Sie fortfahren.
sudo apt update
Führen Sie dann die Installation aus:
sudo apt install elasticsearch
Das Paket ist etwa 300 MB groß. Lassen Sie das System das Archiv herunterladen und die Installation abschließen.
Starten Sie den Elasticsearch-Dienst
Sobald die Installation abgeschlossen ist, wird Elasticsearch erst ausgeführt, wenn Sie es starten. Außerdem müssen Sie beim Neustart des Computers den Elasticsearch-Dienst erneut ausführen, da er nicht automatisch gestartet wird.
Damit Elasticsearch beim Neustart des Systems automatisch neu geladen wird, verwenden Sie die folgenden Befehle:
Laden Sie zuerst die systemd-Konfiguration neu:
sudo systemctl daemon-reload
Aktivieren Sie dann den Elasticsearch-Dienst mit:
sudo systemctl enable elasticsearch.service
Und schließlich, nachdem der Dienst aktiviert wurde, starten Sie Elasticsearch:
sudo systemctl start elasticsearch.service
Lassen Sie den Vorgang abschließen. Es kann einige Augenblicke dauern. Es erfolgt keine spezifische Antwort vom Terminal.
Jetzt wird Elasticsearch jedes Mal gestartet, wenn Sie das System einschalten oder neu starten.
Wenn Sie Änderungen an Konfigurationsdateien vornehmen oder Elasticsearch aus irgendeinem Grund neu starten müssen, verwenden Sie:
sudo systemctl restart elasticsearch.service
Wenn Sie den Dienst stoppen müssen, verwenden Sie den folgenden Befehl:
sudo systemctl stop elasticsearch.service
Elasticsearch-Status prüfen
Sobald Sie mit den Befehlen zum Starten, Neustarten und Beenden von Elasticsearch fertig sind, können Sie auch den Status des Dienstes überprüfen.
Geben Sie dazu ein:
service elasticsearch status
Die Ausgabe zeigt den Status des Dienstes, Aufgaben und andere Informationen.
Elasticsearch konfigurieren
Elasticsearch ist für die grundlegende Verwendung vorkonfiguriert. Wenn Sie nur einen Knoten in Ihrem Setup verwenden, müssen Sie das Tool nicht zu sehr neu konfigurieren.
Um Änderungen an der standardmäßigen Elasticsearch-Konfiguration vorzunehmen , bearbeiten Sie die elasticsearch.yml Datei. Die Datei befindet sich im Verzeichnis /etc/elasticsearch Verzeichnis.
Die Konfiguration für die Protokollierung befindet sich in /var/log/elasticsearch/logging.yml Datei. Sie können die Standardeinstellungen für die Protokollierung vorerst beibehalten und später bei Bedarf darauf zurückkommen.
Fernzugriff zulassen
Die Standardkonfiguration erlaubt keinen Zugriff auf Ihre Maschine durch andere Hosts. Um den Fernzugriff zuzulassen, verwenden Sie einen Texteditor Ihrer Wahl und öffnen Sie die elasticsearch.yml Datei.
Wir werden vim verwenden :
sudo vim /etc/elasticsearch/elasticsearch.yml
Scrollen Sie nach unten zum Netzwerk Sektion. Suchen Sie die Zeile mit der Aufschrift #network.host
.
Entkommentieren Sie die Zeile (entfernen Sie das Rautenzeichen (#)) und setzen Sie die IP-Adresse auf 0.0.0.0
, und fügen Sie diese Zeilen hinzu:
transport.host: localhost
transport.tcp.port: 9300
http.port: 9200
Der Abschnitt sollte wie folgt aussehen:
Beenden und Änderungen speichern. Wenn Sie in vim arbeiten , geben Sie :wq
ein .
Diese Konfiguration ermöglicht entfernten Hosts den Zugriff auf diese Maschine.
Verwenden Sie UFW, um Elasticsearch zu sichern (optional)
Wenn Sie den Fernzugriff auf Elasticsearch zulassen, empfehlen wir dringend, das UFW-Tool als Mindestsicherheitsmaßnahme zu verwenden.
Die unkomplizierte Firewall (UFW) ist in Linux integriert und standardmäßig deaktiviert. Aktivieren Sie UFW und erstellen Sie einige Regeln, um die Gefährdung Ihres Netzwerks zu begrenzen.
Fügen Sie vor dem Aktivieren von UFW die erforderlichen Regeln hinzu. Für den Fernzugriff über SSH müssen Sie den Zugriff auf Port 22 (oder den benutzerdefinierten Port, wenn Sie die SSH-Standardkonfiguration geändert haben) zulassen.
Geben Sie im Terminal ein:
sudo ufw allow 22
Dann müssen Sie den Zugriff auf Port 9200 zulassen für Ihre Remote-Maschine. Elasticsearch überwacht diesen Port auf eingehende Anfragen.
Erstellen Sie die Regel mit diesem Befehl:
sudo ufw allow from external_IP to any port 9200
Ändern Sie external_IP
mit der IP des Remote-Rechners, der für den Zugriff auf Elasticsearch verwendet wird.
Aktivieren Sie abschließend das UFW-Tool:
sudo ufw enable
Hier ist das Ausgabebeispiel für die obigen Befehle:
Überprüfen Sie den Status von UFW, um sicherzustellen, dass Sie die Regeln richtig hinzugefügt haben.
sudo ufw status
Dieser Befehl zeigt sowohl den Status als auch die Details der von Ihnen erstellten Regeln an.
Elasticsearch testen
Jetzt, da der Elasticsearch-Dienst aktiv ist, auf den Computer remote zugegriffen werden kann und Sie UFW aktiviert haben, können Sie curl
verwenden um zu testen, ob das Tool funktioniert.
Der standardmäßige Überwachungsport für Elasticsearch ist 9200 . Sie können also eine HTTP-Anforderung an den Localhost senden und sehen, ob Sie eine Antwort erhalten.
Geben Sie dazu ein:
curl localhost:9200
Die Ausgabe sollte ähnlich wie oben aussehen. Sie sehen die Versionsinformationen und andere Felder mit Datum, Hash usw.