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

So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter CentOS 7 / RHEL 7

Der ELK-Stack ist auch als Elastic Stack bekannt und besteht aus Elasticsearch, Logstash und Kibana. Es hilft Ihnen, alle Ihre Protokolle an einem Ort zu speichern und die Probleme zu analysieren, indem die Ereignisse zu einem bestimmten Zeitpunkt korreliert werden.

Diese Anleitung hilft Ihnen bei der Installation des ELK-Stacks auf CentOS 7 / RHEL 7 .

Komponenten

Logstash – Es übernimmt die Verarbeitung (Sammeln, Anreichern und Senden an Elasticsearch) von eingehenden Protokollen, die von Beats (Forwarder) gesendet werden.

Elasticsearch – Es speichert eingehende Protokolle von Logstash und bietet die Möglichkeit, die Protokolle/Daten in Echtzeit zu durchsuchen

Kibana – Bietet Visualisierung von Protokollen.

Beats – Auf Client-Computern installiert, Protokolle über das Beats-Protokoll an Logstash senden.

Umgebung

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

ELK-Stapel

Betriebssystem:CentOS 7 Minimale IP-Adresse:192.168.1.10Hostname:server.itzgeek.local

Dateischlag

Betriebssystem:CentOS 7 Minimale IP-Adresse:192.168.1.20Hostname:client.itzgeek.local

Voraussetzungen

Installieren Sie Java

Da Elasticsearch auf Java basiert, stellen Sie sicher, dass entweder OpenJDK oder Oracle JDK auf Ihrem Computer installiert ist.

LESEN :So installieren Sie Oracle Java 8 auf CentOS 7 / RHEL 7

Hier verwende ich OpenJDK 1.8.

yum -y install java-1.8.0 wget

Überprüfen Sie die 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)

ELK-Repository konfigurieren

Importieren Sie den Elastic-Signaturschlüssel.

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

Richten Sie das Elasticsearch-Repository ein und installieren Sie es.

vi /etc/yum.repos.d/elk.repo

Fügen Sie den folgenden Inhalt zu elk.repo hinzu Datei.

[elasticsearch-6.x]name=Elasticsearch-Repository für 6.x-Paketebaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Elasticsearch installieren

Elasticsearch ist eine Open-Source-Suchmaschine, die eine verteilte Suche und Analyse in Echtzeit mit der RESTful-Webschnittstelle bietet. 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

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 oder nicht.

curl -X GET http://localhost:9200

Ausgabe:

 { „name“ :„1DwGO86“, „cluster_name“ :„elasticsearch“, „cluster_uuid“ :„xboS_6K5Q2OO1XA-QJ9GIQ“, „version“ :{ „number“ :„6.4.0“, „build_flavor“ :„ default“, „build_type“ :„rpm“, „build_hash“ :„595516e“, „build_date“ :„2018-08-17T23:18:47.308994Z“, „build_snapshot“ :false, „lucene_version“ :„7.4.0 ", "Minimum_wire_compatibility_version" :"5.6.0", "Minimum_index_compatibility_version" :"5.0.0" }, "tagline" :"You Know, for Search"}

Logstash installieren

Logstash ist ein Open-Source-Tool zum Verwalten von Ereignissen und Protokollen. Es sammelt die Protokolle, analysiert sie und speichert sie zur Suche auf Elasticsearch. Über 160+ Plugins 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 logstash installieren

SSL-Zertifikat erstellen (optional)

Filebeat (Logstash Forwarder) werden normalerweise auf Client-Servern installiert und verwenden ein SSL-Zertifikat, um die Identität des Logstash-Servers für eine sichere Kommunikation zu validieren.

Erstellen Sie ein SSL-Zertifikat entweder mit dem Hostnamen oder dem IP-SAN.

Option 1:(Hostname FQDN)

Wenn Sie den Hostnamen des Logstash-Servers in der Beats-Konfiguration (Forwarder) verwenden, stellen Sie sicher, dass Sie einen A-Eintrag für den Logstash-Server haben, und stellen Sie außerdem sicher, dass der Client-Computer den Hostnamen des Logstash-Servers auflösen kann.

Gehen Sie zum OpenSSL-Verzeichnis.

cd /etc/pki/tls/

Erstellen Sie nun das SSL-Zertifikat. Ersetzen Sie grün eine mit dem Hostnamen Ihres echten Logstash-Servers.

openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt -subj /CN=server.itzgeek.local 

Option 2:(IP-Adresse)

Wenn Sie statt des Hostnamens eine IP-Adresse verwenden möchten, befolgen Sie bitte die Schritte zum Erstellen eines SSL-Zertifikats für IP SAN.

Um ein IP-SAN-Zertifikat zu erstellen, müssten Sie eine IP-Adresse des Logstash-Servers zum SubjectAltName in der OpenSSL-Konfigurationsdatei hinzufügen.

vi /etc/pki/tls/openssl.cnf

Suchen Sie nach dem Abschnitt „[ v3_ca ]“ und ersetzen Sie grün eine mit der IP Ihres Logstash-Servers.

subjectAltName =IP:192.168.1.10 

Wechseln Sie in das OpenSSL-Verzeichnis.

cd /etc/pki/tls/

Erstellen Sie nun ein SSL-Zertifikat, indem Sie den folgenden Befehl ausführen.

openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
Diese logstash-forwarder.crt sollten auf alle Client-Rechner kopiert werden, die Protokolle an den Logstash-Server senden.

Logstash konfigurieren

Die Logstash-Konfiguration finden Sie unter /etc/logstash/conf.d/ . Die Logstash-Konfigurationsdatei besteht aus drei Abschnitten:Eingabe, Filter und Ausgabe. Alle drei Abschnitte können entweder 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/logstash.conf

Im ersten Abschnitt werden wir einen Eintrag für die Eingangskonfiguration einfügen. Die folgende Konfiguration stellt Logstash so ein, dass es auf Port 5044 auf eingehende Protokolle von den Beats (Forwarder) lauscht, die auf Client-Rechnern sitzen.

Fügen Sie außerdem die Details des SSL-Zertifikats im Eingabebereich für die sichere Kommunikation hinzu – Optional.

input { beats { port => 5044 # Auf False setzen, wenn Sie kein SSL verwenden ssl => true # Untere Zeilen löschen, wenn Sie kein SSL verwenden ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" }}

Im Filterbereich. Wir werden 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.

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 Seite grokdebugger.

Im Ausgabeabschnitt definieren wir den Ort, an dem die Protokolle gespeichert werden sollen. offensichtlich sollte es Elasticsearch sein.

output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}

Starten und aktivieren Sie nun den Logstash-Dienst.

systemctl logstash startensystemctl logstash aktivieren

Sie können alle Probleme beheben, indem Sie sich die Logstash-Protokolle ansehen.

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 Kibana installieren

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 die Kibana-Schnittstelle zugreifen können. Um dies zuzulassen, bearbeiten Sie die folgende Zeile mit Ihrer Maschinen-IP.

server.host:"192.168.1.10 "

Entkommentieren Sie die folgende Zeile und aktualisieren Sie sie mit der URL der Elasticsearch-Instanz. In meinem Fall ist es localhost.

elasticsearch.url:"http://localhost:9200 "

Kibana beim Systemstart starten und aktivieren.

systemctl startet Kibanasystemctl aktiviert Kibana

Firewall

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

5044 – Damit Logstash die Protokolle erhält

5061 – Zugriff auf die Kibana-Schnittstelle von der externen Maschine 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. Metrikschlag – Metriken an Elasticsearch senden.

Um die Systemprotokolle des Client-Rechners (z. B. client.itzgeek.local) zu analysieren, müssen wir Filebeat installieren . Beats.repo-Datei erstellen.

vi /etc/yum.repos.d/beats.repo

Fügen Sie den folgenden Inhalt der obigen Repo-Datei hinzu.

[elasticsearch-6.x]name=Elasticsearch-Repository für 6.x-Paketebaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md

Installieren Sie nun Filebeat mit dem folgenden Befehl.

yum -y install filebeat

Richten Sie einen Hosteintrag auf dem Clientcomputer ein, falls Ihre Umgebung keinen DNS-Server hat .

vi /etc/hosts

Machen Sie einen Host-Eintrag wie unten auf dem Client-Rechner.

 192.168.1.10 server.itzgeek.local-Server

Filebeat (beats) verwendet ein SSL-Zertifikat zur Validierung der Logstash-Serveridentität, kopieren Sie also die Datei logstash-forwarder.crt vom Logstash-Server zum Client.

Überspringen Sie diesen Schritt, falls Sie in Logstash kein SSL verwenden.

scp -pr [email protected] :/etc/pki/tls/certs/logstash-forwarder.crt /etc/ssl/certs/

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.

Öffnen Sie die Filebeat-Konfigurationsdatei.

vi /etc/filebeat/filebeat.yml

Oben sehen Sie den Abschnitt Prospektoren. Hier müssen Sie angeben, welche Protokolle an Logstash gesendet und wie sie behandelt werden sollen. Jeder Prospektor beginnt mit Zeichen.

Zu Testzwecken werden wir filebeat so konfigurieren, dass es /var/log/messages sendet zum Logstash-Server. Ändern Sie dazu den vorhandenen Prospektor unter Pfade Abschnitt.

Kommentieren Sie – /var/log/*.log aus um zu vermeiden, dass alle .log gesendet werden Dateien in diesem Verzeichnis an Logstash.

filebeat.inputs:- Typ:log # Auf true ändern, um diese Eingabekonfiguration zu aktivieren. aktiviert:wahr # Pfade, die gecrawlt und abgerufen werden sollen. Pfade: - /var/log/messages # - /var/log/*.log. . .

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

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 server.itzgeek.local zu senden auf Port 5044 und geben Sie den Pfad an, in dem das kopierte SSL-Zertifikat abgelegt wird

Ersetzen Sie server.itzgeek.local durch die IP-Adresse, falls Sie IP SAN verwenden .

. . .output.logstash:# Der Logstash-Server Hosts:["server.itzgeek.local :5044"] # Kommentieren Sie diese Zeile aus, wenn Logstash kein SSL verwendet ssl.certificate_authorities:["/etc/ssl/certs/logstash-forwarder.crt "]. . .

Starten Sie den Dienst neu.

systemctl startet filebeat neu

Beats-Protokolle werden normalerweise in Syslog-Dateien gefunden.

cat /var/log/filebeat/filebeat

Zugriff auf Kibana

Greifen Sie über die folgende URL auf Kibana zu.

http://deine-ip-adresse:5601/

Sie erhalten die Homepage von Kibana.

Bei Ihrer ersten Anmeldung müssen Sie den Filebeat-Index zuordnen. Gehen Sie zu Verwaltung>> Indexmuster .

Geben Sie Folgendes in das Indexmuster ein Feld.

filebeat-*

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

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

@Zeitstempel

Überprüfen Sie Ihre Indexmuster und ihre Zuordnungen.

Klicken Sie jetzt auf Entdecken, um die eingehenden Protokolle anzuzeigen und Suchanfragen durchzuführen.

Das ist alles.


Cent OS
  1. So installieren Sie Elasticsearch, Logstash und Kibana 4 auf CentOS 7 / RHEL 7

  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, Logstash und Kibana 4 auf Ubuntu 14.04 / 15.04

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

ELK Stack auf Ubuntu 16.04 einrichten – Installieren Sie ElasticSearch, Logstash und Kibana auf Ubuntu 16.04

So installieren Sie Elasticsearch, Logstash und Kibana (ELK Stack) unter Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie ELK Stack (Elasticsearch, Logstash und Kibana) unter Ubuntu 20.04

So installieren Sie den ELK-Stack unter CentOS 7

So installieren Sie den ELK-Stack unter CentOS 8

So installieren Sie Elasticsearch Logstash Kibana (Elastic Stack) unter Ubuntu 18.04