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

So installieren Sie den ELK-Stack auf RHEL 8

Der ELK-Stack ist auch als Elastic-Stack bekannt und besteht aus vier Open-Source-Projekten:Elasticsearch, Logstash, Kibana und Beats. Es hilft Ihnen, alle Ihre Protokolle an einem Ort zu speichern, und bietet die Möglichkeit, Daten oder Probleme zu analysieren und zu visualisieren, indem die Ereignisse zu einem bestimmten Zeitpunkt korreliert werden.

Diese Anleitung hilft Ihnen bei der Installation des ELK-Stacks auf RHEL 8.

Komponenten

Elasticsearch – Eine Open-Source-Volltextsuchmaschine. Es speichert eingehende Protokolle von Logstash und bietet die Möglichkeit, die Protokolle/Daten in Echtzeit zu durchsuchen

Logstash – Führt die Datenverarbeitung (Sammeln, Anreichern und Transformieren) von eingehenden Protokollen durch, die von Beats (Forwarder) gesendet werden, und sendet sie an Elasticsearch

Kibana – Bietet Visualisierung von Daten oder Protokollen von Elasticsearch.

Beats – Wird auf Client-Rechnern installiert, sammelt und sendet Protokolle über das Beats-Protokoll an Logstash.

Umgebung

Um einen voll funktionsfähigen ELK-Stack zu haben, bräuchten wir zwei Maschinen, um die Erfassung von Protokollen zu testen.

Hostname Betriebssystem IP-Adresse Zweck
elk.itzgeek.local RHEL 8 192.168.1.10 ELK-Stapel
client.itzgeek.local CentOS 7 192.168.1.20 Client-Rechner (Filebeat)

Voraussetzungen

Installieren Sie Java

Da Elasticsearch auf Java basiert, muss entweder OpenJDK oder Oracle JDK auf Ihrem Computer installiert sein.

LESEN: So installieren Sie Java auf RHEL 8

Hier verwende ich OpenJDK 1.8.

yum -y Java installieren

Überprüfen Sie die Java-Version.

Java-Version

Ausgabe:

openjdk-Version „1.8.0_212“OpenJDK-Laufzeitumgebung (Build 1.8.0_212-b04)OpenJDK 64-Bit-Server-VM (Build 25.212-b04, gemischter Modus)

ELK-Repository konfigurieren

Importieren Sie den Elastic-Signaturschlüssel.

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

Richten Sie das Elasticsearch-Repository sowohl auf dem ELK-Server als auch auf dem Client ein.

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

Elasticsearch installieren und konfigurieren

Elasticsearch ist Open Source, die Volltextsuchmaschine bietet eine verteilte Suche und Analyse in Echtzeit mit der RESTful-Webschnittstelle. Elasticsearch speichert alle Daten, die von Logstash gesendet werden, und zeigt sie auf Benutzeranfrage über die Webschnittstelle (Kibana) an.

Installieren Sie Elasticsearch.

yum install -y elasticsearch-oss

Bearbeiten Sie die Konfigurationsdatei von Elasticsearch in

vi /etc/elasticsearch/elasticsearch.yml

Legen Sie den Clusternamen, den Knotennamen und die lauschende IP-Adresse gemäß Ihrer Umgebung fest.

cluster.name:elkstack node.name:elk.itzgeek.local network.host:192.168.1.10 

Wenn Sie eine lauschende IP-Adresse festlegen, müssen Sie Seed-Hosts und anfängliche Master-Knoten definieren.

discovery.seed_hosts:["elk.itzgeek.local "]cluster.initial_master_nodes:["elk.itzgeek.local "]

Konfigurieren Sie Elasticsearch so, dass es während des Systemstarts gestartet wird.

systemctl daemon-reloadsystemctl enable elasticsearchsystemctl start elasticsearch

Verwenden Sie CURL, um zu überprüfen, ob Elasticsearch auf die Abfragen antwortet.

curl -X GET http://192.168.1.10:9200

Ausgabe:

{ „name“ :„elk.itzgeek.local“, „cluster_name“ :„elkstack“, „cluster_uuid“ :„yws_6oYKS965bZ7GTh0e6g“, „version“ :{ „number“ :„7.2.0“, „build_flavor“ :„oss“, „build_type“ :„rpm“, „build_hash“ :„508c38a“, „build_date“ :„2019-06-20T15:54:18.811730Z“, „build_snapshot“ :false, „lucene_version“ :„8.0 .0", "Minimum_wire_compatibility_version" :"6.8.0", "Minimum_index_compatibility_version" :"6.0.0-beta1" }, "tagline" :"You Know, for Search"}

Überprüfen Sie den Zustand des Clusters, indem Sie den folgenden Befehl ausführen.

curl -XGET '192.168.1.10:9200/_cluster/health?pretty'

Ausgabe:Der Clusterstatus sollte grün sein.

{ "cluster_name" :"elkstack", "status" :"grün ", "timed_out" :false, "number_of_nodes" :1, "number_of_data_nodes" :1, "active_primary_shards" :0, "active_shards" :0, "relocating_shards" :0, "initializing_shards" :0, "unassigned_shards" :0, "delayed_unassigned_shards" :0, "number_of_pending_tasks" :0, "number_of_in_flight_fetch" :0, "task_max_waiting_in_queue_millis" :0, "active_shards_percent_as_number" :100.0}

Logstash installieren und konfigurieren

Logstash ist ein Open-Source-Tool zum Verwalten von Protokollen. Es sammelt die Protokolle, analysiert sie und speichert sie auf Elasticsearch. Über 160+ Plug-ins sind für Logstash verfügbar, die die Möglichkeit bieten, die verschiedenen Arten von Ereignissen ohne zusätzliche Arbeit zu verarbeiten.

Installieren Sie das Logstash-Paket.

yum -y install logstash-oss

Die Logstash-Konfiguration finden Sie unter /etc/logstash/conf.d/ .

Die Logstash-Konfigurationsdatei besteht aus drei Abschnitten, nämlich Eingabe, Filter und Ausgabe. Alle drei Abschnitte können in einer einzigen Datei gefunden werden oder getrennte Dateien enden mit .conf.

Ich empfehle Ihnen, eine einzelne Datei zum Platzieren von Eingabe-, Filter- und Ausgabeabschnitten zu verwenden.

vi /etc/logstash/conf.d/beats.conf

Im Eingabebereich konfigurieren wir Logstash so, dass es Port 5044 auf eingehende Protokolle von den Beats (Forwarder) überwacht, die auf Client-Rechnern installiert sind.

input { beats { port => 5044 }}

Im Filterabschnitt werden wir Grok verwenden, um die Protokolle zu parsen, bevor sie an Elasticsearch gesendet werden.

Der folgende Grok-Filter sucht nach dem syslog beschriftete Protokolle und versucht, sie zu parsen, um einen strukturierten Index zu erstellen. Dieser Filter ist sehr nützlich, nur um Syslog-Meldungen (/var/log/messages) zu überwachen.

filter { if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm :ss", "MMM tt HH:mm:ss" ] } }}

Weitere Filtermuster finden Sie auf der Grokdebugger-Seite.

Im Ausgabeabschnitt definieren wir den Ort, an dem die Protokolle gespeichert werden sollen, offensichtlich ein Elasticsearch-Knoten.

output { elasticsearch { hosts => ["192.168.1.10:9200"] index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }}

Starten und aktivieren Sie nun den Logstash-Dienst.

systemctl logstash startensystemctl logstash aktivieren

Warten Sie eine Minute, damit Logstash starten kann, und führen Sie dann den folgenden Befehl aus, um zu überprüfen, ob Port 5044 überwacht wird.

netstat -antup | grep -i 5044

Ausgabe:

tcp6 0 0 :::5044 :::* LISTEN 31014/java

Sie können Probleme mit Logstash mithilfe von Protokollen beheben.

cat /var/log/logstash/logstash-plain.log

Kibana installieren und konfigurieren

Kibana bietet die Visualisierung von Protokollen, die in Elasticsearch gespeichert sind. Installieren Sie Kibana mit dem folgenden Befehl.

yum -y installiere kibana-oss

Bearbeiten Sie die Datei kibana.yml.

vi /etc/kibana/kibana.yml

Standardmäßig lauscht Kibana auf localhost, was bedeutet, dass Sie von externen Computern nicht auf Kibana zugreifen können. Um dies zuzulassen, bearbeiten Sie die folgende Zeile und geben Sie die IP Ihres ELK-Servers an.

server.host:"0.0.0.0 "

Entkommentieren Sie die folgende Zeile und aktualisieren Sie sie mit der URL der Elasticsearch-Instanz.

elasticsearch.hosts:["http://192.168.1.10:9200 "]

Kibana beim Systemstart starten und aktivieren.

systemctl startet Kibanasystemctl aktiviert Kibana

Überprüfen Sie, ob Kibana auf Port 5601 lauscht.

netstat -antup | grep -i 5601

Ausgabe:

tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 3631/Knoten

Firewall

Konfigurieren Sie eine Firewall auf dem ELK-Server, um die Protokolle von Client-Computern zu erhalten.

5044 – Damit Logstash die Protokolle erhält

5061 – Zugriff auf Kibana von externen Rechnern aus.

firewall-cmd --permanent --add-port=5044/tcpfirewall-cmd --permanent --add-port=5601/tcpfirewall-cmd --reload

Als Nächstes werden wir Beats konfigurieren, um die Protokolle an den Logstash-Server zu senden.

Filebeat installieren und konfigurieren

Es sind vier Beats-Clients verfügbar

  1. Packetbeat – Netzwerkpaketdaten analysieren.
  2. Filebeat – Echtzeit-Einblick in Protokolldaten.
  3. Topbeat – Gewinnen Sie Erkenntnisse aus Infrastrukturdaten.
  4. Metrikbeat – Metriken an Elasticsearch senden.

Richten Sie das Elastic-Repository auf dem Clientcomputer ein, um das Filebeat-Paket abzurufen.

Installieren Sie Filebeat mit dem folgenden Befehl.

yum -y install filebeat

Die Filebeat-Konfigurationsdatei ist im YAML-Format, was bedeutet, dass die Einrückung sehr wichtig ist. Stellen Sie sicher, dass Sie die gleiche Anzahl von Leerzeichen wie im Leitfaden verwenden.

Filebeat-Konfigurationsdatei bearbeiten.

vi /etc/filebeat/filebeat.yml

Kommentieren Sie den Abschnitt output.elasticsearch: aus da wir Protokolle nicht direkt in Elasticsearch speichern werden.

#-------------------------- Elasticsearch-Ausgabe ------------------ ------------# output.elasticsearch:# Array von Hosts, zu denen eine Verbindung hergestellt werden soll. # hosts:["localhost:9200"] # Optionales Protokoll und grundlegende Authentifizierungsdaten. #Protokoll:"https" #Benutzername:"Elastic" #Passwort:"changeme"

Suchen Sie nun die Zeile output.logstash und ändern Sie die Einträge wie unten. Dieser Abschnitt definiert filebeat, um Protokolle an den Logstash-Server 192.168.1.10 zu senden auf Port 5044 .

. . .#----------------------------------------- Logstash-Ausgabe ------------------ ---------------output.logstash:# Die Logstash-Hosts hosts:["192.168.1.10:5044 "]. . .

Oben auf /etc/filebeat/filebeat.yml , würden Sie den Abschnitt Prospektoren sehen. Hier müssen Sie angeben, welche Protokolle an Logstash gesendet werden sollen.

Jeder Prospektor beginnt mit einem Zeichen.

Hier werden wir filebeat so konfigurieren, dass Systemprotokolle /var/log/messages gesendet werden zum Logstash-Server. Ändern Sie dazu den vorhandenen Prospektor unter Pfade Abschnitt wie unten gezeigt.

. . .filebeat.inputs:# Jedes - ist eine Eingabe. Die meisten Optionen können auf der Eingangsebene festgelegt werden, sodass # Sie verschiedene Eingänge für verschiedene Konfigurationen verwenden können. # Unten sind die eingangsspezifischen Konfigurationen aufgeführt. - Typ:log # Auf wahr ändern, um diese Eingangskonfiguration zu aktivieren. enabled:true # Pfade, die gecrawlt und abgerufen werden sollen. Glob-basierte Pfade. Pfade:- /var/log/messages #- c:\programdata\elasticsearch\logs\*. . .

Starten Sie den Dienst neu.

systemctl filebeat neu startensystemctl filebeat aktivieren

Zugriff auf Kibana

Greifen Sie über die folgende URL auf Kibana zu.

http://Ihre-IP-Adresse:5601/

Sie würden die Homepage von Kibana erhalten. Klicken Sie auf Selbst erkunden .

Bei Ihrem ersten Zugriff müssen Sie den Filebeat-Index zuordnen. Gehen Sie zu Verwaltung>> Indexmuster>> Indexmuster erstellen .

Geben Sie Folgendes in das Indexmuster ein Feld.

filebeat-*
Sie sollten mindestens einen Filebeat-Index wie unten sehen. Klicken Sie auf Nächster Schritt .

Wählen Sie @timestamp aus und klicken Sie dann auf Indexmuster erstellen .

@Zeitstempel

Überprüfen Sie Ihre Indexmuster und ihre Zuordnungen.

Klicken Sie nun auf Entdecken um die Protokolle anzuzeigen und Suchanfragen durchzuführen.

Schlussfolgerung

Das ist alles. Sie haben erfolgreich gelernt, wie man ELK Stack auf RHEL 8 installiert. Bitte teilen Sie uns Ihr Feedback im Kommentarbereich mit.


Cent OS
  1. So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter CentOS 8

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

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

  4. So installieren Sie Elasticsearch auf CentOS/RHEL 8

  5. So installieren Sie den ELK-Stack unter CentOS 7

So richten Sie den ELK-Stack unter Debian 10 / Debian 9 ein

So installieren Sie ELK Stack auf Ubuntu 18.04

So installieren Sie den ELK-Stack auf AlmaLinux 8

So installieren Sie den ELK-Stack unter CentOS 7

So installieren Sie den ELK-Stack unter CentOS 8

So installieren Sie den ELK-Stack unter Debian 8