Elasticsearch ist ein Open-Source-Suchserver auf Unternehmensebene, der auf Apache Lucene basiert und eine verteilte Suche und Analyse in Echtzeit mit einer RESTful-Webschnittstelle und schemafreien JSON-Dokumenten bietet. Elasticsearch wird in Java entwickelt und unter der Apache-Lizenz veröffentlicht. Derzeit belegt es den zweiten Platz in der beliebtesten Unternehmenssuchmaschine hinter Apache Solr.
Diese Anleitung hilft Ihnen bei der Installation von Elasticsearch unter CentOS 7 /Ubuntu 16.04 / Linux Mint 18 .
Voraussetzungen
Wie bereits gesagt, Elasticsearch wird in Java entwickelt. Stellen Sie sicher, dass Sie das neueste JDK auf Ihrem System installiert haben. Befolgen Sie die nachstehenden Tutorials, um Oracle JDK unter Linux zu installieren.
LESEN :So installieren Sie Java JDK 8 auf Ubuntu 16.04 / Linux Mint 18
LESEN :So installieren Sie Java SDK 1.8 auf RHEL 7 / CentOS 7
Überprüfen Sie die auf dem System installierte JDK-Version.
java -version
Ausgabe:
openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Elasticsearch installieren
Elasticsearch kann direkt von der offiziellen Website heruntergeladen werden, darüber hinaus bietet es ein vorgefertigtes Binärpaket für RHEL- und Debian-Derivate.
Laden Sie den öffentlichen Signaturschlüssel herunter und installieren Sie ihn.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - ### RHEL 7 / CentOS 7 ### # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Fügen Sie das Elasticsearch-Repository hinzu und aktivieren Sie es.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list ### RHEL 7 / CentOS 7 ### # cat <<EOF >> /etc/yum.repos.d/elasticsearch.repo [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
Installieren Sie Elasticsearch mit dem folgenden Befehl.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ sudo apt-get update $ sudo apt-get install -y elasticsearch ### RHEL 7 / CentOS 7 ### # yum -y install elasticsearch
Konfigurieren Sie Elasticsearch so, dass es während des Systemstarts automatisch gestartet wird.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ sudo systemctl enable elasticsearch $ sudo systemctl start elasticsearch ### RHEL 7 / CentOS 7 ### # systemctl daemon-reload # systemctl enable elasticsearch # systemctl start elasticsearch
Elasticsearch konfigurieren
Elasticsearch-Konfigurationsdateien befinden sich im Verzeichnis /etc/elasticsearch/; Sie konnten nur zwei Dateien darin sehen, elasticsearch.yml und logging.yml.
Logging.yml verwaltet die Protokollierung von Elasticsearch, und Protokolldateien werden im Verzeichnis /var/log/elasticsearch gespeichert.
elasticsearch.yml ist die Hauptkonfigurationsdatei von Elasticsearch und enthält Standardeinstellungen für den Betrieb des Produktionsclusters.
Elasticsearch bindet sich standardmäßig an alle Netzwerkkarten (0.0.0.0) und lauscht auf Port Nr. 9200 – 9300 auf HTTP-Verkehr und auf 9300 – 9400 auf interne Knoten-zu-Knoten-Kommunikation. Bereiche bedeutet, dass, wenn der Port belegt ist, dies der Fall ist automatisch den nächsten Port versuchen.
Bearbeiten Sie die Datei elasticsearch.yml.
# vi /etc/elasticsearch/elasticsearch.yml
Damit Elasticsearch auf einer bestimmten IP lauscht, platzieren Sie die IP-Adresse in der folgenden Syntax. Um Elasticsearch vor öffentlichem Zugriff zu schützen, können Sie es so einstellen, dass es auf localhost lauscht.
### Listening on particular IPv4 ### network.bind_host: 192.168.0.1 ### Disabling public access ### network.bind_host: 127.0.0.1
Starten Sie den Elasticsearch-Dienst neu.
# service elasticsearch restart
Warten Sie nach dem Neustart mindestens eine Minute, damit Elasticsearch vollständig gestartet werden kann. Andernfalls schlägt der Test fehl. Elastisearch sollte jetzt auf 9200 lauschen, um die HTTP-Anfrage zu verarbeiten; Wir verwenden CURL, um die Antwort zu erhalten.
# curl -X GET 'http://localhost:9200'
Sie sollten die folgende Antwort erhalten.
{ "name" : "gf5QYAn", "cluster_name" : "elasticsearch", "cluster_uuid" : "S6gZNkMERpSr-MGXqEFUJw", "version" : { "number" : "5.5.2", "build_hash" : "b2f0c09", "build_date" : "2017-08-14T12:33:14.154Z", "build_snapshot" : false, "lucene_version" : "6.6.0" }, "tagline" : "You Know, for Search" }
Alternativ können Sie einen Browser verwenden, um die Elasticsearch abzufragen. Sie sollten dasselbe sehen, was Sie mit Curl gesehen haben.
Elasticsearch-Cluster
Clustername
Die Einstellung cluster.name wird verwendet, um andere Knoten zu erkennen und automatisch beizutreten. Wenn eine Gruppe von Elasticsearch-Servern im selben Netzwerk denselben Clusternamen hat, erkennen sie sich gegenseitig. Stellen Sie sicher, dass Sie den Standard-Clusternamen des Elasticsearch-Servers ändern, um zu vermeiden, dass andere Server im selben Netzwerk, das nicht unter Ihrer Kontrolle steht, automatisch hinzugefügt werden.
Wenn Sie mehrere Elasticsearch-Cluster im selben Netzwerk ausführen, stellen Sie sicher, dass Sie eindeutige Clusternamen verwenden.
cluster.name:<NAME OF YOUR CLUSTER>
Knotenname
Der Knotenname ist wie ein Hostname für den Elasticsearch-Server, der während des Dienststarts dynamisch generiert wird. Sie können ihm Ihren eigenen Namen geben, indem Sie die folgende Syntax festlegen.
node.name: "<NAME OF YOUR NODE>"
Vergessen Sie nicht, den Elasticsearch-Dienst neu zu starten.
# service elasticsearch restart
Verwendung von Elasticsearch
Lassen Sie uns einige Daten zu Elasticsearch hinzufügen. Wir können curl verwenden, um mit Elasticsearch über Port 9200 mit einer RESTful-API zu kommunizieren. Mit curl können wir die Daten über die API lesen, hinzufügen, löschen und aktualisieren. Dokumente werden im folgenden Format gespeichert
Elasticsearch ⇒ Indizes ⇒ Typen ⇒ Dokumente ⇒ Felder
Indizes =Plural eines Indexes, wo die Daten von Elasticsearch gespeichert werden.
Typen =Enthält mehrere Dokumente, es ist wie der Datentyp.
Dokumente =Es enthält die Datenfelder.
Felder =Aktuelle Detaildaten.
Hinzufügen
Verwenden Sie den folgenden Curl-Befehl, um Daten zu unserer Elasticsearch hinzuzufügen.
# curl -X POST 'http://localhost:9200/itzgeek/howtos/1' -d '{ "Title" : "Installing Elasticsearch", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" }'
Sie sollten die folgende Antwort erhalten.
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":1,"created":true}
Wo
„itzgeek“ ist der Index des Elasticsearch-Clusters.
"Anleitungen" ist die Art des Dokuments
"1" ist die ID des Eintrags unter howtos und itzgeek index.
Lesen
Sie können den folgenden Befehl verwenden, um die Daten auf Elasticsearch abzufragen.
# curl -X GET 'http://localhost:9200/itzgeek/howtos/1'
Hängen Sie ?pretty=true an, um eine formatierte Ausgabe zu erhalten.
# curl -X GET 'http://localhost:9200/itzgeek/howtos/1?pretty=true'
Die Ausgabe sieht wie folgt aus.
{ "_index" : "itzgeek", "_type" : "howtos", "_id" : "1", "_version" : 1, "found" : true, "_source":{ "Title" : "Installing Elasticsearch", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" } }
Aktualisieren
Um das vollständige Dokument zu aktualisieren, verwenden Sie den folgenden POST-Befehl. An Index, Typ und Dokument ändert sich nichts; Felder haben geänderte Daten.
# curl -X POST 'http://localhost:9200/itzgeek/howtos/1' -d '{ "Title" : "Installing LogStash", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" }'
Die Antwort sollte wie unten aussehen und Version:2 enthalten und erstellt:false; bedeutet, dass das Dokument aktualisiert wurde.
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"created":false}
Entfernen
Verwenden Sie den folgenden Befehl, um das Dokument zu entfernen.
# curl -X DELETE 'http://localhost:9200/itzgeek/howtos/1'
Die Antwort sieht wie folgt aus. Wenn das Dokument gefunden wird, erhalten Sie found:true und erhöhte Version .
{"found":true,"_index":"itzgeek","_type":"howtos","_id":"1","_version":3}
Wenn das Dokument nicht gefunden wird, erhalten Sie found:false und erhöhte Version .
{"found":false,"_index":"itzgeek","_type":"howtos","_id":"1","_version":4}
Das ist alles!, Sie haben Elasticsearch erfolgreich auf Ubuntu 14.10 / RHEL 7 / Linux Mint 17 installiert und konfiguriert.
Links:
Elasticsearch =elastisearch.org
SetupGuide =Anleitung