So erstellen Sie einen Elastic-Stack-Cluster mit mehreren Knoten auf RHEL8/CentOS8

So erstellen Sie einen Elastic-Stack-Cluster mit mehreren Knoten auf RHEL8/CentOS8

Elastic Stack, allgemein bekannt als ELK Stack, ist eine Reihe von Open-Source-Produkten, darunter Elasticsearch, Logstash und Kibana. Der Elastic Stack wird von Elastic entwickelt und gepflegt. Mithilfe des Elastic-Stacks können Systemprotokolle an Logstash gesendet werden, eine Datenerfassungs-Engine, die Protokolle oder Daten aus allen möglichen Quellen akzeptiert und die Protokolle normalisiert. Die Protokolle werden dann zur Analyse, Indizierung, Suche und Speicherung an Elasticsearch weitergeleitet und schließlich mit Kibana als visuelle Daten dargestellt. Mit Kibana können wir auch interaktive Diagramme basierend auf Benutzerabfragen erstellen.

In diesem Artikel zeigen wir, wie man einen Multi-Node-Elastic-Stack-Cluster auf einem RHEL 8-/CentOS 8-Server einrichtet. Hier sind die Details meines Elastic Stack-Clusters:

Elasticsearch:

  • Drei Server, minimale Installation von RHEL 8 / CentOS 8
  • IP und Hostname – 192.168.56.40 ( elasticsearch1.linuxtechi.local ), 192.168.56.50 ( elasticsearch2.linuxtechi.local ), 192.168.56.60 (elasticsearch3.linuxtechi.local)

Logstash:

  • Zwei Server, minimale Installation von RHEL 8 / CentOS 8
  • IP und Host – 192.168.56.20 ( logstash1.linuxtechi.local ), 192.168.56.30 ( logstash2.linuxtechi.local )

Kibana:

Ein Server mit minimalem RHEL 8 / CentOS 8IP & Hostname – 192.168.56.10 ( kibana.linuxtechi.local )

Filebeat:

  • Ein Server mit minimaler Installation von CentOS 7
  • IP und Hostname – 192.168.56.70 ( web-server )

Beginnen wir mit der Einrichtung unseres Elasticsearch-Clusters.

Einrichten eines 3-Knoten-Elasticsearch-Clusters

Wie bereits erwähnt, richten Sie die Knoten des Elasticsearch-Clusters ein, melden Sie sich bei jedem Knoten an, legen Sie den Hostnamen fest und konfigurieren Sie das Yum/DNF-Repository

Verwenden Sie den Befehl hostnamectl , um den Hostnamen auf jedem Knoten festzulegen:

[root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi.local"
[root@linuxtechi ~]# exec bash
[root@linuxtechi ~]#
[root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch2.linuxtechi.local"
[root@linuxtechi ~]# exec bash
[root@linuxtechi ~]#
[root@linuxtechi ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi.local"
[root@linuxtechi ~]# exec bash
[root@linuxtechi ~]#

Für das CentOS 8-System müssen wir kein OS-Paket-Repository konfigurieren. Für den RHEL 8-Server müssen Sie, wenn Sie über ein gültiges Abonnement verfügen, lediglich ein Abonnement bei Red Hat abschließen, um das Paket-Repository zu erhalten. Wenn Sie ein lokales Yum/DNF-Repository für OS-Pakete konfigurieren möchten, lesen Sie die folgende URL:

So richten Sie ein lokales Yum-/DNF-Repository auf einem RHEL 8-Server mithilfe einer DVD oder einer ISO-Datei ein

Konfigurieren Sie das Elasticsearch-Paket-Repository auf allen Knoten. Erstellen Sie im Ordner /etc/yum.repo.d/ eine Datei elastic.repo mit folgendem Inhalt:

~]# vi /etc/yum.repos.d/elastic.repo
[elasticsearch-7.x]
Name=Elasticsearch-Repository für 7.x-Pakete
Basis-URL = https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
aktiviert=1
autorefresh=1
Typ=rpm-md

Speichern Sie die Datei und beenden Sie das Programm.

Importieren Sie den öffentlichen Signaturschlüssel von Elastic mit dem rpm -Befehl auf allen drei Knoten.

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

Fügen Sie die folgenden Zeilen in die Datei /etc/hosts aller drei Knoten ein:

192.168.56.40 elasticsearch1.linuxtechi.local
192.168.56.50 elasticsearch2.linuxtechi.local
192.168.56.60 elasticsearch3.linuxtechi.local

Installieren Sie Java auf allen drei Knoten mit dem Befehl yum / dnf :

[root@linuxtechi ~]# dnf installiere java-openjdk -y
[root@linuxtechi ~]# dnf installiere java-openjdk -y
[root@linuxtechi ~]# dnf installiere java-openjdk -y

Installieren Sie Elasticsearch auf allen drei Knoten mit dem Befehl yum / dnf :

root@linuxtechi ~]# dnf installiere elasticsearch -y
[root@linuxtechi ~]# dnf installiere elasticsearch -y
[root@linuxtechi ~]# dnf installiere elasticsearch -y

Hinweis: Wenn die Firewall des Betriebssystems aktiviert ist und auf jedem Elasticsearch-Knoten ausgeführt wird, lassen Sie das Öffnen der folgenden Ports mit firewall-cmd zu:

~]# Firewall-cmd --permanent --add-port=9300/tcp
~]# Firewall-cmd --permanent --add-port=9200/tcp
~]# Firewall-cmd --reload

Um Elasticsearch zu konfigurieren, bearbeiten Sie die Datei /etc/elasticsearch/elasticsearch.yml auf allen Knoten und fügen Sie den folgenden Inhalt hinzu:

~]# vim /etc/elasticsearch/elasticsearch.yml
Clustername: opn-cluster
Knotenname: elasticsearch1.linuxtechi.local
Netzwerkhost: 192.168.56.40
http.port: 9200
discovery.seed_hosts: ["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]
cluster.initial_master_nodes: ["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]

Hinweis: Geben Sie auf jedem Knoten den richtigen Hostnamen in node.name und die richtige IP-Adresse in network.host ein und lassen Sie die anderen Parameter unverändert.

Starten und aktivieren Sie nun den Elasticsearch-Dienst auf allen drei Knoten mit dem Befehl systemctl :

~]# systemctl daemon-reload
~]# systemctl aktiviere elasticsearch.service
~]# systemctl starte elasticsearch.service

Verwenden Sie den folgenden ss -Befehl, um zu überprüfen, ob der Elasticsearch-Knoten mit dem Lauschen auf Port 9200 beginnt:

[root@linuxtechi ~]# ss -tunlp | grep 9200
tcp LISTEN 0 128 [::ffff:192.168.56.40]:9200 *:* Benutzer:(("java",pid=2734,fd=256))
[root@linuxtechi ~]#

Überprüfen Sie den Status des Elasticsearch-Clusters mit dem folgenden curl -Befehl:

[root@linuxtechi ~]# curl http://elasticsearch1.linuxtechi.local:9200
[root@linuxtechi ~]# curl -X GET http://elasticsearch2.linuxtechi.local:9200/_cluster/health?pretty

Die Ausgabe des Befehls lautet wie folgt:

Die obige Ausgabe zeigt, dass wir erfolgreich einen 3-Knoten-Elasticsearch-Cluster erstellt haben und der Clusterstatus grün ist.

Hinweis: Wenn Sie die JVM-Heapgröße ändern möchten, können Sie die Datei /etc/elasticsearch/jvm.options bearbeiten und die folgenden Parameter entsprechend Ihrer Umgebung ändern

  • -Xms1g
  • -Xmx1g

Fahren wir nun mit den Logstash-Knoten fort.

Installieren und Konfigurieren von Logstash

Führen Sie die folgenden Schritte auf beiden Logstash-Knoten aus.

Melden Sie sich bei beiden Knoten an und verwenden Sie hostnamectl um den Hostnamen festzulegen:

[root@linuxtechi ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"
[root@linuxtechi ~]# exec bash
[root@linuxtechi ~]#
[root@linuxtechi ~]# hostnamectl set-hostname "logstash2.linuxtechi.local"
[root@linuxtechi ~]# exec bash
[root@linuxtechi ~]#

Fügen Sie die folgenden Einträge in der Datei /etc/hosts beider Logstash-Knoten hinzu:

~]# vi /etc/hosts
192.168.56.40 elasticsearch1.linuxtechi.local
192.168.56.50 elasticsearch2.linuxtechi.local
192.168.56.60 elasticsearch3.linuxtechi.local

Speichern Sie die Datei und beenden Sie das Programm.

Konfigurieren Sie das Logstash-Repository auf beiden Knoten. Erstellen Sie eine Datei logstash.repo im Ordner /ete/yum.repo.d/ mit folgendem Inhalt:

~]# vi /etc/yum.repos.d/logstash.repo
[elasticsearch-7.x]
Name=Elasticsearch-Repository für 7.x-Pakete
Basis-URL = https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
aktiviert=1
autorefresh=1
Typ=rpm-md

Speichern und beenden Sie die Datei und führen Sie den rpm -Befehl aus, um den Signaturschlüssel zu importieren:

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

Installieren Sie Java OpenJDK auf beiden Knoten mit dem Befehl yum / dnf :

~]# dnf installiere java-openjdk -y

Führen Sie den Befehl yum / dnf von beiden Knoten aus, um Logstash zu installieren:

[root@linuxtechi ~]# dnf installiere logstash -y
[root@linuxtechi ~]# dnf installiere logstash -y

Konfigurieren Sie nun logstash. Führen Sie die folgenden Schritte auf beiden logstash-Knoten aus, um eine logstash-Konfigurationsdatei zu erstellen. Kopieren Sie zunächst die logstash-Beispieldatei unter /etc/logstash/conf.d/ :

# cd /etc/logstash/
# cp logstash-sample.conf conf.d/logstash.conf

Bearbeiten Sie die Konfigurationsdatei und aktualisieren Sie Folgendes:

# vi conf.d/logstash.conf
Eingabe {
 schlägt {
 Port => 5044
 }
}
Ausgabe {
 elastische Suche
 Hosts => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]
 index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+JJJJ.MM.tt}"
 #user => "elastisch"
 #password => "änder mich"
 }
}

Geben Sie im output den FQDN aller drei Elasticsearch-Knoten im hosts -Parameter an und lassen Sie die anderen Parameter unverändert.

Verwenden Sie firewall-cmd , um den Logstash-Port „5044“ in der Firewall des Betriebssystems zuzulassen:

~ # Firewall-Befehl --permanent --add-port=5044/tcp
~ # Firewall-Befehl –neu laden

Führen Sie nun den folgenden systemctl -Befehl auf jedem Knoten aus, um den Logstash-Dienst zu starten und zu aktivieren:

~]# systemctl starte logstash
~]# systemctl aktiviere logstash

Verwenden Sie den Befehl ss , um zu überprüfen, ob der Logstash-Dienst auf Port 5044 lauscht:

[root@linuxtechi ~]# ss -tunlp | grep 5044
tcp LISTEN 0 128 *:5044 *:* Benutzer:(("java",pid=2416,fd=96))
[root@linuxtechi ~]#

Die obige Ausgabe zeigt an, dass Logstash erfolgreich installiert und konfiguriert wurde. Fahren wir mit der Kibana-Installation fort.

Installieren und Konfigurieren von Kibana

Melden Sie sich beim Kibana-Knoten an und verwenden Sie hostnamectl um den Hostnamen festzulegen:

[root@linuxtechi ~]# hostnamectl set-hostname "kibana.linuxtechi.local"
[root@linuxtechi ~]# exec bash
[root@linuxtechi ~]#

Bearbeiten Sie die Datei /etc/hosts und fügen Sie die folgende Zeile hinzu:

192.168.56.40 elasticsearch1.linuxtechi.local
192.168.56.50 elasticsearch2.linuxtechi.local
192.168.56.60 elasticsearch3.linuxtechi.local

Richten Sie das Kibana-Repository mit dem folgenden Befehl ein:

[root@linuxtechi ~]# vi /etc/yum.repos.d/kibana.repo
[elasticsearch-7.x]
Name=Elasticsearch-Repository für 7.x-Pakete
Basis-URL = https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
aktiviert=1
autorefresh=1
Typ=rpm-md
[root@linuxtechi ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Führen Sie den Befehl yum / dnf aus, um Kibana zu installieren:

[root@linuxtechi ~]# yum installiere kibana -y

Konfigurieren Sie Kibana, indem Sie die Datei /etc/kibana/kibana.yml bearbeiten:

[root@linuxtechi ~]# vim /etc/kibana/kibana.yml
…………
server.host: "kibana.linuxtechi.local"
Servername: "kibana.linuxtechi.local"
elasticsearch.hosts: ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]
…………

Aktivieren und starten Sie den Kibana-Dienst:

root@linuxtechi ~]# systemctl starte kibana
[root@linuxtechi ~]# systemctl aktiviere Kibana

Erlauben Sie den Kibana-Port „5601“ in der System-Firewall:

[root@linuxtechi ~]# Firewall-cmd --permanent --add-port=5601/tcp
Erfolg
[root@linuxtechi ~]# Firewall-cmd --reload
Erfolg
[root@linuxtechi ~]#

Greifen Sie über die folgende URL auf die Kibana-Schnittstelle zu: http://kibana.linuxtechi.local:5601

Vom Dashboard aus können wir den Status des Elastic Stack-Clusters überprüfen.

Dies beweist, dass wir erfolgreich einen Elastic Stack-Cluster mit mehreren Knoten auf RHEL 8/CentOS 8 installiert und eingerichtet haben.

Lassen Sie uns nun einige Protokolle von anderen Linux-Servern über filebeat an den Logstash-Knoten senden. In meinem Fall habe ich einen CentOS 7-Server und werde alle wichtigen Protokolle dieses Servers über filebeat an Logstash senden.

Melden Sie sich beim CentOS 7-Server an und verwenden Sie den Befehl yum/rpm, um das Filebeat-Paket zu installieren:

[root@linuxtechi ~]# rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpm
Abrufen von https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpm
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren...
 1:filebeat-7.3.1-1 ######################################### [100%]
[root@linuxtechi ~]#

Bearbeiten Sie die Datei /etc/hosts und fügen Sie Folgendes hinzu:

192.168.56.20 logstash1.linuxtechi.local
192.168.56.30 logstash2.linuxtechi.local

Konfigurieren Sie filebeat nun so, dass es Protokolle mithilfe der Lastausgleichstechnologie an Logstash-Knoten senden kann. Bearbeiten Sie die Datei /etc/filebeat/filebeat.yml und fügen Sie die folgenden Parameter hinzu:

Ändern Sie im Abschnitt filebeat.inputs: enabled: false “ in enabled: true und geben Sie unter paths den Speicherort der Protokolldateien an, die wir an Logstash senden können. Kommentieren Sie output.elasticsearch und host aus. Entfernen Sie die Kommentare aus output.logstash: und hosts: fügen Sie im Parameter hosts zwei Logstash-Knoten hinzu und legen Sie loadbalance: true fest.

[root@linuxtechi ~]# vi /etc/filebeat/filebeat.yml
Dateibeat.Eingaben:
- Typ: Protokoll
 aktiviert: true
 Pfade:
 – /var/log/Nachrichten
 – /var/log/dmesg
 – /var/log/maillog
 – /var/log/boot.log
#Ausgabe.elasticsearch:
 # Hosts: ["localhost:9200"]
Ausgabe.logstash:
 Hosts: ["logstash1.linuxtechi.local:5044", "logstash2.linuxtechi.local:5044"]
 Lastausgleich: wahr

Verwenden Sie die folgenden beiden systemctl -Befehle, um filebeat -Dienst zu starten und zu aktivieren:

[root@linuxtechi ~]# systemctl starte filebeat
[root@linuxtechi ~]# systemctl aktiviere Filebeat

Gehen Sie jetzt zur Kibana-Benutzeroberfläche und überprüfen Sie, ob der neue Index sichtbar ist.

Wählen Sie in der linken Seitenleiste die Option „Verwaltung“ und klicken Sie unter „Elasticsearch“ auf „Indexverwaltung“:

Wie wir oben sehen können, ist der Index jetzt sichtbar. Erstellen wir jetzt das Indexmodell.

Klicken Sie im Kibana-Bereich auf „Index Patterns“. Wir werden aufgefordert, ein neues Modell zu erstellen. Klicken Sie auf „Create Index Pattern“ und geben Sie den Musternamen als „filebeat“ an:

Klicken Sie auf Weiter.

Wählen Sie „Zeitstempel“ als Zeitfilter für das Indexmuster und klicken Sie auf „Indexmuster erstellen“:

Klicken Sie jetzt, um das FileBeat-Indexmodell in Echtzeit anzuzeigen:

Dies zeigt an, dass der Filebeat-Agent erfolgreich konfiguriert wurde und wir Echtzeitprotokolle auf dem Kibana-Dashboard sehen können.

Das ist alles für diesen Artikel. Zögern Sie nicht, uns Ihr Feedback und Ihre Kommentare zu diesen Schritten mitzuteilen, die Ihnen beim Einrichten des Elastic Stack-Clusters auf RHEL 8-/CentOS 8-Systemen geholfen haben.

über: https://www.linuxtechi.com/setup-multinode-elastic-stack-cluster-rhel8-centos8/

Zusammenfassen

Oben ist die Methode, die ich Ihnen vorgestellt habe, um einen Multi-Node-Elastic-Stack-Cluster auf RHEL8/CentOS8 einzurichten. Ich hoffe, sie wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Bereitstellen eines Citus-Clusters mit mehreren Knoten in CentOS
  • Schritte zur Bereitstellungsmethode für Docker Stack für Webcluster

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.13

>>:  Der Lösungsdatensatz für Vue, der das Element beim ersten Mal nicht abrufen konnte

Artikel empfehlen

JS implementiert das Schlangenspiel

Inhaltsverzeichnis 1. Initialisierungsstruktur 2....

js verwendet Cookies, um die Seitenvorgänge des Benutzers zu speichern

Vorwort Während des Entwicklungsprozesses stoßen ...

So installieren Sie binäres MySQL unter Linux und knacken das MySQL-Passwort

1. Stellen Sie sicher, dass das System über die e...

So implementieren Sie die Anpassung des Echats-Diagramms an große Bildschirme

Inhaltsverzeichnis beschreiben erreichen Die Proj...

Definition und Funktion des zoom:1-Attributs in CSS

Heute wurde ich gefragt, wozu das Zoom-Attribut i...

Vier Möglichkeiten zum Wechseln von Registerkarten in VUE

Inhaltsverzeichnis 1. Statische Implementierungsm...

Zusammenfassung der mobilen Anpassungslösung von webpack

Inhaltsverzeichnis rem vw An UI-Frameworks von Dr...

Docker-Bereitstellung von Implementierungsschritten für Flask-Anwendungen

1. Zweck Schreiben Sie lokal eine Flask-Anwendung...