Der Elastic Stack in der Praxis, Teil 2: Weitere Datenquellen anschließen

Im zweiten Artikel der Reihe zum Log Management mit dem Elastic Stack geht es um das Anschließen weiterer Datenquellen. Bisher haben wir mithilfe des Winlogbeat ein Windows-System überwacht und an ein zentrales Log Management angeschlossen. Nun sollen weitere Systeme folgen.

Dazu verwenden wir weitere Beats. Beats sind kleine Programme, die im Elastic Stack dafür verantwortlich sind, Daten zu sammeln und an eine zentrale Elasticsearch-Instanz zu übertragen. Sie werden auf den Systemen installiert, die Log-Daten produzieren. Es gibt eine Reihe von Beats für unterschiedliche Anwendungszwecke, die vollständige Liste ist auf der Elastic-Homepage verfügbar. In diesem Artikel werden wir Metricbeat und Filebeat vorstellen.

1. Metricbeat

Metricbeat liefert statistische Daten des Systems, auf dem es installiert ist, an Elasticsearch. Dazu zählen die Speicher-, CPU- oder Netzwerkauslastung und Informationen über laufende Prozesse. Über eine Vielzahl von Modulen ist Metricbeat außerdem in der Lage, statistische Informationen von anderen Diensten auf dem System, z. B. Kafka, Apache HTTPD oder Microsoft SQL, auszulesen.

1.1 Installation unter Linux

Zuerst muss auf dem Zielsystem das Elastic-Repository hinzugefügt werden, wie im ersten Teil beschrieben. Installieren Sie Metricbeat und sorgen Sie dafür, dass das Programm beim Systemstart automatisch gestartet wird:

sudo apt install metricbeat
sudo systemctl enable metricbeat

Die Konfigurationsdateien befinden sich im Verzeichnis /etc/metricbeat.

1.2 Installation unter Windows

Laden Sie Metricbeat für Windows von der Elastic-Website herunter. Entpacken Sie die .zip-Datei an einer Stelle Ihrer Wahl. Im Folgenden werden wir annehmen, dass der in der .zip-Datei enthaltene Ordner nach C:\Program Files\ entpackt und in metricbeat umbenannt wird.

Um Metricbeat als Windows-Dienst zu konfigurieren, öffnen Sie eine PowerShell als Administrator (Öffnen Sie das Startmenü, suchen Sie nach PowerShell, klicken Sie den Treffer mit der rechten Maustaste an und wählen Sie „Als Administrator ausführen“).

Wechseln Sie in das Programmverzeichnis und führen Sie das dort bereitgestellte PowerShell-Skript aus, um den Windows-Dienst hinzuzufügen. Bestätigen Sie die Nachfrage mit M (einmal ausführen).

PS C:\Windows\system32> cd "C:\Program Files\metricbeat"
PS C:\Program Files\metricbeat> powershell.exe -ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1

Sicherheitswarnung
Führen Sie ausschließlich vertrauenswürdige Skripts aus. Skripts aus dem Internet können zwar nützlich sein, stellen
jedoch auch eine potenzielle Gefahr für Ihren Computer dar. Wenn Sie diesem Skript vertrauen, lassen Sie mit dem Cmdlet
 "Unblock-File" die Ausführung des Skripts ohne die Warnmeldung zu. Möchten Sie "C:\Program
Files\metricbeat\install-service-metricbeat.ps1" ausführen?
[N] Nicht ausführen  [M] Einmal ausführen  [H] Anhalten  [?] Hilfe (Standard ist "N"): M

Status   Name               DisplayName
------   ----               -----------
Stopped  metricbeat         metricbeat

Die Konfigurationsdateien finden Sie dort, wo Sie Metricbeat entpackt haben, bspw. im Verzeichnis C:\Program Files\metricbeat.

1.3 Konfiguration

Nun müssen wir Metricbeat die IP-Adresse oder den Hostnamen des Log Hosts, auf dem Elasticsearch läuft, mitteilen. Öffnen Sie die Konfigurationsdatei metricbeat.yml. Suchen Sie die Zeilen

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["localhost:9200"]

und ersetzen Sie localhost durch den Hostnamen oder die IP-Adresse des Log Hosts.

Achtung: Mit der hier beschriebenen, einfachen Konfiguration überträgt Metricbeat alle Daten unverschlüsselt!

Die Beats liefern auch vorgefertigte Dashboards für Kibana mit, die importiert werden können. Dafür muss im Bereich setup.kibana die IP-Adresse oder der Hostname des Systems, auf dem Kibana läuft, angegeben werden. Suchen Sie setup.kibana und ersetzen Sie in der darauffolgenden Zeile

  #host: "localhost:5601"

localhost durch die korrekte IP oder den Hostnamen. Entfernen Sie auch das Kommentarzeichen # am Zeilenanfang.

1.4 Kibana-Dashboards importieren

Führen Sie den folgenden Befehl aus, um die mitgelieferten Dashboards in Kibana zu importieren. Verwenden Sie unter Windows eine PowerShell im metricbeat-Verzeichnis. Diesen Schritt müssen Sie nur einmalig ausführen, auch wenn Sie Metricbeat auf mehreren Systemen installieren.

Windows

.\metricbeat.exe setup --dashboards

Linux

sudo metricbeat setup --dashboards

1.5 Module aktivieren

Wenn Sie zusätzliche Module zur Überwachung anderer unterstützter Dienste aktivieren möchten, aktivieren Sie diese mithilfe des folgenden Befehls. Beachten Sie die Dokumentation des Moduls auf der Elastic-Website, die Auskunft darüber gibt, welche zusätzlichen Konfigurationen für das Modul vorzunehmen sind. Für jedes Modul steht im Unterverzeichnis modules.d des Konfigurationsverzeichnisses eine eigene Konfigurationsdatei bereit.

Windows

.\metricbeat.exe modules enable <modulname>

Linux

sudo metricbeat modules enable <modulname>

Wenn Sei kein zusätzliches Modul installieren, versendet Metricbeat nur Metriken des Betriebssystems.

1.6 Metricbeat starten

Starten Sie Metricbeat:

Windows

Start-Service metricbeat

Linux

sudo systemctl start metricbeat

1.7 Ansicht in Kibana

Öffnen Sie Kibana. Der Host, auf dem Metricbeat installiert wurde, sollte im Bereich Infrastructure aufgelistet werden. Klicken Sie links in der Seitenleiste auf das Infrastructure-Symbol. Der Host sollte als große Kachel erscheinen:

Klicken Sie die Kachel an und wählen „View Metrics“, erhalten Sie einige Visualisierungen grundlegender Metriken:

Weitere Informationen können Sie im Bereich Dashboards einsehen. Klicken Sie auf das Dashboards-Symbol in der Seitenleiste und schauen Sie sich die Dashboards an, die mit „[Metricbeat System]“ beginnen. Falls sie weitere Module aktiviert haben, für die Dashboards mitgeliefert werden, betrachten Sie auch diese. Jedes Dashboard können Sie nach Ihren Wünschen personalisieren. Sie können einzelne Visualisierungen verschieben, vergrößern, verkleinern, entfernen oder selbst erstellen.

Dashboard [Metricbeat System] Overview ECS
Dashboard [Metricbeat System] Host overview ECS

2. Filebeat

Filebeat liest die Logdateien anderer Dienste aus und überträgt sie zeilenweise an Elasticsearch. Viele Dienste lassen sich über vorgefertigte Module anbinden. Sie können aber auch den Dateipfad einer Log-Datei spezifizieren, den Filebeat auf neue Ereignisse überwacht.

2.1 Installation unter Linux

Installieren Sie das Filebeat-Paket analog zu Metricbeat:

sudo apt install filebeat
sudo systemctl enable filebeat

Die Konfigurationsdateien finden Sie im Verzeichnis /etc/filebeat.

2.2 Installation unter Windows

Auch unter Windows lässt sich Filebeat analog zu Metricbeat installieren. Das .zip-Paket finden Sie auf der Elastic-Website. Packen Sie das Paket aus und installieren Sie Filebeat als Windows-Dienst:

PS C:\Windows\system32> cd "C:\Program Files\filebeat"
PS C:\Program Files\metricbeat> powershell.exe -ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1

Sicherheitswarnung
Führen Sie ausschließlich vertrauenswürdige Skripts aus. Skripts aus dem Internet können zwar nützlich sein, stellen
jedoch auch eine potenzielle Gefahr für Ihren Computer dar. Wenn Sie diesem Skript vertrauen, lassen Sie mit dem Cmdlet
 "Unblock-File" die Ausführung des Skripts ohne die Warnmeldung zu. Möchten Sie "C:\Program
Files\filebeat\install-service-filebeat.ps1" ausführen?
[N] Nicht ausführen  [M] Einmal ausführen  [H] Anhalten  [?] Hilfe (Standard ist "N"): M

Status   Name               DisplayName
------   ----               -----------
Stopped  filebeat           filebeat

Die Konfigurationsdateien finden Sie dort, wo Sie Metricbeat entpackt haben, bspw. im Verzeichnis C:\Program Files\filebeat.

2.3 Konfiguration

Auch die Konfiguration von Filebeat erfolgt zunächst analog zu Metricbeat. Konfigurieren Sie den Elasticsearch-Output und die Kibana-Adresse wie oben beschrieben in der Datei filebeat.yml.

Falls Sie eine Log-Datei eines Dienstes überwachen möchten, für das Filebeat kein Modul mitliefert, suchen Sie die Zeile filebeat.inputs: in der Datei filebeat.yml und ergänzen Sie eine Logquelle wie folgt:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - c:\...\beispiel.log

2.4 Kibana-Dashboards importieren

Übertragen Sie die Dashboards in Kibana:

Windows

.\filebeat.exe setup --dashboards

Linux

sudo filebeat setup --dashboards

2.5 Module aktivieren

Ein Beispiel eines Filebeat-Moduls ist das Elasticsearch-Modul. Die Logs, die Elasticsearch während des Betriebs erstellt, lassen sich automatisch von einer Filebeat-Installation auf demselben System auslesen. Aktivieren Sie das Modul wie folgt:

Windows

.\filebeat.exe modules enable elasticsearch

Linux

sudo filebeat modules enable elasticsearch

Das Modul erfordert eine zusätzliche Konfiguration in der Datei modules.d/elasticsearch.yml. Sie müssen dort den Pfad zu den Elaticsearch-Logdateien angeben. Orientieren Sie sich an dem folgenden Beispiel, das die System-Logs von Elasticsearch ausliest.

# Module: elasticsearch
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.2/filebeat-module-elasticsearch.html

- module: elasticsearch
  # Server log
  server:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/var/log/elasticsearch/*_server.json"]

    # Convert the timestamp to UTC. Requires Elasticsearch >= 6.1.
    #var.convert_timezone: true

  gc:
    enabled: false
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

  audit:
    enabled: false
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

    # Convert the timestamp to UTC. Requires Elasticsearch >= 6.1.
    #var.convert_timezone: false

  slowlog:
    enabled: false
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

    # Convert the timestamp to UTC. Requires Elasticsearch >= 6.1.
    #var.convert_timezone: false

  deprecation:
    enabled: false
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths:

    # Convert the timestamp to UTC. Requires Elasticsearch >= 6.1.
    #var.convert_timezone: false

Sie können diese Datei für eine Standard-Linux-Installation übernehmen, für eine Windows-Installation müssen Sie den Pfad /var/log/elasticsearch/ anpassen, sodass er auf das Unterverzeichnis logs Ihrer Elasticsearch-Installation verweist, bspw. C:\Program Files\elasticsearch\logs.

Ein weiteres nützliches Modul ist das Syslog-Modul. Dieses erlaubt es, die Logs anderer Hosts über das Syslog-Protokoll zu empfangen und an Elasticsearch weiterzuleiten. Syslog wird von vielen Netzwerkkomponenten und Linux-basierten Systemen unterstützt.

2.6 Filebeat starten

Starten Sie Filebeat:

Windows

Start-Service filebeat

Linux

sudo systemctl start filebeat

2.7 Ansicht in Kibana

Alle Daten, die Filebeat an Elasticsearch überträgt, sehen Sie in der Discover-Ansicht. Im Bereich Logs werden bspw. die Logs des Elasticsearch-Moduls zusätzlich dargestellt. Von Filebeat mitgelieferte Dashbords finden Sie im Kibana-Bereich Dashboards.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.