GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

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

ELK-Stapel ist eine voll funktionsfähige Datenanalyseplattform, bestehend aus drei Open-Source-Tools Elasticsearch , Logstash und Kibana . Dieser Stapel hilft Ihnen, Protokolle zentral zu speichern und zu verwalten, und gibt Ihnen die Möglichkeit, Probleme zu analysieren, indem er die Ereignisse zu einem bestimmten Zeitpunkt korreliert.

Dieser Beitrag führt Sie durch die Installation des ELK-Stacks auf Ubuntu 18.04 / Ubuntu 16.04 .

Komponenten

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

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

Kibana – Bietet Visualisierung von Ereignissen und Protokollen.

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

Voraussetzungen

Installieren Sie Java

Elasticsearch erfordert entweder OpenJDK oder Oracle JDK auf Ihrem Computer verfügbar.

Hier verwende ich für diese Demo OpenJDK. Installieren Sie Java mit dem folgenden Befehl zusammen mit wget und dem HTTPS-Unterstützungspaket für APT.

sudo apt updatesudo apt install -y openjdk-8-jdk wget apt-transport-https

Überprüfen Sie die Java-Version.

Java-Version

Ausgabe:

openjdk-Version „1.8.0_181“OpenJDK-Laufzeitumgebung (Build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)OpenJDK 64-Bit-Server-VM (Build 25.181-b13, gemischter Modus)

Wenn Sie Oracle Java JDK verwenden möchten, lesen Sie.

LESEN :Installieren Sie Oracle Java JDK 10/8 auf Ubuntu 18.04

LESEN :Installieren Sie Oracle Java JDK 8 auf Ubuntu 16.04

ELK-Repository konfigurieren

ELK-Stapelpakete können einfach von Elastic CO bezogen werden indem Sie sein offizielles Repository einrichten .

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Elasticsearch installieren

Wir werden nun den Elasticsearch-Server installieren, eine Open-Source-Suchmaschine auf Basis von Lucene. Es bietet eine in Echtzeit verteilte, mandantenfähige Volltextsuchmaschine mit einer Webschnittstelle (HTTP) und schemafreien JSON-Dokumenten.

Installieren Sie Elasticsearch mit dem folgenden Befehl, v6.4 zum Zeitpunkt der Erstellung dieses Artikels.

sudo apt updatesudo apt install -y elasticsearch

Starten Sie den Elasticsearch-Dienst.

sudo systemctl start elasticsearchsudo systemctl enable elasticsearch

Warten Sie einige Minuten und führen Sie den folgenden Befehl aus, um den Status der Elasticsearch-REST-Schnittstelle anzuzeigen.

curl -X GET http://localhost:9200

Ausgabe:

{ „name“ :„nqS7TFZ“, „cluster_name“ :„elasticsearch“, „cluster_uuid“ :„vERyh1VpR46G9T21H_3gKQ“, „version“ :{ „number“ :„6.4.0“, „build_flavor“ :„default“ , „build_type“ :„deb“, „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“}

Die obige Ausgabe bestätigt, dass Elasticsearch einwandfrei funktioniert.

Logstash installieren

Logstash ist eine Open-Source-Engine zur Datenerfassung und Protokollanalyse. Es sammelt Protokolle, analysiert und speichert sie für die Suche auf Elasticsearch. Über 160+ Plugins sind für Logstash verfügbar, die die Möglichkeit bieten, eine andere Art von Ereignissen ohne zusätzliche Arbeit zu verarbeiten.

sudo apt install -y logstash

SSL-Zertifikat für Logstash erstellen (optional)

Es ist optional, den Forwarder (Filebeat), den wir auf Client-Rechnern installieren, so einzustellen, dass er ein SSL-Zertifikat für die sichere Übertragung von Protokollen verwendet.

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

Option 1:(Hostname oder FQDN)

Gehen Sie zum OpenSSL-Verzeichnis.

cd /etc/ssl/

Erstellen Sie nun das SSL-Zertifikat mit OpenSSL. Ersetzen Sie server.itzgeek.local mit dem Hostnamen Ihres Logstash-Servers.

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

Diese logstash-forwarder.crt sollten auf alle Client-Server kopiert werden, die Protokolle an den Logstash-Server senden.

Option 2:(IP-Adresse)

Führen Sie die folgenden Schritte aus, um ein SSL-Zertifikat für IP SAN zu erstellen.

Fügen Sie als Voraussetzung die IP-Adresse des Logstash-Servers zu SubjectAltName in der OpenSSL-Konfigurationsdatei hinzu.

sudo nano /etc/ssl/openssl.cnf

Suchen Sie nach [ v3_ca ] Abschnitt und aktualisieren Sie subjectAltName mit der IP-Adresse Ihres Logstash-Servers.

subjectAltName =IP:192.168.1.10 

Wechseln Sie in das OpenSSL-Verzeichnis.

cd /etc/ssl/

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

sudo openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt

Diese logstash-forwarder.crt sollten auf alle Client-Server kopiert werden, die Protokolle an den Logstash-Server senden.

SSL umwandeln

Konvertieren Sie den aktuellen Schlüssel in das PKCS8-Format, damit Logstash ordnungsgemäß funktioniert.

sudo openssl pkcs8 -in logstash-forwarder.key -topk8 -nocrypt -out logstash-forwarder.key.pem

Ändern Sie die Dateiberechtigung in „Weltweit lesbar“.

sudo chmod 644 /etc/ssl/logstash-forwarder.key.pem

Logstash konfigurieren

Die Logstash-Konfiguration besteht aus drei Abschnitten, nämlich Eingabe, Filter und Ausgabe. Sie können alle Abschnitte in einer einzigen Datei oder in einer separaten Datei für jeden Abschnitt ablegen und mit .conf enden .

Hier verwenden wir eine einzelne Datei zum Platzieren von Eingabe-, Filter- und Ausgabeabschnitten. Erstellen Sie eine Konfigurationsdatei unter /etc/logstash/conf.d/ Verzeichnis.

sudo nano /etc/logstash/conf.d/logstash.conf

Im Eingabebereich konfigurieren wir Logstash so, dass es Port 5044 auf eingehende Protokolle von Beats (Forwarder) überwacht, die sich auf Client-Computern befinden.

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

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

Im Filterbereich. Wir werden Grok verwenden, um Protokolle zu parsen, bevor wir sie zum Speichern an Elasticsearch senden.

Der folgende Grok-Filter sucht nach Protokollen mit der Bezeichnung syslog 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 GROK-Filtermuster finden Sie hier .

Im Ausgabeabschnitt definieren wir, wo die Protokolle gespeichert werden sollen, im Falle des ELK-Stacks natürlich Elasticsearch.

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

Starten und aktivieren Sie nun den Logstash-Dienst.

sudo systemctl restart logstashsudo systemctl enable logstash

Logstash-Protokolle:

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

Kibana installieren und konfigurieren

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

sudo apt install -y kibana
Standardmäßig lauscht Kibana auf localhost, was bedeutet, dass Sie von externen Computern nicht auf die Kibana-Weboberfläche zugreifen können.

Um den Zugriff freizugeben, bearbeiten Sie /etc/kibana/kibana.yml Datei.

sudo nano /etc/kibana/kibana.yml

Nehmen Sie Änderungen an der unteren Zeile mit Ihrer Server-IP-Adresse vor.

server.host:"192.168.1.10 "

Außerdem manchmal laufen Elasticsearch und Kibana auf unterschiedlichen Rechnern , aktualisieren Sie also die folgende Zeile mit der IP-Adresse des Elasticsearch-Servers.

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

Starten und aktivieren Sie Kibana beim Start des Computers.

sudo systemctl startet kibanasudo systemctl aktiviert kibana

Beats installieren

Es sind vier Beat-Clients verfügbar.

Packetbeat – Netzwerkpaketdaten analysieren.
Filebeat – Echtzeit-Einblick in Protokolldaten.
Topbeat – Gewinne Erkenntnisse aus Infrastrukturdaten.
Metrikschlag – Metriken an Elasticsearch senden.

Stellen Sie sicher, dass Clientcomputer den Hostnamen des Logstash-Servers auflösen können. Wenn Ihre Umgebung keinen DNS-Server hat , dann müssten Sie einen Host-Eintrag für den Logstash-Server auf dem Client-Rechner hinzufügen.

sudo nano /etc/hosts

Machen Sie einen Eintrag wie unten.

192.168.1.10 server.itzgeek.local

Filebeat installieren

Filebeat ist ein Software-Agent, der auf dem Remote-Client-Computer ausgeführt wird und je nach Konfiguration Protokolle zum Parsen an den Logstash-Server oder zum Speichern an Elasticsearch sendet.

HTTPS-Unterstützung für apt installieren.

sudo apt updatesudo apt install -y apt-transport-https

Filebeat ist im Elastic-Repository verfügbar, Sie müssen es also für die Filebeat-Installation einrichten.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Installieren Sie Filebeat mit dem folgenden Befehl.

sudo apt updatesudo apt install -y filebeat

Filebeat konfigurieren

Kopieren Sie zuerst die Datei logstash-forwarder.crt auf den Remote-Client-Rechner.

Überspringen Sie diesen Schritt, falls Sie SSL in Logstash nicht für eine sichere Kommunikation verwenden.
scp -pr [email protected] :/etc/ssl/logstash-forwarder.crt /etc/ssl

Bearbeiten Sie die Filebeat-Konfigurationsdatei /etc/filebeat/filebeat.yml um Protokolle an den Logstash-Server zu senden.

sudo nano /etc/filebeat/filebeat.yml

Die folgende Konfiguration dient zum Senden von Systemprotokollen (/var/log/syslog ) an den Logstash-Server. Für diese Demo habe ich /var/log/*.log auskommentiert um zu vermeiden, dass alle Protokolle an den Logstash-Server gesendet werden.

. . .filebeat.inputs:# Jedes - ist eine Eingabe. Die meisten Optionen können auf der Eingabeebene festgelegt werden, sodass # Sie verschiedene Eingaben für verschiedene Konfigurationen verwenden können. # Unten sind die eingabespezifischen Konfigurationen aufgeführt.- Geben Sie Folgendes ein:log # Ändern Sie diese Eingabe auf „true“, um diese Eingabekonfiguration zu aktivieren. aktiviert:wahr # Pfade, die gecrawlt und abgerufen werden sollen. Globbasierte Pfade. Pfade:- /var/log/syslog #- /var/log/*.log. . . Kommentieren Sie im Abschnitt Outputs den Abschnitt output.elasticsearch: aus da wir keine Anmeldungen bei Elasticsearch speichern werden.

Suchen Sie nun die Zeile output.logstash: und Einträge ändern, um Systemprotokolle an Logstash zu senden und auch den Speicherort des SSL-Zertifikats anzugeben.

Ersetzen Sie server.itzgeek.local mit IP-Adresse des Logstash-Servers, falls Sie IP SAN verwenden. . . .output.logstash:hosts:["server.itzgeek.local:5044 "] # Kommentieren Sie diese Zeile aus, wenn Sie auf dem Logstash-Server kein SSL verwenden ssl.certificate_authorities:["/etc/ssl/logstash-forwarder.crt "]. . .

Starten Sie den Filebeat-Dienst neu.

sudo systemctl restart filebeat

Das Protokoll von Filebeat befindet sich normalerweise in seiner Protokolldatei.

sudo cat /var/log/filebeat/filebeat

Zugriff auf die Kibana-Oberfläche

Greifen Sie über die folgende URL auf die Kibana-Weboberfläche zu.

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

ODER

http://Ihr-Server-Name:5601

Sie erhalten die Homepage von Kibana.

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

Geben Sie Folgendes in das Indexmuster ein Feld.

filebeat-*

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

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

@Zeitstempel

Sehen Sie sich die Indexmuster und ihre Zuordnung an.

Klicken Sie auf Entdecken in der linken Navigation, um die eingehenden Protokolle von Client-Rechnern anzuzeigen.

Das ist alles.


Ubuntu
  1. So installieren und verwenden Sie Elasticsearch unter Ubuntu 20.04

  2. So installieren Sie Elasticsearch, Logstash und Kibana 4 auf CentOS 7 / RHEL 7

  3. So installieren Sie Elasticsearch, Logstash und Kibana 4 auf Ubuntu 14.04 / 15.04

  4. So installieren und konfigurieren Sie Elasticsearch unter Ubuntu 20.04

  5. Installieren Sie Elasticsearch, Logstash und Kibana auf Ubuntu 20.04

So installieren Sie ELK Stack auf Ubuntu 18.04

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

So installieren Sie den ELK-Stack unter Ubuntu 18.04 LTS

So installieren Sie den ELK-Stack unter Ubuntu 20.04 LTS

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

So installieren Sie den ELK-Stack unter Ubuntu 20.04