Zurück zum Blog

So installieren Sie den Elastic Stack auf Ubuntu 18.04

So installieren Sie den Elastic Stack auf Ubuntu 18.04

Der Elastic Stack (früher bekannt als ELK-Stack) ist eine leistungsstarke Lösung für zentralisiertes Logging. Es handelt sich um eine Sammlung von Open-Source-Software, die von Elastic entwickelt wurde. Es ermöglicht Administratoren das Suchen, Analysieren und Visualisieren von Protokollen, die aus beliebigen Quellen in beliebigen Formaten generiert wurden. Dies ist eine Praxis, die als zentralisiertes Logging bekannt ist. Zentralisiertes Logging kann sehr praktisch sein, wenn es darum geht, Probleme mit Servern und Anwendungen genau zu lokalisieren, da es die Suche in allen Protokollen von einem einzigen Ort aus ermöglicht. Es kann auch helfen, Probleme über mehrere Server hinweg zu identifizieren, indem die Protokolle zu einem bestimmten Zeitpunkt korreliert werden.

In dieser Anleitung erfahren Sie, wie Sie den Elastic Stack auf Ubuntu 18.04 installieren. Folgen Sie zuerst unserem Tutorial, um ganz einfach Ihren Ubuntu-Server auf CloudSigma zu installieren.

Der Elastic Stack auf Ubuntu

Der Elastic Stack besteht aus den folgenden Komponenten:

  • Elasticsearch: Eine verteilte RESTful-Suchmaschine. Sie speichert alle gesammelten Daten.
  • Logstash: Die Datenverarbeitungskomponente des Elastic Stack. Sie sendet eingehende Daten an Elasticsearch.
  • Kibana: Eine Weboberfläche, die Such- und Protokollvisualisierungsfunktionen bietet.
  • Beats: Ein leichtgewichtiger Datenüberträger für einen bestimmten Zweck. Er kann Daten von zahlreichen Maschinen an Logstash oder Elasticsearch senden.

Sie müssen jede Komponente des Stacks manuell installieren.

Voraussetzungen

Bevor Sie mit der Installation des Elastic Stack fortfahren, müssen mehrere Systemanforderungen erfüllt sein:

Beachten Sie, dass die Speichermenge von der Anzahl der zu erfassenden und zu speichernden Protokolle abhängt. Zudem verarbeitet der Elastic Stack auch wertvolle Informationen über den Server. Um die Datenübertragung sicher zu halten, empfehlen wir dringend die Konfiguration eines TLS/SSL-Zertifikats. Folgen Sie diesem Tutorial, um ein kostenloses SSL-Zertifikat auf Ihrem Nginx-Server zu erhalten.

Zusätzlich zu einem verschlüsselten Server sind auch die folgenden Schritte erforderlich:

  • Ein FQDN (vollständig qualifizierter Domänenname). In dieser Anleitung wird dies <domain> sein.
  • Beide DNS-Einträge der folgenden Domänen verweisen auf den Server.
    • Ein A-Record mit <domain>, der auf die öffentliche IP des Servers verweist.
    • Ein A-Record mit www.<domain>, der auf die öffentliche IP des Servers verweist.

Installation des Elastic Stack

  • Konfiguration des Elastic-Repositorys

Die Komponenten des Elastic Stack sind nicht direkt aus dem offiziellen Ubuntu-Repository verfügbar. Glücklicherweise erlaubt Ubuntu 3.-Anbieter-Repositorys zur Installation von Paketen. Für unseren Zweck werden wir das Elastic-Paket-Repository hinzufügen. Das Repository bietet die neuesten Paket-Updates für alle Elastic-Pakete. Alle Elastic-Pakete sind mit dem Elasticsearch-Signierschlüssel signiert, um Paket-Spoofing zu verhindern. Fügen Sie zuerst den Schlüssel zum Ubuntu-Schlüsselbund hinzu:

Fügen Sie dann die Elastic-Quellenliste unter dem Verzeichnis „sources.list.d“ hinzu. Dies ist das dedizierte Verzeichnis, das APT zur Suche nach neuen Quellen verwendet:

Aktualisieren Sie abschließend den APT-Cache:

Gemäß der offiziellen Dokumentation wird empfohlen, jede der Komponenten in der in dieser Anleitung gezeigten Reihenfolge zu installieren. Dies stellt sicher, dass sich die Komponenten, von denen jedes Produkt abhängt, an der richtigen Stelle befinden.

  • Installation und Konfiguration von Elasticsearch

Sobald das Elastic-Repository konfiguriert ist, ist APT bereit, alle Elastic-Pakete herunterzuladen und zu installieren. Führen Sie den folgenden Befehl aus, um Elasticsearch zu installieren:

Jetzt können Sie Elasticsearch konfigurieren. Die Datei „elasticsearch.yml“ bietet Konfigurationsoptionen für Cluster, Nodes, Pfade, Netzwerke, Speicher, Gateway und andere. Die meisten davon sind in der Datei bereits vorkonfiguriert. Öffnen Sie als Nächstes die Elasticsearch-Konfigurationsdatei mit einem Texteditor Ihrer Wahl:

Elasticsearch lauscht standardmäßig auf Port 9200 von überall her. Wir empfehlen, den externen Zugriff auf Elasticsearch einzuschränken, um zu verhindern, dass Außenstehende Daten lesen oder die Elasticsearch-Cluster über die REST-API herunterfahren. Um den Zugriff auf Elasticsearch einzuschränken und die Sicherheit zu erhöhen, entfernen Sie das Kommentarzeichen vor der folgenden Zeile und ersetzen Sie deren Wert:

network.host: localhost

Wenn Elasticsearch auf eine bestimmte IP-Adresse lauschen soll, ersetzen Sie „localhost“ durch die Ziel-IP-Adresse. Dies ist die Mindestanforderung an die Konfiguration, bevor Sie Elasticsearch ausführen. Speichern und schließen Sie die Konfigurationsdatei. Starten Sie als Nächstes den Elasticsearch-Dienst. Es kann einen Moment dauern, bis Elasticsearch startet:

Danach müssen Sie sicherstellen, dass Elasticsearch bei jedem Systemstart des Servers automatisch gestartet wird:

Der folgende Befehl überprüft, ob der Elasticsearch-Dienst ausgeführt wird. Dazu muss lediglich eine HTTP-Anfrage gesendet werden:

sending an HTTP request

Die Antwort wird in etwa so aussehen. Es handelt sich um eine Antwort, die einige grundlegende Informationen über den lokalen Node anzeigt.

Installation und Konfiguration des Kibana-Dashboards

Kibana ist direkt über das Elastic-Repository verfügbar. Beachten Sie, dass Sie Kibana erst installieren sollten, nachdem Sie bereits Elasticsearch installiert haben. Vorausgesetzt, das Repository ist bereits verfügbar, kann APT Kibana direkt herunterladen und installieren:

Nach der Installation aktivieren und starten Sie den Kibana-Dienst:

Standardmäßig ist Kibana so konfiguriert, dass es nur auf „localhost“ lauscht. Für den externen Zugriff ist die Konfiguration eines Reverse-Proxys erforderlich. Hier wird Nginx als Reverse-Proxy fungieren. Verwenden Sie den Befehl openssl, um einen Kibana-Admin-Benutzer zu erstellen. Dies ist das Benutzerkonto für den Zugriff auf die Kibana-Weboberfläche. In diesem Beispiel lautet der Benutzername „kibana_admin“. Um eine bessere Sicherheit zu gewährleisten, empfehlen wir die Verwendung eines unüblichen Benutzernamens. Der folgende Befehl erstellt einen Admin-Benutzer für Kibana. Der Benutzername und das Passwort werden generiert und in der Datei „htpasswd.users“ gespeichert. Nginx muss so konfiguriert werden, dass es diesen Benutzernamen und dieses Passwort verwendet:

Geben Sie bei der Aufforderung ein Passwort ein und bestätigen Sie es. Dieses Passwort wird für den Zugriff auf die Kibana-Benutzeroberfläche wichtig sein. Danach müssen Sie eine Nginx-Server-Block-Datei erstellen. Zur Veranschaulichung wird diese example.com heißen. Es kann auch jeder andere beschreibende Name sein. Wenn FQDN- und DNS-Einträge für den Server konfiguriert sind, kann der Dateiname auch nach dem FQDN benannt werden:

Falls bereits Inhalte vorhanden sind, entfernen Sie diese und ersetzen Sie sie durch die folgenden Codezeilen:

Speichern und schließen Sie die Datei. Erstellen Sie einen symbolischen Link der neuen Konfiguration im Verzeichnis „sites-enabled“. Wenn bereits ein Link mit demselben Dateinamen existiert, ist dieser Schritt möglicherweise nicht erforderlich:

Der folgende Befehl veranlasst Nginx zu prüfen, ob ein Syntaxfehler vorliegt:

Wenn ein Syntaxproblem vorliegt, stellen Sie sicher, dass der Inhalt der Datei richtig platziert wurde. Starten Sie als Nächstes den Nginx-Dienst neu:

Weisen Sie UFW an, Verbindungen zu Nginx zuzulassen:

Kibana sollte nun über den FQDN oder die öffentliche IP-Adresse des Elastic Stack-Servers erreichbar sein. Überprüfen Sie die Statusseite des Kibana-Servers:

status page

Installieren und Konfigurieren von Logstash

Während Beats Daten direkt an die Datenbank von Elasticsearch’s senden kann, wird empfohlen, Logstash für die Verarbeitung der Daten zu verwenden. Logstash kann die Daten sammeln und in ein gemeinsames Format konvertieren, bevor sie in eine andere Datenbank exportiert werden. Führen Sie den folgenden APT-Befehl aus, um Logstash zu installieren:

Sobald die Installation abgeschlossen ist, ist es an der Zeit, Logstash zu konfigurieren. Die Konfigurationsdateien von Logstash liegen im JSON-Format vor. Sie finden sie alle im Verzeichnis „/etc/logstash/conf.d“. Es ist hilfreich, sich Logstash als eine Pipeline vorzustellen, die an einem Ende Daten aufnimmt, diese verarbeitet und an das Ziel weiterleitet. Eine Logstash-Pipeline erfordert zwei obligatorische Elemente – input und output mit einem optionalen Element – filter. Das input-Plugin nimmt die Daten auf, das filter-Plugin verarbeitet die Daten und das output-Plugin schreibt die Daten an das Ziel. Der folgende Befehl erstellt eine Konfigurationsdatei, die Logstash für die Filebeat-Eingabe einrichtet:

Geben Sie die folgende input-Konfiguration ein. Sie beschreibt eine beats-Eingabe, die auf Port 5044 über TCP lauscht:

Der nächste Schritt besteht darin, eine Konfigurationsdatei namens „10-syslog-filter.conf“ zu erstellen. Wir werden sie verwenden, um einen Filter für syslogs (Systemprotokolle) einzurichten:

Geben Sie den folgenden syslog-Konfigurationscode ein. Dieser Code ist direkt aus dem Elastic-Leitfaden verfügbar. Dieser Code erklärt die input-Konfiguration für Logstash:

Die nächste Konfigurationsdatei befasst sich mit der Ausgabe. Öffnen Sie eine neue Datei namens „30-elasticsearch-output.conf“:

Geben Sie den folgenden Code ein. Dieser Code erklärt Logstash die Ausgabekonfiguration:

Testen Sie die Logstash-Konfiguration. Führen Sie dann den folgenden Befehl aus:

Wenn kein Fehler auftritt, gibt Logstash die folgende Erfolgsmeldung aus. Wenn es nicht erfolgreich war, stellen Sie sicher, dass alle Konfigurationsdateien die richtigen Codes enthalten. Starten und aktivieren Sie schließlich den Logstash-Dienst:

Da Logstash nun erfolgreich läuft und vollständig konfiguriert ist, installieren wir Filebeat.

Installieren und Konfigurieren von Filebeat

Der Elastic Stack verwendet Data Shipper, bekannt als „Beats“, um Daten aus verschiedenen Quellen zu sammeln und diese an Logstash/Elasticsearch zu übertragen. Hier ist eine kurze Liste der verfügbaren Beats von Elastic:

  • Filebeat: Sammeln/Übertragen von Logdateien.
  • Metricbeat: Sammeln/Übertragen von Metriken aus Systemen und Diensten.
  • Packetbeat: Sammeln/Analysieren von Netzwerkdaten.
  • Winlogbeat: Sammeln von Windows-Ereignisprotokollen.
  • Auditbeat: Sammeln von Linux-Audit-Framework-Daten und Überwachen der Dateiintegrität.
  • Heartbeat: Überwachen von Diensten auf ihre Verfügbarkeit.

Für die Zwecke dieses Tutorials benötigen wir Filebeat, um lokale Logs an den Elastic Stack zu übertragen. Installieren Sie zuerst Filebeat:

Sie können nun Filebeat konfigurieren. Zuerst muss es eine Verbindung zu Logstash herstellen. Wir werden die Beispielkonfiguration verwenden, die mit Filebeat geliefert wird. Öffnen Sie die Konfigurationsdatei in einem Texteditor. Beachten Sie, dass die richtige Einrückung wichtig ist, da die Datei im YAML-Format vorliegt:

Suchen Sie den Abschnitt „output.elasticsearch“ und kommentieren Sie die folgenden Zeilen aus. Dadurch wird Filebeat so konfiguriert, dass Ereignisse zur weiteren Verarbeitung direkt an Elasticsearch/Logstash gesendet werden. Springen Sie als Nächstes zum Abschnitt „output.logstash“. Heben Sie anschließend die Auskommentierung der folgenden Zeilen auf:

output.logstash

Filebeat unterstützt Module, die seine Funktionalität erweitern können. In diesem Tutorial verwenden wir das System-Modul, das vom Systemprotokollierungsdienst gängiger Linux-Distributionen generierte Protokolle sammelt und analysiert. Aktivieren Sie das Filebeat-Systemmodul:

Der folgende Filebeat-Befehl listet alle aktivierten und deaktivierten Module auf:

Standardmäßig ist Filebeat so eingestellt, dass es den Standardpfaden für Syslog- und Autorisierungsprotokolle folgt. Die Parameter der Module sind in der Konfigurationsdatei „/etc/filebeat/modules.d/system.yml“ verfügbar.

Der nächste Schritt besteht darin, die Indexvorlage in Elasticsearch zu laden. Ein Elasticsearch-Index bezeichnet eine Sammlung von Dokumenten mit ähnlichen Eigenschaften. Jeder Index hat einen Namen. Der Name ist erforderlich, wenn verschiedene Operationen darin durchgeführt werden. Die Indexvorlage wird automatisch jedes Mal angewendet, wenn ein neuer Index erstellt wird. Laden Sie als Nächstes die Vorlage:

Filebeat enthält standardmäßig ein Beispiel-Dashboard für Kibana. Es hilft, Filebeat-Daten in Kibana zu visualisieren. Vor der Verwendung des Dashboards ist es jedoch erforderlich, das Indexmuster zu erstellen und die Dashboards in Kibana zu laden. Während die Dashboards geladen werden, kontaktiert Filebeat Elasticsearch für Versionsinformationen. Zum Laden von Dashboards bei aktiviertem Logstash muss die Logstash-Ausgabe deaktiviert und die Elasticsearch-Ausgabe aktiviert sein. Der folgende Befehl erledigt dies:

Schließlich können Sie Filebeat starten:

Jetzt ist es an der Zeit, die Konfiguration des Elastic Stacks zu testen. Wenn er richtig konfiguriert wurde, sieht die Ausgabe in etwa so aus:

Elastic Stack configuration

Wenn die Ausgabe insgesamt 0 Treffer meldet, lädt Elasticsearch keine Protokolle unter dem von uns gesuchten Index. Dies weist darauf hin, dass ein Fehler bei der Konfiguration vorlag. Wenn die Ausgabe wie erwartet war, ist der Elastic Stack erfolgreich konfiguriert.

Kibana-Dashboards Übersicht

Jetzt ist es an der Zeit, die bereits installierte Kibana-Weboberfläche zu erkunden. Öffnen Sie zuerst das Kibana-Dashboard. Es sollte sich unter dem FQDN oder der öffentlichen IP-Adresse des Elastic Stack-Servers befinden:

Geben Sie die zuvor generierten Anmeldedaten ein. Nach dem Einloggen sieht das Dashboard wie folgt aus:

Elastic stack home

Wählen Sie in der linken Navigationsleiste „Discover“. Wählen Sie dann das Muster „filebeat-*“. Es zeigt alle Protokolle an, die in den letzten 15 Minuten gesammelt wurden. Es ist möglich, Protokolle zu suchen und zu durchsuchen sowie das Dashboard anzupassen:

customize the dashboard

Gehen Sie in der linken Navigationsleiste auf Dashboard >> Filebeat System. Hier sind alle Beispiel-Dashboards aus dem Systemmodul von Filebeat verfügbar.

Im folgenden Beispiel werden verschiedene Statistiken basierend auf den Syslog-Meldungen detailliert dargestellt:

Elastic Stack dashboard

Es kann auch berichtet werden, welche Benutzer Befehle mit sudo ausgeführt haben:

executed commands

Schließlich bietet Ihnen Kibana die Möglichkeit, viele andere Funktionalitäten wie Grafiken und Filterung zu erkunden, also zögern Sie nicht, auf eigene Faust auf Entdeckungsreise zu gehen.

Schlussgedanken

Der Elastic Stack ist eine leistungsstarke Lösung zur Analyse von Systemprotokollen. Bitte beachten Sie, dass zwar alle Protokolle oder indizierten Daten an Logstash gesendet werden können, unter Verwendung von Beats, diese jedoch nützlicher werden, wenn sie durch Logstash-Filter analysiert und strukturiert werden.

Frohes Schaffen!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.