
Dieser Artikel ist der erste in einer Reihe zum Thema Log-Management mit dem Elastic Stack. Der Elastic Stack ist eine Reihe von Open Source-Software-Produkten rund um die zentralisierte Speicherung, Auswertung und Visualisierung von Logs. Diese helfen dabei, den Status der eigenen Infrastruktur im Blick zu behalten, wie zum Beispiel das Active Directory oder die DHCP Logs und bieten eine zentrale Anlaufstelle zur Fehlersuche und machen auf Auffälligkeiten aufmerksam. Die Software steht in ihrer (sehr umfassenden) Grundversion kostenfrei zur Verfügung.
Das Thema haben wir hier im Blog schon mehrfach oberflächlich angesprochen, möchten nun aber konkreter werden. Unser Ziel ist es, Schritt für Schritt den Aufbau einer kleinen Demo-Umgebung zu begleiten. Wir werden Logs aus verschiedenen Quellen empfangen, verarbeiten und visualisieren. Dabei beginnen wir mit einer minimalen Umgebung und erweitern diese in den folgenden Artikeln um zusätzliche Features und Sicherheitsmechanismen. Lassen Sie uns beginnen!
Fahrplan

In diesem Artikel werden wir eine minimale Umgebung aufsetzen, um die Logs, die uns ein Windows-System zuspielen wird, zentral zu speichern. Außerdem installieren wir eine Software, die uns diese Logs in einem Web-Browser darstellt und sie durchsuchen lässt. Der Artikel gliedert sich in die folgenden Abschnitte:
- Installation der benötigten Komponenten
- Konfiguration der Komponenten, sodass sie miteinander kommunizieren können
- Erste Schritte in der Visualisierungs-Software Kibana
1. Installation
Die Komponenten des Elastic Stacks fühlen sich auf einem Linux-System am wohlsten, lassen sich aber auch problemlos auf einem Windows-System installieren. Wir zeigen beide Varianten. Zum Zeitpunkt der Erstellung ist die Version 7.2.0 aktuell.
Für unser Minimal-Setup benötigen wir folgende Komponenten:
- Auf einem Server, der die Logs empfängt und verarbeitet („Log Host“):
- Elasticsearch. Dies ist die Datenbank unseres Log-Management-Systems. Elasticsearch speichert alle Logs und stellt eine Schnittstelle zur Suche und Aggregation bereit.
- Kibana. Eine browserbasierte Oberfläche für Elasticsearch und den gesamten Elastic Stack.
- Auf dem zu überwachenden Windows-System:
- Winlogbeat. Dies ist eine ressourcenschonende Agent-Software, die die Log-Daten an den Log Host weiterleitet
In der Praxis ist es ab einer bestimmten Datenmenge ratsam, sich nicht auf einen einzelnen Log-Host zu beschränken. Elasticsearch lässt sich hervorragend als Cluster aus mehreren Servern betrieben. Dies geht aber über den Umfang dieses Artikel hinaus.
1.1 Installation des Log Hosts unter Linux
Elasticsearch
Für Debian- und Red Hat-basierte Linux-Distibutionen stehen Paketquellen bereit, die in den Paketmanager integriert werden können. Diese sind im Handbuch angegeben. Alternativ lässt sich Elasticsearch auch als Paket ausführbarer Dateien im .tar.gz
-Format herunterladen (klicken Sie auf der Downloadseite auf den Link „Linux“).
Wir empfehlen die Installation über den Paketmanager, da hier Updates einfacher zu installieren sind. Auf einem Debian-System führen wir dazu die folgenden Schritte aus:
- HTTPS-Unterstützung für das APT-Paketmanagement installieren (nur auf alten Debian-Versionen erforderlich):
sudo apt update && sudo apt install apt-transport-https
- Den Signaturschlüssel für die Elastic-Paketquelle importieren:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- Die Elastic-Paketquelle zum Paketmanager hinzufügen:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
- Die Paketquellen aktualisieren und das Elasticsearch-Paket installieren:
sudo apt update && sudo apt install elasticsearch
Sie finden die Konfigurationsdateien standardmäßig im Verzeichnis /etc/elasticsearch
.
Kibana
Kibana lässt sich auf demselben Weg installieren: als .tar.gz
-Paket („Linux“) oder über den Paketmanager.
Haben Sie Elasticsearch bereits über den Paketmanager installiert, müssen Sie keine zusätzliche Paketquelle hinzufügen – Elasticsearch und Kibana sind aus demselben Repository verfügbar. Die Installation ist daher in einem Schritt erledigt:
sudo apt install kibana
Die Kibana-Konfiguration wird über Dateien im Verzeichnis /etc/kibana
vorgenommen.
Damit sind alle nötigen Programme auf dem Log Host installiert, weiter geht es in Abschnitt 2.
1.2 Installation des Log Hosts unter Windows
Elasticsearch
Für Elasticsearch steht ein .zip
-Paket, das lediglich entpackt werden muss, oder ein .msi
-Installationspaket zur Verfügung. Wir verwenden in diesem Beispiel das .zip
-Paket, da die .msi
-Variante noch als Beta-Version gekennzeichnet ist.
Laden Sie das .zip
-Paket durch Klick auf „Windows“ auf der Download-Seite herunter und entpacken Sie es an einer Stelle Ihrer Wahl.
Sie finden die Konfigurationsdateien in dem ausgepackten Ordner in dem Unterverzeichnis config
.
Kibana
Kibana wird nur als .zip
-Paket angeboten. Laden Sie dieses von der Website herunter („Windows“) und entpacken Sie es an einer Stelle Ihrer Wahl.
Sie finden die Konfigurationsdateien auch hier in dem ausgepackten Ordner in dem Unterverzeichnis config
.
1.3 Installation des Agents (Winlogbeat)
Winlogbeat wird ebenfalls nur als .zip
-Paket angeboten. Dieses Paket muss auf dem zu überwachenden Rechner an einer Stelle Ihrer Wahl entpackt werden.
2. Konfiguration und Programmstart
2.1 Konfiguration von Elasticsearch
Zuerst sollten wir dafür sorgen, dass nicht nur lokal, sondern auch aus dem Netzwerk auf Elasticsearch zugegriffen werden kann. Andernfalls können wir später keine Logs von anderen Systemen an Elasticsearch senden. Dazu bearbeiten Sie die Konfigurationsdatei elasticsearch.yml
. Unter Windows bietet sich dazu der Editor Notepad++ an, Linux-Nutzer können bspw. vim
oder nano
verwenden. Suchen Sie die Zeile
#network.host: 192.168.0.1
und ersetzen Sie sie durch die Zeile
network.host: ["_site_", "_local_"]
Bachten Sie, dass Sie dies nur tun sollten, wenn Sie Ihrem lokalen Netzwerk vertrauen. Elasticsearch ist noch nicht durch eine Authentifizierung geschützt, diese werden wir erst in einem späteren Artikel einrichten.
Suchen Sie außerdem nach der Zeile
#discovery.seed_hosts: ["host1", "host2"]
und ersetzen Sie sie durch die folgende Zeilen:
node.name: node-1
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
cluster.initial_master_nodes: ["node-1"]
Lassen Sie uns die installierten Programme nun starten!
2.2 Konfiguration von Kibana
Auch Kibana soll nicht nur lokal, sondern auch über das Netzwerk erreichbar sein. Suchen Sie in der Konfigurationsdatei kibana.yml
die folgende Zeile:
#server.host: "localhost"
Wenn Sie Verbindungen aus allen Quellen erlauben möchten, ersetzen Sie diese Zeile durch:
server.host: "0.0.0.0"
Wenn Sie nur Verbindungen aus dem lokalen Netz erlauben möchten, setzen Sie statt 0.0.0.0
die lokale IP-Adresse des Log Hosts ein.
2.3 Starten der Dienste des Log Hosts
Linux
Die Programme integrieren sich in systemd. Starten Sie zuerst Elasticsearch:
sudo systemctl start elasticsearch
Dann Kibana:
sudo systemctl start kibana
Wenn Elasticsearch und Kibana beim Systemstart automatisch ausgeführt werden sollen, führen Sie folgende Befehle aus:
sudo systemctl enable elasticsearch
sudo systemctl enable kibana
Nach einer kurzen Wartezeit sollten Sie über einen Browser die Kibana-Benutzeroberfläche unter der URL http://localhost:5601
bzw. http://<IP des Log Hosts>:5601
aufrufen können.
Windows
Starten Sie Elasticsearch durch einen Doppelklick auf die Datei elasticsearch.bat
im Unterordner bin
. Es öffnet sich ein Kommandozeilenfenster, in dem der Start von Elasticsearch protokolliert wird. Wenn Elasticsearch erfolgreich gestartet wurde, sehen Sie die Meldung [<Systemname>] started
.

Starten Sie Kibana auf dieselbe Weise: Doppelklicken Sie die Datei bin\kibana.bat
. Es öffnet sich wieder ein Kommandozeilenfenster. Der Start kann eine Zeit lang dauern, es dauert auch etwas, bis die ersten Zeilen im Kommandozeilenfenster erscheinen. Sie sollten die Meldung[info][listening] Server running at http://localhost:5601
sehen, sobald Kibana erfolgreich gestartet wurde. Sie können dann in einem Webbrowser die URL http://localhost:5601
aufrufen. Dort sollten Sie die Kibana-Benutzeroberfläche erreichen.

In einem Produktivsystem sollten Sie Elasticsearch und Kibana nun als Dienste einrichten.
2.4 Konfiguration und Start von Winlogbeat
Öffnen Sie die Datei winlogbeat.yml
in dem Verzeichnis, in dem Winlogbeat entpackt wurde, mit einem Editor. Suchen Sie den folgenden Codeblock:
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]
Ersetzen Sie darin localhost
durch die IP-Adresse des Log Hosts, auf dem Elasticsearch läuft, z. B.:
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["10.0.2.15:9200"]
Speichern Sie Ihre Änderungen und starten Sie Winlogbeat durch Doppelklick auf winlogbeat.exe
. Es startet sich erneut ein Kommandozeilenfenster, dieses wird jedoch leer bleiben. In einer Produktivumgebung würde auch Winlogbeat im Hintergrund als Dienst ausgeführt.
Winlogbeat kann automatisch ein Dashboard in Kibana einrichten, das einige Standard-Visualisierungen der Daten anzeigt. Dazu muss über die PowerShell der folgende Befehl ausgeführt werden:
winlogbeat/winlogbeat.exe setup
3. Erste Schritte in Kibana
Kibana sollte nun eingerichtet und für den ersten Gebrauch bereit sein. Öffnen Sie die Adresse http://localhost:5601
bzw. http://<IP des Log Hosts>:5601
in einem Browser. Nach einer kurzen Ladesequenz werden Sie auf die Startseite geleitet.
In der folgenden Bilderreihe werden die wichtigsten Punkte für den Anfang erklärt.








Kibana ist sehr interaktiv und kann mit wenigen Klicks auch große Datenmengen filtern und diese je nach Wunsch visualisieren.
Im nächsten Teil der Blogreihe werden wir weitere Datenquellen an Elasticsearch anbinden.
Well done! Why can’t our people do this ??