GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Elasticsearch unter CentOS 8 / RHEL 8

Elasticsearch ist eine Open-Source-Suchmaschine basierend auf Apache Lucene und bietet eine in Echtzeit verteilte Volltext-Suchmaschine mit einer HTTP-Webschnittstelle und schemafreien JSON-Dokumenten.

Elasticsearch wird in Java entwickelt. Die Open-Source-Version von Elasticsearch wird unter der Apache 2.0-Lizenz veröffentlicht, und die kommerzielle Version wird unter der Elastic-Lizenz veröffentlicht. Derzeit ist es nach Apache Solr die beliebteste Suchmaschine für Unternehmen.

Dieser Beitrag hilft Ihnen bei der Installation von Elasticsearch auf CentOS 8 / RHEL 8.

Voraussetzungen

Elasticsearch wird mit Java erstellt und das Paket enthält eine gebündelte Version von OpenJDK, was bedeutet, dass Sie Java für die Installation von Elasticsearch nicht separat installieren müssen. Das gebündelte OpenJDK befindet sich im JDK-Verzeichnis des Elasticsearch-Home-Verzeichnisses /usr/share/elasticsearch.

Installieren Sie Java

Um Ihre eigene Java-Version zu verwenden, installieren Sie die LTS-Version von Java und setzen Sie die Umgebungsvariable JAVA_HOME auf Ihrem System.

LESEN :So installieren Sie Java unter CentOS 8 / RHEL 8

Überprüfen Sie die auf dem System installierte Java-Version.

java -version

Ausgabe:

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Stellen Sie JAVA_HOME mit dem folgenden Befehl ein.

export JAVA_HOME=<JAVA_PATH>
Nachdem Sie Elasticsearch auf Ihrem System installiert haben, legen Sie JAVA_HOME in der Datei /etc/sysconfig/elasticsearch fest, damit Elasticsearch die benutzerdefinierte Java-Version verwenden kann.

Elasticsearch-Repository einrichten

Elastic bietet ein vorgefertigtes Binärpaket (rpm) für RHEL und seine Derivate. Laden Sie den öffentlichen Signaturschlüssel von Elastic herunter und installieren Sie ihn.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Kostenlose Version

Dieses Paket kann kostenlos verwendet werden. Es enthält Open-Source-, kostenlose und kostenpflichtige kommerzielle Funktionen. Wenn Sie ein Paket installieren, erhalten Sie eine Basislizenz. Sie können die Abonnementseite besuchen, um alle Funktionen aufzulisten, die in der kostenlosen und kommerziellen Version enthalten sind.

Sie können eine 30-tägige Testversion starten, um alle kostenpflichtigen Funktionen auszuprobieren. Am Ende des Testzeitraums funktionieren die kommerziellen Funktionen in einem eingeschränkten Modus. Sie können die Lizenz auf eine Basislizenz zurücksetzen, die Testversion verlängern oder ein Abonnement erwerben.

cat << EOF > /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
EOF

Open-Source-Version

Dieses Paket kann kostenlos verwendet werden und enthält nur Funktionen, die unter der Apache 2.0-Lizenz verfügbar sind.

cat << EOF > /etc/yum.repos.d/elasticsearch.repo 
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Elasticsearch installieren

Installieren Sie Elasticsearch (v7.x) mit dem folgenden Befehl.

Kostenlose Version

yum install -y elasticsearch

Open-Source-Version

yum install -y elasticsearch-oss

Aktivieren Sie Elasticsearch für den automatischen Start während des Systemstarts.

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

Nachdem Sie den Elasticsearch-Dienst gestartet haben, warten Sie mindestens eine Minute, damit er vollständig gestartet werden kann. Andernfalls schlägt der Test fehl.

Elastisearch sollte jetzt auf Port 9200 lauschen, um HTTP-Anfragen zu verarbeiten. Verwenden Sie curl, um die Antwort zu erhalten.

curl -X GET 'http://localhost:9200'

Sie sollten eine Antwort wie unten erhalten.

{
  "name" : "centos8.itzgeek.local",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch konfigurieren

Elasticsearch-Konfigurationsdateien befinden sich im Verzeichnis /etc/elasticsearch/. elasticsearch.yml ist die Hauptkonfigurationsdatei von Elasticsearch und enthält Standardeinstellungen für die Ausführung des Entwicklungsclusters. Elasticsearch-Protokolle werden im Verzeichnis /var/log/elasticsearch gespeichert.

Clustername

Die Einstellung cluster.name wird verwendet, um Knoten zu erkennen und automatisch mit anderen Knoten zu verbinden. Wenn eine Gruppe von Elasticsearch-Knoten im selben Netzwerk denselben Clusternamen hat, erkennen sie sich gegenseitig und bilden einen Cluster.

Ändern Sie den Standard-Clusternamen des Elasticsearch-Knotens, um eine automatische Verbindung mit anderen Knoten im selben Netzwerk zu vermeiden. Stellen Sie sicher, dass Sie einen eindeutigen Clusternamen verwenden.

Bearbeiten Sie die Datei elasticsearch.yml.

vi /etc/elasticsearch/elasticsearch.yml

Ersetzen Sie els-cluster durch den Namen Ihres Elasticsearch-Clusters.

cluster.name: els-cluster

Knotenname

Der node.name ist wie ein Hostname für den Elasticsearch-Server, der während des Dienststarts dynamisch generiert wird. Sie können den Knotennamen festlegen, indem Sie die folgende Zeile aktualisieren. Ersetzen Sie els-cluster-node01 durch Ihren Elasticsearch-Knotennamen.

node.name: els-cluster-node01

Zuhöradresse

Elasticsearch bindet an localhost (127.0.0.1)  und überwacht standardmäßig Portnummer 9200 auf HTTP-Datenverkehr. Es verwendet die Portnummer 9300 – 9400 für die Kommunikation zwischen Knoten innerhalb des Clusters.

Um einen Elasticsearch-Cluster mit mehreren Knoten zu bilden oder den Elasticsearch-Knoten für die Produktionsnutzung bereitzustellen, damit Anwendungen auf den Elasticsearch-Knoten zugreifen können, müssen Sie Elasticsearch so konfigurieren, dass es auf die IP-Adresse des Systems lauscht.

### Listening on particular IPv4 ###

network.host: 192.168.0.10

ODER

### Listen on All IP Address ###

network.host: 0.0.0.0

Sie müssen auch die folgenden Einstellungen mit Ihrer System-IP-Adresse aktualisieren.

discovery.seed_hosts: ["192.168.0.10"]

Starten Sie den Elasticsearch-Dienst neu.

systemctl restart elasticsearch

Warten Sie nach dem Neustart des Elasticsearch-Dienstes mindestens eine Minute, damit Elasticsearch vollständig gestartet werden kann.

Überprüfen Sie mit dem Befehl netstat, ob Elasticsearch auf Port 9200 auf allen IP-Adressen oder auf einer bestimmten IP-Adresse lauscht.

LESEN: netstat-Befehl unter CentOS 8 / RHEL 8 nicht gefunden

 netstat -antup | grep -i 9200

Ausgabe:

tcp6       0      0 :::9200                 :::*                    LISTEN      2143/java

Überprüfen Sie, ob sowohl der Knotenname als auch der Clustername richtig eingestellt wurden, indem Sie curl.

verwenden
curl -X GET 'http://192.168.0.10:9200'

Sie sollten eine Antwort wie unten erhalten.

{
  "name" : "els-cluster-node01",
  "cluster_name" : "els-cluster",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Mit Elasticsearch arbeiten

Lassen Sie uns einige Daten zu Elasticsearch hinzufügen. Sie können den Curl-Befehl verwenden, um die Daten in Elasticsearch über Port 9200 mit einer RESTful-API zu lesen, hinzuzufügen, zu löschen und zu aktualisieren.

Dokumente werden im folgenden Format gespeichert

Elasticsearch ⇒ Indizes ⇒ Typen ⇒ Dokumente ⇒ Felder

Indizes: Plural eines Indexes, wo die Daten von Elasticsearch gespeichert werden.

Typen: Es enthält mehrere Dokumente und ist wie der Datentyp.

Dokumente: Es enthält die Datenfelder.

Felder: Aktuelle Daten.

Daten hinzufügen

Verwenden Sie den folgenden Curl-Befehl, um Daten zu unserer Elasticsearch hinzuzufügen.

curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

Sie sollten die folgende Antwort mit „Ergebnis“ erhalten:„created.“

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}

Wo,

itzgeek: Der Index des Elasticsearch-Clusters.

Anleitungen: Die Art des Dokuments

1: Die ID des Eintrags unter howtos und itzgeek index.

Daten lesen

Verwenden Sie den folgenden Befehl, um Daten auf Elasticsearch abzufragen.

curl -X GET 'http://localhost:9200/itzgeek/howtos/1'

Hängen Sie ?pretty=true an den obigen Befehl 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,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "Title" : "Install Elasticsearch On RHEL 8",
    "Date" : "May 2019",
    "Tag" : "RHEL"
  }
}

Daten aktualisieren

Verwenden Sie den folgenden Befehl, um die Daten zu aktualisieren.

curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

An Index, Typ und Dokument ändert sich nichts. Felder werden jedoch geänderte Daten enthalten.

Die Antwort sollte wie unten aussehen und „_version“:2 und „result“:„updated“ enthalten, was bedeutet, dass das Dokument aktualisiert wurde.

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

Daten entfernen

Verwenden Sie den folgenden Befehl, um das Dokument zu löschen.

curl -X DELETE 'http://localhost:9200/itzgeek/howtos/1'

Die Antwort sieht wie folgt aus. Wenn das Dokument gefunden wird, erhalten Sie „Ergebnis“:„gelöscht“.

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":3,"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2,"_primary_term":1}

Wenn das Dokument nicht gefunden wird, erhalten Sie „result“:„not_found“.

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":4,"result":"not_found","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":3,"_primary_term":1}

Schlussfolgerung

Ich hoffe, Sie haben gelernt, wie Sie Elasticsearch unter CentOS 8 / RHEL 8 installieren und Daten in Elasticsearch hinzufügen, lesen, löschen und aktualisieren. Sie können auch einen Elasticsearch-Cluster mit mehreren Knoten einrichten, um große Datenmengen zu verarbeiten.


Cent OS
  1. So installieren Sie Gradle unter CentOS 8/7 und RHEL 8/7

  2. So installieren Sie Oracle Java 12/11/8 auf CentOS 6/RHEL 6

  3. So installieren Sie Oracle Java JDK 12/11/8 auf CentOS 7/RHEL 7

  4. So installieren Sie Graylog2 unter CentOS 7 / RHEL 7

  5. So installieren Sie Elasticsearch unter CentOS 8 / RHEL 8

So installieren Sie Java unter RHEL 8 / CentOS 8 Linux

So installieren Sie Java unter CentOS 7

So installieren Sie Elasticsearch auf CentOS 7

So installieren Sie Elasticsearch auf CentOS 8

So installieren Sie Graylog unter CentOS 8 / RHEL 8

So installieren Sie Graylog 3.0 unter CentOS 7 / RHEL 7