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

So richten Sie einen Elastic Stack-Cluster mit mehreren Knoten auf RHEL 8 / CentOS 8 ein

Elastischer Stack, allgemein bekannt als ELK-Stack , es ist eine Gruppe von Open-Source-Produkten wie Elasticsearch , Logstash und Kibana . Elastic Stack wird von der Firma Elastic entwickelt und gepflegt. Mit Elastic Stack kann man Logstash mit Systemprotokollen füttern, es ist eine Datenerfassungs-Engine, die die Protokolle oder Daten aus allen Quellen akzeptiert und Protokolle normalisiert und die Protokolle dann zur Analyse an Elasticsearch weiterleitet , Indizierung , Suche und speichern und schließlich kann man mit Kibana die visualisierten Daten darstellen, mit Kibana können wir auch interaktive Grafiken und Diagramme basierend auf Benutzeranfragen erstellen.

In diesem Artikel zeigen wir, wie Sie einen Multi-Node-Elastic-Stack-Cluster (ELK Stack) auf RHEL 8-/CentOS 8-Servern einrichten. Im Folgenden finden Sie Details zu meinem Elastic Stack-Cluster:

Elasticsearch:
  • Drei Server mit mindestens RHEL 8 / CentOS 8
  • IPs &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 mit mindestens RHEL 8 / CentOS 8
  • IPs &Hostname – 192.168.56.20 (logstash1.linuxtechi. local) , 192.168.56.30 (logstash2.linuxtechi. local)
Kibana:
  • Ein Server mit mindestens RHEL 8 / CentOS 8
  • Hostname – kibana.linuxtechi.local
  • IP – 192.168.56.10
Dateischlag:
  • Ein Server mit mindestens CentOS 7
  • IP &Hostname – 192.168.56.70 (Webserver)

Beginnen wir mit der Einrichtung des Elasticsearch-Clusters,

Elasticsearch-Cluster mit 3 Knoten einrichten

Wie ich bereits erwähnt habe, habe ich Knoten für den Elasticsearch-Cluster behalten, melden Sie sich bei jedem Knoten an, legen Sie den Hostnamen fest und konfigurieren Sie yum/dnf-Repositories.

Verwenden Sie den folgenden hostnamectl-Befehl, um den Hostnamen auf den jeweiligen Knoten festzulegen,

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

Für CentOS 8 System müssen wir kein OS-Paket-Repository konfigurieren und für RHEL 8 Server, wenn Sie ein gültiges Abonnement haben und es dann bei Red Hat abonniert haben, um das Paket-Repository zu erhalten. Falls Sie das lokale yum/dnf-Repository für Betriebssystempakete konfigurieren möchten, beziehen Sie sich auf 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 eine Datei elastic.repo  Datei im Ordner /etc/yum.repos.d/ mit dem folgenden Inhalt

~]# vi /etc/yum.repos.d/elastic.repo[elasticsearch-7.x]name=Elasticsearch-Repository für 7.x-Paketebaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Speichern und beenden Sie die Datei

Verwenden Sie den folgenden rpm-Befehl auf allen drei Knoten, um den öffentlichen Signaturschlüssel von Elastic zu importieren

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

Fügen Sie die folgenden Zeilen in der Datei /etc/hosts auf allen drei Knoten hinzu,

192.168.56.40             elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60             elasticsearch3.linuxtechi.local

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

[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y 

Installieren Sie Elasticsearch mit dem Befehl below dnf auf allen drei Knoten,

[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -y

Hinweis: Falls die Betriebssystem-Firewall aktiviert ist und in jedem Elasticsearch-Knoten ausgeführt wird, lassen Sie die folgenden Ports mit dem folgenden Befehl firewall-cmd zu,

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

Konfigurieren Sie Elasticsearch, bearbeiten Sie die Datei „/etc/elasticsearch/elasticsearch.yml ” auf allen drei Knoten und fügen Sie Folgendes hinzu:

~]# vim /etc/elasticsearch/elasticsearch.yml…………………………………………cluster.name:opn-clusternode.name:elasticsearch1.linuxtechi.localnetwork.host:192.168 .56.40http.port:9200discovery.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: Fügen Sie auf jedem Knoten den korrekten Hostnamen im Parameter node.name und die IP-Adresse im Parameter network.host hinzu, und andere Parameter bleiben gleich.

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

~]# systemctl daemon-reload~]# systemctl enable elasticsearch.service~]# systemctl start elasticsearch.service

Verwenden Sie den folgenden Befehl „ss“, um zu überprüfen, ob der Elasticsearch-Knoten mit dem Abhören des Ports 9200 beginnt,

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

Verwenden Sie die folgenden Curl-Befehle, um den Status des Elasticsearch-Clusters zu überprüfen

[[email protected] ~]# curl  http://elasticsearch1.linuxtechi.local:9200[[email protected] ~]# curl -X GET  http://elasticsearch2.linuxtechi.local:9200/_cluster/health ?hübsch

Die Ausgabe des obigen Befehls würde in etwa so aussehen,

Die obige Ausgabe bestätigt, dass wir erfolgreich einen Elasticsearch-Cluster mit 3 Knoten erstellt haben und der Status des Clusters ebenfalls grün ist.

Hinweis: Wenn Sie die JVM-Heap-Größe ändern möchten, müssen Sie die Datei „/etc/elasticsearch/jvm.options bearbeiten ” und ändern Sie die folgenden Parameter, die zu Ihrer Umgebung passen,

  • -Xms1g
  • -Xmx1g

Kommen wir nun zu den Logstash-Knoten,

Logstash installieren und konfigurieren

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

Melden Sie sich bei beiden Knoten an und legen Sie den Hostnamen mit dem folgenden Befehl hostnamectl fest:

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

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

~]# vi /etc/hosts192.168.56.40             elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60             elasticsearch3.linuxtechi.local

Speichern und beenden Sie die Datei

Konfigurieren Sie das Logstash-Repository auf beiden Knoten und erstellen Sie eine Dateilogstash.repo unter dem Ordner /ete/yum.repos.d/ mit folgendem Inhalt,

~]# vi /etc/yum.repos.d/logstash.repo[elasticsearch-7.x]name=Elasticsearch-Repository für 7.x-Paketebaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Speichern und beenden Sie die Datei, führen Sie den folgenden 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 folgenden dnf-Befehl,

~]# dnf install java-openjdk -y

Führen Sie den folgenden dnf-Befehl auf beiden Knoten aus, um Logstash zu installieren,

[[email protected] ~]# dnf install logstash -y[[email protected] ~]# dnf install logstash -y

Konfigurieren Sie nun Logstash, führen Sie die folgenden Schritte auf beiden Logstash-Knoten aus,

Erstellen Sie eine Logstash-Konf-Datei, dafür kopieren wir zuerst die Beispiel-Logstash-Datei unter „/etc/logstash/conf.d/“

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

Bearbeiten Sie die conf-Datei und aktualisieren Sie den folgenden Inhalt,

# vi conf.d/logstash.confinput {  beats {    port => 5044  }}output {  elasticsearch {    hosts => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2. linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+ YYYY.MM.dd}"    #user => "elastic"    #password => "changeme"  }}

Geben Sie im Ausgabeabschnitt im Hosts-Parameter den FQDN aller drei Elasticsearch-Knoten an, andere Parameter lassen Sie unverändert.

Erlauben Sie den Logstash-Port „5044“ in der Betriebssystem-Firewall mit dem folgenden Firewall-cmd-Befehl,

~ # firewall-cmd --permanent --add-port=5044/tcp~ # firewall-cmd –neu laden

Starten und aktivieren Sie nun den Logstash-Dienst, führen Sie die folgenden systemctl-Befehle auf beiden Knoten aus

~]# systemctl start logstash~]# systemctl eanble logstash

Verwenden Sie den folgenden ss-Befehl, um zu überprüfen, ob der Logstash-Dienst beginnt, auf 5044 zu lauschen,

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

Die obige Ausgabe bestätigt, dass Logstash erfolgreich installiert und konfiguriert wurde. Kommen wir zur Kibana-Installation.

Kibana installieren und konfigurieren

Melden Sie sich beim Kibana-Knoten an und legen Sie den Hostnamen mit hostnamectl fest Befehl,

[[email protected] ~]# hostnamectl set-hostname "kibana.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#

Bearbeiten Sie die Datei /etc/hosts und fügen Sie die folgenden Zeilen hinzu

192.168.56.40             elasticsearch1.linuxtechi.local192.168.56.50             elasticsearch2.linuxtechi.local192.168.56.60             elasticsearch3.linuxtechi.local

Richten Sie das Kibana-Repository wie folgt ein:

[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo[elasticsearch-7.x]name=Elasticsearch-Repository für 7.x-Paketebaseurl=https://artifacts.elastic.co /packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md[[email protected] ~]# rpm --import https:// artefacts.elastic.co/GPG-KEY-elasticsearch

Führen Sie den folgenden dnf-Befehl aus, um Kibana zu installieren,

[[email protected] ~]# yum install kibana -y

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

[[email protected] ~]# vim /etc/kibana/kibana.yml…………server.host:„kibana.linuxtechi.local“server.name:„kibana.linuxtechi.local“elasticsearch.hosts:["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]…………

Kibana-Dienst starten und aktivieren

[[email protected] ~]# systemctl start kibana[[email protected] ~]# systemctl enable kibana

Kibana-Port „5601“ in der Betriebssystem-Firewall zulassen,

[[email protected] ~]# firewall-cmd --permanent --add-port=5601/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]# 

Greifen Sie über die folgende URL auf das Kibana-Portal / die GUI zu:

http://kibana.linuxtechi.local:5601

Über das Dashboard können wir auch unseren Elastic Stack-Clusterstatus überprüfen

Dies bestätigt, dass wir den Elastic Stack-Cluster mit mehreren Knoten erfolgreich auf RHEL 8/CentOS 8 eingerichtet haben.

Lassen Sie uns nun einige Protokolle von anderen Linux-Servern per Filebeat an Logstash-Knoten senden. In meinem Fall habe ich einen CentOS 7-Server. Ich werde alle wichtigen Protokolle dieses Servers per Filebeat an Logstash senden.

Melden Sie sich beim CentOS 7-Server an und installieren Sie das Filebeat-Paket mit dem folgenden RPM-Befehl,

[[email protected] ~]# 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.rpmVorbereitung...                          ################################# [100%]Aktualisierung/Installation...   1:filebeat-7.3.1-1                 ############################### ## [100 %][[E-Mail geschützt] ~]#

Bearbeiten Sie die Datei /etc/hosts und fügen Sie die folgenden Einträge hinzu:

192.168.56.20             logstash1.linuxtechi.local192.168.56.30             logstash2.linuxtechi.local

Konfigurieren Sie nun den Filebeat so, dass er Protokolle mithilfe der Lastausgleichstechnik an Logstash-Knoten senden kann, bearbeiten Sie die Datei „/etc/filebeat/filebeat.yml “ und fügen Sie die folgenden Parameter hinzu,

Unter „filebeat.inputs: ’ Abschnitt ändern ‘enabled:false ‘ zu ‘aktiviert:wahr ‘ und unter den „Pfade ”-Parameter geben die Speicherort-Protokolldateien an, die wir an logstash senden können. Kommentieren Sie im Output-Elasticsearch-Abschnitt „output.elasticsearch aus “ und Host Parameter. Entfernen Sie im Logstash-Ausgabeabschnitt die Kommentare für „output.logstash: “ und „Hosts: “ und fügen Sie die beiden Logstash-Knoten in den Hosts-Parametern sowie „loadbalance:true hinzu “.

[[email protected] ~]# vi /etc/filebeat/filebeat.yml……………………….filebeat.inputs:- type:log  enabled:true  paths:    - /var/log/messages - /var/log/dmesg    - /var/log/maillog    - /var/log/boot.log#output.elasticsearch:  #  hosts:["localhost:9200"]output.logstash:    hosts:["logstash1.linuxtechi. local:5044", "logstash2.linuxtechi.local:5044"]    Loadbalance:true………………………………………

Starten und aktivieren Sie den Filebeat-Dienst mit den folgenden systemctl-Befehlen,

[[email protected] ~]# systemctl start filebeat[[email protected] ~]# systemctl enable  filebeat

Gehen Sie jetzt zur Kibana-GUI und überprüfen Sie, ob neue Indizes sichtbar sind oder nicht,

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

Wie wir oben sehen können, sind die Indizes jetzt sichtbar, lassen Sie uns ein Indexmuster erstellen,

Klicken Sie in der Kibana-Sektion auf „Indexmuster“. Sie werden aufgefordert, ein neues Muster zu erstellen. Klicken Sie auf „Indexmuster erstellen“. “ und spezifizieren Sie den Pattern-Namen als „filebeat

Klicken Sie auf Nächster Schritt

Wählen Sie „Zeitstempel“. ” als Zeitfilter für Indexmuster und klicken Sie dann auf „Indexmuster erstellen“

Klicken Sie jetzt auf Entdecken, um das Filebeat-Indexmuster in Echtzeit zu sehen,

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

Das ist alles aus diesem Artikel. Bitte zögern Sie nicht, Ihr Feedback und Ihre Kommentare zu teilen, falls diese Schritte Ihnen helfen, einen Elastic Stack-Cluster mit mehreren Knoten auf einem RHEL 8-/CentOS 8-System einzurichten.


Cent OS
  1. So installieren Sie node.js unter RHEL 8 / CentOS 8 Linux

  2. So richten Sie einen SysLog-Server unter CentOS 7 / RHEL 7 ein

  3. So richten Sie den NFS-Server unter CentOS 7 / RHEL 7 ein

  4. So richten Sie Icinga Web 2 unter CentOS 7 / RHEL 7 ein

  5. So richten Sie Mutt in CentOS/RHEL ein

So richten Sie einen Hochverfügbarkeitscluster unter CentOS 8 / RHEL 8 ein

So richten Sie Icinga Web 2 unter CentOS 8 / RHEL 8 ein

So konfigurieren Sie einen Hochverfügbarkeitscluster unter CentOS 7 / RHEL 7

So richten Sie einen Chef 12 unter CentOS 7 / RHEL 7 ein

So richten Sie einen zentralisierten SysLog-Server unter CentOS 8 / RHEL 8 ein

So richten Sie einen Redis-Cluster in CentOS 8 ein – Teil 3