
Docker Compose auf dem VPS: Webserver, Datenbank & Reverse Proxy richtig betreiben
Praxisnaher Guide für Docker Compose auf dem VPS: Webserver, Datenbank, Reverse Proxy, TLS, Backups, Updates und Sicherheit richtig planen und betreiben.
Der ELK-Stack ist eine Kombination aus drei Open-Source-Werkzeugen: Elasticsearch, Logstash und Kibana. Zusammen bilden sie eine der leistungsfähigsten Plattformen für Log-Management, Datenanalyse und Visualisierung. Entwickelt wurde der Stack ursprünglich von Elastic NV, wobei alle drei Komponenten unter der Apache-2.0-Lizenz verfügbar sind.
Elasticsearch ist die zentrale Such- und Analysemaschine. Sie basiert auf Apache Lucene und ermöglicht blitzschnelle Volltextsuchen über große Datenmengen. Logstash dient als Pipeline für die Datenaufnahme, -transformation und -weiterleitung. Kibana stellt schließlich das Web-Frontend bereit, mit dem Anwender die gesammelten Daten in Form von Dashboards visualisieren können.
Eingesetzt wird der ELK-Stack typischerweise für zentralisiertes Log-Management in Unternehmen, Sicherheitsanalysen (SIEM), Application Performance Monitoring (APM) und Business Intelligence. Von kleinen Startups bis zu Großkonzernen wie Netflix, LinkedIn und Microsoft vertrauen zahlreiche Organisationen auf diese Technologie.
Die klassische Architektur des ELK-Stacks folgt einem mehrstufigen Prinzip. Auf der ersten Stufe stehen die Datenquellen, also Server, Anwendungen, Container oder Netzwerkgeräte. Diese generieren kontinuierlich Logs, Metriken und Events, die an die zentrale Pipeline übermittelt werden.
Im zweiten Schritt übernimmt Logstash die Verarbeitung. Mittels sogenannter Inputs werden Daten empfangen, durch Filter (grok, mutate, date, geoip) angereichert oder umgewandelt und über Outputs an Elasticsearch weitergeleitet. Alternativ kann auch der schlankere Beats-Agent verwendet werden, der direkt auf den Quell-Systemen läuft und Daten an Logstash oder Elasticsearch sendet.
| Komponente | Funktion | Typischer Einsatzort |
|---|---|---|
| Elasticsearch | Speicherung und Suche | Zentrale Server |
| Logstash | Verarbeitung und Transformation | Pipeline-Server |
| Kibana | Visualisierung | Web-Frontend |
| Beats | Leichtgewichtige Datensammler | Auf Quell-Systemen |
| Kafka/Redis | Message Broker | Bei hohen Datenmengen |
In modernen Setups wird der ELK-Stack zunehmend durch eine vierte Komponente ergänzt: die Elastic-Agent genannte Sammlung. Diese vereint die Funktionalität von Beats und Logstash in einer einzigen, zentral konfigurierbaren Komponente und vereinfacht das Management erheblich.
Ein zentrales Log-Management mit dem ELK-Stack bietet Unternehmen eine Vielzahl strategischer Vorteile. Der wohl wichtigste ist die vollständige Sichtbarkeit über die gesamte IT-Infrastruktur. Statt auf jedem Server einzeln nach Fehlern zu suchen, können Administratoren in Kibana zentral alle Logs durchsuchen und Korrelationen zwischen Systemen erkennen.
Die Geschwindigkeit, mit der Probleme identifiziert werden können, verbessert sich dramatisch. Wo früher stundenlanges Durchforsten von Textdateien notwendig war, genügt heute eine einzige Suchanfrage in Kibana. Durch vordefinierte Dashboards und Alerts lassen sich kritische Zustände in Echtzeit erkennen und automatisch Eskalationsketten auslösen.
Nicht zuletzt spielt auch die Compliance eine wichtige Rolle. Vorschriften wie die DSGVO, ISO 27001 oder PCI-DSS erfordern eine nachvollziehbare Protokollierung sicherheitsrelevanter Ereignisse. Der ELK-Stack ermöglicht es, diese Anforderungen durch manipulationssichere Speicherung und granulare Zugriffsrechte zu erfüllen.
Die Installation des ELK-Stacks kann auf verschiedene Weisen erfolgen: manuell, über Paketmanager oder mittels Docker-Containern. Für Produktionsumgebungen empfiehlt sich der Einsatz von Docker oder Kubernetes, da diese Ansätze reproduzierbar, skalierbar und leicht zu aktualisieren sind.
Im Folgenden ein exemplarisches docker-compose-Setup, das alle drei Kernkomponenten startet:
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.13.0
environment:
- discovery.type=single-node
- xpack.security.enabled=true
- ELASTIC_PASSWORD=securepassword
ports:
- "9200:9200"
logstash:
image: docker.elastic.co/logstash/logstash:8.13.0
volumes:
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
depends_on:
- elasticsearch
kibana:
image: docker.elastic.co/kibana/kibana:8.13.0
ports:
- "5601:5601"
depends_on:
- elasticsearch
Nach dem Start der Container ist Kibana unter http://localhost:5601 erreichbar. Bei produktiven Setups sollte zusätzlich ein Reverse-Proxy wie Nginx oder Traefik vorgeschaltet werden, um TLS-Verschlüsselung und Zugriffskontrolle zu gewährleisten.
Eine Logstash-Pipeline besteht aus drei Sektionen: input, filter und output. Im Input-Bereich wird definiert, woher die Daten kommen. Häufig verwendete Inputs sind file, beats, tcp, udp, http und syslog. Für typische System-Logs empfiehlt sich der file-Input mit automatischer Rotation-Erkennung.
Der Filter-Bereich ist das Herzstück jeder Pipeline. Hier werden eingehende Rohdaten in strukturierte Felder zerlegt. Der am häufigsten verwendete Filter ist grok, der mit regulären Ausdrücken unstrukturierte Logzeilen in benannte Felder parst. Ergänzend kommen oft mutate, date und geoip zum Einsatz.
input {
beats {
port => 5044
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:host} %{DATA:program}(?:\[%{POSINT:pid}\])?: %{GREEDYDATA:message}" }
}
date {
match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "syslog-%{+YYYY.MM.dd}"
}
}
Die Output-Sektion legt fest, wohin die verarbeiteten Daten geschrieben werden. In den meisten Fällen ist dies Elasticsearch, aber auch alternative Ziele wie S3, PostgreSQL oder Slack sind möglich. Eine Best Practice ist die Verwendung täglich wechselnder Indexe, um Datenmanagement und Backups zu vereinfachen.
Beats sind eine Familie von leichtgewichtigen Datensammlern, die direkt auf den Quell-Systemen installiert werden. Sie sind in Go geschrieben, verbrauchen minimal Ressourcen und übertragen die gesammelten Daten sicher an Elasticsearch oder Logstash. Jeder Beat ist auf einen bestimmten Anwendungsfall spezialisiert.
| Beat-Typ | Zweck | Typische Daten |
|---|---|---|
| Filebeat | Log-Dateien | Application- und System-Logs |
| Metricbeat | System-Metriken | CPU, RAM, Disk, Netzwerk |
| Packetbeat | Netzwerk-Traffic | HTTP, MySQL, Redis Protokolle |
| Winlogbeat | Windows Event Logs | Anwendungs- und Sicherheits-Logs |
| Auditbeat | Audit-Events | Datei- und Prozessaktivität |
| Heartbeat | Verfügbarkeitsprüfungen | Uptime-Monitoring |
Filebeat ist der am weitesten verbreitete Beat und ersetzt in vielen Setups den klassischen Syslog-Daemon. Mit dem Modul-System können beispielsweise Linux-Systemlogs (/var/log/syslog, /var/log/auth.log) ohne aufwendige Konfiguration eingesammelt werden.
Kibana ist das Herzstück für die Datenanalyse. Mit wenigen Klicks lassen sich aussagekräftige Dashboards erstellen, die einen umfassenden Überblick über den Zustand der IT-Infrastruktur bieten. Kibana bietet Dutzende von Visualisierungstypen, darunter Liniendiagramme, Tortendiagramme, Heatmaps, Karten und Zeitreihen-Analysen.
Für Einsteiger stehen vorgefertigte Dashboards zur Verfügung, die mit den Beats-Modulen automatisch geladen werden. Diese decken gängige Anwendungsfälle wie Apache-, Nginx-, MySQL- oder System-Monitoring ab und können als Ausgangspunkt für eigene Anpassungen dienen.
Fortgeschrittene Anwender nutzen Kibana Lens, eine drag-and-drop-basierte Oberfläche, um komplexe Visualisierungen zu erstellen. Mit der Vega-Lite-Integration sind darüber hinaus auch hochgradig individuelle Grafiken und Geo-Visualisierungen möglich.
In der Standard-Installation des ELK-Stacks ist die Sicherheitsfunktion X-Pack aktiviert. Diese bietet umfangreiche Features wie rollenbasierte Zugriffskontrolle (RBAC), TLS-Verschlüsselung, Audit-Logs und Single-Sign-On. Insbesondere in produktiven Umgebungen sollten diese Funktionen unbedingt aktiviert und korrekt konfiguriert werden.
Die rollenbasierte Zugriffskontrolle erlaubt es, präzise festzulegen, welche Benutzer auf welche Indizes, Dashboards und Funktionen zugreifen dürfen. So kann beispielsweise ein Entwicklerteam vollen Zugriff auf Application-Logs erhalten, während die Finanzabteilung nur Audit-Logs einsehen darf.
Für die Verschlüsselung der Kommunikation zwischen Elasticsearch-Knoten sowie zwischen Clients und Elasticsearch sollten TLS-Zertifikate konfiguriert werden. Hierbei können entweder selbstsignierte Zertifikate oder Zertifikate einer internen CA verwendet werden.
Mit wachsenden Datenmengen stoßen Single-Node-Setups schnell an ihre Grenzen. Elasticsearch ist von Grund auf für verteilte Setups konzipiert und unterstützt horizontale Skalierung. Ein typisches Produktions-Cluster besteht aus mindestens drei Master-Knoten, mehreren Data-Knoten und optionalen Coordinating-Knoten.
| Knoten-Typ | Anzahl | Aufgabe |
|---|---|---|
| Master | 3 (ungerade) | Cluster-Management, Metadaten |
| Data | 2+ | Speicherung und Suche |
| Coordinating | 2+ | Load-Balancing, Query-Routing |
| Ingest | 1+ | Daten-Vorverarbeitung |
Die Aufteilung in verschiedene Knoten-Typen ermöglicht eine optimale Ressourcennutzung. Data-Knoten benötigen viel RAM und schnellen Speicher, während Master-Knoten eher CPU-optimiert sein sollten. Bei besonders großen Setups empfiehlt sich der Einsatz dedizierter Coordinating-Knoten, um die Last auf den Data-Knoten zu reduzieren.
Erfolgreiches Log-Management mit dem ELK-Stack erfordert mehr als nur die technische Installation. Eine durchdachte Datenstrategie ist entscheidend, um langfristig von der Plattform zu profitieren. Dazu gehört die Definition klarer Aufbewahrungsfristen, die Verwendung einheitlicher Index-Templates und die Implementierung einer ILM-Policy (Index Lifecycle Management).
Mit ILM lassen sich Indizes automatisch in verschiedene Phasen überführen: Hot für aktive Daten mit schneller Hardware, Warm für weniger häufig abgefragte Daten und Cold oder Frozen für Archivierungszwecke. Diese Tiers sparen erhebliche Speicherkosten, da ältere Daten auf günstigere Storage-Systeme ausgelagert werden.
Schließlich sollte auch das Thema Kostenmanagement nicht vernachlässigt werden. Große Datenmengen können bei Cloud-basierten Setups schnell zu hohen Rechnungen führen. Durch Datenkompression, Sampling und konsequente Aufbewahrungsregeln lassen sich die Kosten deutlich reduzieren, ohne die analytische Aussagekraft zu beeinträchtigen.
Der ELK-Stack hat sich über mehr als ein Jahrzehnt als Quasi-Standard für Log-Management und Datenanalyse etabliert. Auch im Jahr 2026 ist er dank kontinuierlicher Weiterentwicklung, aktiver Community und eines riesigen Ökosystems an Integrationen die erste Wahl für Unternehmen jeder Größe.
Mit der Einführung von Elasticsearch der Version 8 wurden wichtige Verbesserungen wie vektorbasierte Suche, maschinelles Lernen und ein überarbeitetes Sicherheitskonzept eingeführt. Diese Features machen den Stack nicht nur für klassisches Log-Management, sondern auch für moderne Anwendungsfälle wie Security Analytics und AIOps relevant.
Wer eine leistungsfähige, flexible und zukunftssichere Lösung für die zentrale Verwaltung von Logs, Metriken und Events sucht, kommt am ELK-Stack nicht vorbei. Mit den in diesem Artikel beschriebenen Grundlagen gelingt der Einstieg in die Welt der datengetriebenen IT-Analyse zuverlässig und nachhaltig.
Der ELK Stack ist eine der mächtigsten Open-Source-Lösungen für zentrales Log-Management und besteht aus drei Kernkomponenten: Elasticsearch, Logstash und Kibana. Elasticsearch dient als verteilte Such- und Analyse-Engine, die riesige Datenmengen in nahezu Echtzeit durchsuchen kann. Logstash fungiert als Datenverarbeitungs-Pipeline, die Logs aus unterschiedlichsten Quellen sammelt, transformiert und an Elasticsearch weiterleitet. Kibana bildet die visuelle Schnittstelle, mit der Administratoren Dashboards erstellen, Daten visualisieren und tiefgreifende Analysen durchführen können.
In modernen IT-Infrastrukturen fallen täglich Gigabytes an Log-Daten an – von Webservern über Anwendungen bis hin zu Sicherheitssystemen. Ohne zentrale Log-Verwaltung ist es nahezu unmöglich, Fehler schnell zu identifizieren, Performance-Engpässe zu erkennen oder Sicherheitsvorfälle rechtzeitig zu bemerken. Der ELK Stack löst genau dieses Problem, indem er alle Logs an einem Ort konsolidiert, durchsuchbar macht und in aussagekräftigen Visualisierungen darstellt.
Besonders für mittelständische und große Unternehmen bietet der ELK Stack enorme Vorteile gegenüber proprietären Lösungen. Die Software ist kostenlos, hochgradig skalierbar und wird von einer riesigen Community ständig weiterentwickelt. Zudem existieren kommerzielle Erweiterungen wie Elastic Stack Platinum-Features, die zusätzliche Sicherheits-, Machine-Learning- und Monitoring-Funktionen bieten. Durch die flexible Architektur lässt sich der Stack sowohl On-Premise als auch in der Cloud betreiben.
Ein weiterer entscheidender Vorteil ist die horizontale Skalierbarkeit. Wenn das Datenvolumen wächst, können einfach zusätzliche Elasticsearch-Nodes hinzugefügt werden, um die Last zu verteilen. Dies macht den ELK Stack zur ersten Wahl für Unternehmen, die mit ihren Anforderungen mitwachsen möchten, ohne in teure Lizenzmodelle investieren zu müssen.
Elasticsearch ist das Herzstück des Stacks und basiert auf Apache Lucene, einer hochperformanten Volltextsuchmaschine. Es speichert Daten in JSON-Dokumenten und indiziert diese für blitzschnelle Suchabfragen. Dank seiner verteilten Architektur kann Elasticsearch Petabytes an Daten verarbeiten und liefert selbst bei komplexen Abfragen Ergebnisse in Millisekunden. Die REST-API ermöglicht eine einfache Integration in bestehende Systeme.
Logstash nimmt eine zentrale Rolle als Daten-Pipeline ein. Mit seinen zahlreichen Input-, Filter- und Output-Plugins kann Logstash Daten aus praktisch jeder Quelle annehmen – sei es aus Syslog-Dateien, Datenbanken, Message-Queues wie Kafka oder Cloud-Diensten. Die Filtersprache Grok ermöglicht es, unstrukturierte Log-Daten in strukturierte Felder umzuwandeln, was die spätere Analyse erheblich vereinfacht. Zudem können Anreicherungen mit GeoIP-Daten, DNS-Lookups oder Bedrohungsinformationen durchgeführt werden.
Kibana ist die visuelle Oberfläche, die den ELK Stack für Anwender erst richtig nutzbar macht. Über Kibana lassen sich interaktive Dashboards erstellen, die verschiedene Datenquellen kombinieren. Anwender können Zeitreihen analysieren, geografische Karten erstellen, Heatmaps generieren oder komplexe Suchabfragen in der Kibana Query Language (KQL) ausführen. Auch Alarme und Benachrichtigungen lassen sich direkt in Kibana konfigurieren.
Im erweiterten Elastic Stack kommen Beats als leichte Datensammler hinzu. Filebeat überwacht Log-Dateien, Metricbeat sammelt Systemmetriken, Packetbeat analysiert Netzwerkverkehr und Winlogbeat liest Windows-Ereignisprotokolle. Diese Agents sind ressourcenschonend und können auf praktisch jedem System installiert werden, um Daten sicher an Logstash oder direkt an Elasticsearch zu übertragen.
Bevor Sie mit der Installation beginnen, sollten Sie sicherstellen, dass Ihr System die Mindestanforderungen erfüllt. Für eine produktive Umgebung empfiehlt sich mindestens 8 GB RAM, 4 CPU-Kerne und 100 GB SSD-Speicher. Als Betriebssysteme eignen sich Ubuntu 22.04 LTS, Debian 12 oder CentOS Stream. Java ist eine Voraussetzung für Elasticsearch – aktuell wird mindestens OpenJDK 17 benötigt.
Die Installation auf einem Ubuntu-System gestaltet sich dank der offiziellen Elastic-Repositories besonders einfach. Zuerst fügen Sie den GPG-Schlüssel hinzu, dann das Repository, und installieren anschließend die Komponenten über den Paketmanager apt. Hier ein typischer Ablauf:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt-get update && sudo apt-get install elasticsearch logstash kibana
Nach der Installation müssen die Dienste konfiguriert und gestartet werden. Elasticsearch erfordert zunächst eine Initialkonfiguration, bei der ein Cluster-Name, Node-Name und Netzwerkeinstellungen festgelegt werden. Die Konfigurationsdatei befindet sich unter /etc/elasticsearch/elasticsearch.yml. Besonders wichtig ist die Einstellung network.host – in Produktionsumgebungen sollte diese auf eine interne IP-Adresse gesetzt werden, um den Cluster nicht ungeschützt im Internet zu exponieren.
Sicherheit spielt bei der ELK-Installation eine zentrale Rolle. Ab Version 8.x ist die Sicherheitsfunktion standardmäßig aktiviert. Das bedeutet, dass Elasticsearch beim ersten Start automatisch Passwörter generiert, die Sie notieren sollten. Diese Passwörter werden für die Kommunikation zwischen den Komponenten und den Zugriff auf Kibana benötigt. Mit dem Befehl sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto können Sie die Passwörter generieren und anzeigen lassen.
Für Produktionsumgebungen empfiehlt sich die Konfiguration von TLS-Zertifikaten, um die Kommunikation zwischen den Knoten und Clients zu verschlüsseln. Auch die regelmäßige Sicherung der Elasticsearch-Daten mittels Snapshots ist essenziell, um Datenverlust zu vermeiden. Die Snapshots können in Cloud-Speichern wie AWS S3, Azure Blob Storage oder lokal auf NFS-Freigaben abgelegt werden.
Eine gut durchdachte Logstash-Konfiguration ist der Schlüssel zu einem effizienten Log-Management. Die Konfiguration besteht aus drei Sektionen: input, filter und output. Im Input-Block definieren Sie, woher die Daten kommen, im Filter-Block werden sie verarbeitet und transformiert, und im Output-Block wird festgelegt, wohin die verarbeiteten Daten gesendet werden.
Ein typisches Beispiel für eine Logstash-Pipeline, die Nginx-Logs verarbeitet, sieht wie folgt aus:
input {
beats {
port => 5044
}
}
filter {
if [type] == "nginx" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
geoip {
source => "clientip"
}
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "nginx-%{+YYYY.MM.dd}"
}
}
Bei der Performance-Optimierung gibt es einige wichtige Aspekte zu beachten. Die Nutzung von Pipeline-Batches und Worker-Prozessen kann die Durchsatzrate erheblich steigern. Auch die Wahl der richtigen Refresh-Intervalle in Elasticsearch beeinflusst die Indexing-Geschwindigkeit. In Szenarien mit hohem Datendurchsatz empfiehlt es sich, eine separate Logstash-Pipeline pro Datenquellentyp zu erstellen, um Konflikte zu vermeiden und die Fehlersuche zu vereinfachen.
Die Verwendung von Index-Templates ist eine weitere Best Practice. Mit Templates können Sie Mappings, Shard-Einstellungen und Aliasse einmal definieren und automatisch auf alle neuen Indizes anwenden. So stellen Sie sicher, dass Felder korrekt typisiert sind und die Indizes von Anfang an optimal konfiguriert sind. Lifecycle Policies helfen zusätzlich dabei, alte Daten automatisch auf günstigere Storage-Tiers zu verschieben oder nach einer bestimmten Frist zu löschen.
Kibana ist das Herzstück für die Visualisierung Ihrer Log-Daten und bietet eine schier endlose Vielfalt an Diagrammtypen. Von einfachen Liniendiagrammen über Tortendiagramme bis hin zu komplexen Heatmaps und geografischen Karten – Kibana lässt kaum Wünsche offen. Besonders mächtig ist die Möglichkeit, mehrere Visualisierungen in einem Dashboard zu kombinieren, um einen umfassenden Überblick über die gesamte Infrastruktur zu erhalten.
Die Erstellung eines ersten Dashboards ist in Kibana relativ einfach. Im Bereich Visualize wählen Sie einen Diagrammtyp aus, definieren die zugrunde liegende Datenquelle (Index-Pattern) und konfigurieren Buckets und Metriken. Kibana schlägt zudem auf Basis Ihrer Daten automatisch passende Visualisierungen vor, was den Einstieg erleichtert. Für wiederkehrende Analysen können gespeicherte Suchabfragen als Basis verwendet werden.
Ein typisches Security-Dashboard könnte folgende Komponenten enthalten: Eine Karte mit den Top-Herkunftsländern der Login-Versuche, ein Liniendiagramm der fehlgeschlagenen Logins über die Zeit, eine Tabelle der meistaufgerufenen URLs und ein Donut-Chart der HTTP-Status-Codes. Solche Dashboards ermöglichen es Sicherheitsteams, Anomalien schnell zu erkennen und auf Vorfälle zu reagieren, bevor größerer Schaden entsteht.
Mit Kibana Lens steht eine moderne, drag-and-drop-basierte Oberfläche zur Verfügung, die auch weniger technischen Anwendern die Erstellung komplexer Visualisierungen ermöglicht. Lens schlägt basierend auf den Daten automatisch Visualisierungen vor und erlaubt das einfache Kombinieren mehrerer Metriken in einem Diagramm. Auch das Filtern und Drill-Down in einzelne Datensätze funktioniert in Lens besonders intuitiv.
Wenn die Datenmengen wachsen, stößt ein einzelner Elasticsearch-Node schnell an seine Grenzen. Die Lösung ist ein Cluster-Setup mit mehreren Nodes, die ihre Aufgaben verteilen. In einem produktiven ELK-Cluster unterscheidet man typischerweise zwischen Master-Nodes, Data-Nodes, Ingest-Nodes und Coordinating-Nodes. Jede Node-Rolle übernimmt dabei spezifische Aufgaben, was die Stabilität und Performance des Clusters deutlich verbessert.
| Node-Typ | Aufgabe | Empfohlene Anzahl |
|---|---|---|
| Master-Node | Cluster-Verwaltung, Metadaten | 3 (ungerade Anzahl für Quorum) |
| Data-Node | Speicherung und Indizierung der Daten | Abhängig vom Datenvolumen |
| Ingest-Node | Vorverarbeitung der Dokumente | 2-3 |
| Coordinating-Node | Lastverteilung, Anfragen-Routing | 2 oder mehr |
Eine wichtige Entscheidung bei der Skalierung betrifft die Shard-Konfiguration. Elasticsearch teilt Indizes in Shards auf, die auf verschiedene Nodes verteilt werden. Die Faustregel besagt, dass jeder Shard zwischen 10 und 50 GB groß sein sollte. Eine zu hohe Shard-Anzahl belastet den Cluster-Manager, eine zu geringe Anzahl schränkt die Parallelisierung ein. Replicas erhöhen die Ausfallsicherheit, da Daten auf mehreren Nodes gespeichert werden, verdoppeln aber auch den Speicherbedarf.
Für die Skalierung über Rechenzentrumsgrenzen hinweg bietet Elasticsearch Cross-Cluster-Search und Cross-Cluster-Replication. Mit Cross-Cluster-Replication können Daten in geografisch entfernten Clustern gespiegelt werden, was die Disaster-Recovery-Fähigkeiten erheblich verbessert. Allerdings sollte man sich bewusst sein, dass die Netzwerk-Latenz zwischen den Clustern die Performance beeinflusst.
Cloud-Lösungen wie Elastic Cloud, AWS OpenSearch Service oder das Self-Managed-Setup auf Kubernetes bieten weitere Skalierungsoptionen. Mit Kubernetes können ELK-Komponenten containerisiert und automatisch skaliert werden, was besonders in dynamischen Cloud-Umgebungen von Vorteil ist. Tools wie Elastic Operator oder ECK (Elastic Cloud on Kubernetes) vereinfachen das Management erheblich.
Ein oft unterschätzter Aspekt des ELK Stacks sind die eingebauten Monitoring- und Alerting-Funktionen. Mit Watcher in der kommerziellen Version oder den Open-Source-Alternativen wie ElastAlert und Elasticsearch-Alerting können Administratoren automatisch benachrichtigt werden, wenn bestimmte Bedingungen in den Logs auftreten. Typische Anwendungsfälle sind das Erkennen von Brute-Force-Attacken, ungewöhnlich hoher CPU-Auslastung oder ungewöhnlich vielen 500er-Fehlercodes.
Die Konfiguration von Alerts in Kibana erfolgt über die Alerting-App. Hier können Sie Schwellenwerte definieren, Zeitfenster festlegen und Aktionen wie E-Mail-Benachrichtigungen, Slack-Nachrichten oder Webhook-Aufrufe konfigurieren. Die Bedingungen werden in einer visuellen Oberfläche erstellt, was die Konfiguration auch für weniger erfahrene Administratoren zugänglich macht. Komplexere Logik kann über KQL-Abfragen und Skriptausdrücke abgebildet werden.
Ein bewährtes Vorgehen ist die Implementierung eines gestuften Alerting-Systems. Kritische Alarme lösen sofortige Pager-Benachrichtigungen aus, während Warnungen in einem Dashboard hervorgehoben und bei Bedarf in täglichen Reports zusammengefasst werden. Diese Differenzierung verhindert Alert-Fatigue und stellt sicher, dass die wirklich wichtigen Vorfälle nicht in der Masse der Benachrichtigungen untergehen.
Machine Learning-Funktionen erweitern das Monitoring um Anomalie-Erkennung. Elastic ML kann ungewöhnliche Muster in den Daten automatisch erkennen, ohne dass explizite Regeln definiert werden müssen. Beispielsweise können plötzliche Spitzen in der Anzahl von Login-Fehlern oder ungewöhnliche Datenverkehrsmuster identifiziert werden, die auf einen Sicherheitsvorfall hindeuten könnten. Solche ML-Jobs laufen im Hintergrund und visualisieren erkannte Anomalien direkt in Kibana.
Obwohl der ELK Stack eine dominierende Stellung im Log-Management hat, existieren zahlreiche Alternativen, die je nach Anwendungsfall besser geeignet sein können. Splunk gilt als Platzhirsch im Enterprise-Bereich, ist aber mit erheblichen Lizenzkosten verbunden. Grafana Loki ist eine leichtgewichtige Alternative, die besonders in Kubernetes-Umgebungen beliebt ist. Graylog positioniert sich als benutzerfreundliche Middleware zwischen Log-Quellen und Elasticsearch.
| Lösung | Vorteile | Nachteile | Ideal für |
|---|---|---|---|
| ELK Stack | Reife, große Community, vielseitig | Hoher Ressourcenverbrauch, komplexe Konfiguration | Große, komplexe Infrastrukturen |
| Splunk | Sehr mächtig, Enterprise-Features | Sehr teuer, proprietär | Großunternehmen mit Budget |
| Grafana Loki | Leichtgewichtig, Kubernetes-nativ | Weniger Suchfunktionen als Elasticsearch | Cloud-Native-Umgebungen |
| Graylog | Einfache Bedienung, gutes UI | Abhängigkeit von MongoDB und Elasticsearch | Mittelständische Unternehmen |
| Datadog | SaaS, schnell einsatzbereit | Hohe laufende Kosten, Datenschutzfragen | Cloud-first Organisationen |
Bei der Wahl der richtigen Lösung sollten verschiedene Faktoren berücksichtigt werden: das Datenvolumen, die Komplexität der Anforderungen, das verfügbare Budget, die vorhandene Expertise im Team und nicht zuletzt die Compliance-Anforderungen. Für stark regulierte Branchen ist der On-Premise-Betrieb des ELK Stacks oft die einzige Option, da SaaS-Lösungen datenschutzrechtlich problematisch sein können.
Eine interessante Entwicklung ist die zunehmende Konvergenz der verschiedenen Tools. Viele moderne Lösungen integrieren OpenTelemetry-Standards, was den Wechsel zwischen verschiedenen Backends erleichtert. So können Sie heute mit dem ELK Stack starten und bei Bedarf später zu einer anderen Lösung migrieren, ohne alle Agenten und Integrationen neu aufbauen zu müssen.
Sicherheit sollte bei der Implementierung des ELK Stacks von Anfang an mitgedacht werden, da Logs häufig sensible Daten wie Benutzernamen, IP-Adressen oder Geschäftsdaten enthalten. Die Elastic Stack Security Features bieten umfangreiche Möglichkeiten, um den Zugriff auf Daten zu kontrollieren, die Kommunikation zu verschlüsseln und Audit-Logs zu erstellen. Ab der Version 8.x sind viele dieser Funktionen bereits in der freien Version verfügbar.
Role-Based Access Control (RBAC) ist ein zentrales Sicherheits-Feature. Administratoren können fein granulierte Rollen definieren, die bestimmen, welche Benutzer auf welche Indizes und Funktionen zugreifen dürfen. So kann beispielsweise ein Entwickler nur Zugriff auf Logs seiner eigenen Anwendung erhalten, während Sicherheitsteams lesenden Zugriff auf alle sicherheitsrelevanten Logs haben. Auch Field-Level-Security und Document-Level-Security ermöglichen noch feinere Zugriffsbeschränkungen.
Die Verschlüsselung der Daten sowohl at-rest als auch in-transit ist ein weiterer wichtiger Baustein. Elasticsearch unterstützt TLS für die Netzwerkkommunikation und kann mit Verschlüsselungstools wie LUKS oder dm-crypt auf Festplattenebene kombiniert werden. Audit-Logs zeichnen sämtliche sicherheitsrelevanten Aktionen auf und können an ein SIEM-System weitergeleitet werden, um Compliance-Anforderungen wie DSGVO, PCI-DSS oder HIPAA zu erfüllen.
Bei der Verarbeitung personenbezogener Daten im ELK Stack müssen die Regeln der DSGVO beachtet werden. Insbesondere das Recht auf Löschung (Recht auf Vergessenwerden) erfordert Strategien zur Datenanonymisierung oder -pseudonymisierung. Mit Pipeline-Prozessoren in Elasticsearch oder Filtern in Logstash können sensible Felder maskiert oder gehasht werden, bevor die Daten in den Index geschrieben werden. Regelmäßige Datenbereinigungen mittels Delete-By-Query oder ILM-Policies stellen sicher, dass personenbezogene Daten nicht unnötig lange gespeichert werden.
Die Performance des ELK Stacks hängt von zahlreichen Faktoren ab, darunter Hardware, Konfiguration, Indexdesign und Abfragekomplexität. Ein häufiger Fehler ist die Verwendung der Standardkonfiguration in produktiven Umgebungen. Elasticsearch bietet zahlreiche Stellschrauben, die optimal auf den jeweiligen Anwendungsfall abgestimmt werden sollten. Dazu gehören JVM-Heap-Settings, Thread-Pool-Konfigurationen und Cache-Tuning.
Eine wichtige Regel lautet: Die Hälfte des physischen RAM sollte dem JVM-Heap zugewiesen werden, die andere Hälfte dem Betriebssystem für File-System-Cache. Eine zu große Heap-Konfiguration führt zu längeren Garbage-Collection-Pausen, eine zu kleine zu häufigen GC-Zyklen. Auch der Swap-Space sollte deaktiviert werden, da Swap-basierte Operationen die Performance drastisch reduzieren.
Beim Indexdesign spielen Shard-Sizing und Mapping-Optimierung eine zentrale Rolle. Ein häufiger Fehler ist die Verwendung dynamischer Mappings ohne Kontrolle, was zu "Mapping Explosion" führen kann. Durch explizite Mappings können Sie sicherstellen, dass Felder den richtigen Datentyp haben, und die Größe der Indizes kontrollieren. Time-Based-Indizes mit täglichem oder wöchentlichem Rolling sind eine bewährte Strategie, um das Datenvolumen pro Index überschaubar zu halten.
Abfrageoptimierung ist ein weiteres wichtiges Thema. Komplexe Abfragen mit Wildcards, Regex oder Aggregationen über große Datenmengen können den Cluster stark belasten. Die Verwendung von Filter-Context statt Query-Context, wenn möglich, nutzt den Elasticsearch-Cache optimal. Auch das Pre-Aggregieren von Daten in regelmäßigen Rollups kann die Performance von Dashboards deutlich verbessern. Tools wie der Profile-API oder Slow-Logs helfen dabei, Performance-Engpässe zu identifizieren.
Einer der häufigsten Fehler ist die Unterschätzung des Ressourcenbedarfs. Elasticsearch ist speicherintensiv, und viele Einsteiger sind überrascht, wie viel RAM und CPU selbst kleine Cluster benötigen. Eine Faustregel besagt, dass pro 1 GB aktiver Daten etwa 16 GB RAM erforderlich sind, wenn intensive Suchoperationen durchgeführt werden. Eine sorgfältige Kapazitätsplanung ist daher unerlässlich.
Ein weiterer verbreiteter Fehler ist die fehlende Index-Lifecycle-Management-Strategie. Ohne klare Regeln, wann Daten archiviert oder gelöscht werden, wachsen die Indizes unkontrolliert und führen irgendwann zu Performance-Problemen oder Speicherengpässen. Die Definition von ILM-Policies mit Hot-Warm-Cold-Architektur hilft dabei, die Daten automatisch auf die jeweils passende Speicherklasse zu verteilen und Kosten zu optimieren.
Viele Administratoren unterschätzen auch die Bedeutung von Backup-Strategien. Elasticsearch bietet Snapshot-basierte Backups, die in regelmäßigen Abständen erstellt und an einem sicheren Ort gespeichert werden sollten. Ohne funktionierende Backups kann ein Datenverlust – etwa durch Hardwaredefekte oder versehentliche Löschungen – schnell zu einem existenzbedrohenden Vorfall werden. Regelmäßige Restore-Tests sind ebenso wichtig wie die Backups selbst.
Schließlich ist eine fehlende Dokumentation der Konfiguration ein häufiger Stolperstein. Bei komplexen ELK-Setups mit mehreren Pipelines, Index-Templates und Dashboards ist es schwierig, den Überblick zu behalten. Die Verwendung von Configuration-as-Code-Tools wie Ansible, Terraform oder Helm-Charts für die Kubernetes-Bereitstellung ermöglicht es, die gesamte Konfiguration zu versionieren und reproduzierbar zu deployen. So können Sie auch in großen Teams konsistente Umgebungen sicherstellen und Änderungen nachvollziehbar machen.
Der ELK-Stack ist eine der weltweit am häufigsten eingesetzten Open-Source-Lösungen für zentrales Log-Management. Die Abkürzung steht für Elasticsearch, Logstash und Kibana – drei Komponenten, die nahtlos ineinandergreifen und eine vollständige Pipeline für die Erfassung, Verarbeitung, Speicherung und Visualisierung von Log-Daten bilden.
Elasticsearch dient als verteilte Such- und Analyse-Engine, die dank ihrer horizontalen Skalierbarkeit auch riesige Datenmengen in nahezu Echtzeit durchsuchen kann. Logstash übernimmt die Rolle des Datensammlers und -transformators, während Kibana als leistungsstarkes Frontend für die Visualisierung und Exploration der gespeicherten Daten fungiert.
In modernen IT-Infrastrukturen fallen täglich Terabytes an Log-Daten an. Ohne ein zentrales System gehen wichtige Informationen in der Datenflut unter, Sicherheitsvorfälle bleiben unentdeckt und Performance-Engpässe lassen sich nur schwer identifizieren. Der ELK-Stack löst diese Probleme durch eine einheitliche Sicht auf alle relevanten Ereignisse.
Besonders für Unternehmen, die Compliance-Anforderungen wie DSGVO, ISO 27001 oder PCI-DSS erfüllen müssen, ist der ELK-Stack ein wertvolles Werkzeug. Die lückenlose Protokollierung und die Möglichkeit, Audit-Trails über lange Zeiträume hinweg zu speichern, machen die Lösung zur ersten Wahl für regulierte Branchen.
Elasticsearch bildet das Herzstück des Stacks. Die in Java geschriebene Engine basiert auf Apache Lucene und nutzt eine invertierte Indexstruktur, um Suchanfragen extrem schnell zu beantworten. Dank Sharding und Replikation lässt sich Elasticsearch linear skalieren – von einem einzelnen Knoten bis hin zu Clustern mit Hunderten von Nodes.
Logstash fungiert als Datenpipeline. Mit über 200 verfügbaren Plugins kann die Software Daten aus praktisch jeder Quelle entgegennehmen, filtern, anreichern und an verschiedene Ziele weiterleiten. Die Konfiguration erfolgt über eine einfache, deklarative Syntax, die auch komplexe Transformationslogik abbilden kann.
Kibana ergänzt den Stack um eine webbasierte Visualisierungsschicht. Dashboards, Heatmaps, Liniendiagramme und geo-basierte Darstellungen machen auch komplexe Zusammenhänge schnell erfassbar. Kibana Spaces ermöglichen es zudem, unterschiedliche Sichten für verschiedene Teams bereitzustellen, ohne dass diese sich gegenseitig beeinflussen.
Seit der Version 7.x des Stacks sind Beats als Familie leichtgewichtiger Datenversender hinzugekommen. Filebeat, Metricbeat, Packetbeat und Auditbeat ergänzen die Architektur und übernehmen spezialisierte Aufgaben an der Edge der Infrastruktur, bevor die Daten an Logstash oder direkt an Elasticsearch übergeben werden.
Eine typische Produktionsarchitektur trennt die drei Hauptkomponenten auf dedizierte Server oder Container. Diese Trennung verbessert nicht nur die Wartbarkeit, sondern ermöglicht auch eine gezielte Skalierung jeder Schicht entsprechend ihrer Lastanforderungen.
Als Best Practice hat sich der Einsatz eines Load Balancers vor den Elasticsearch-Knoten etabliert. Tools wie HAProxy oder NGINX verteilen eingehende Anfragen gleichmäßig und sorgen für Hochverfügbarkeit. Für die Koordination im Cluster kommt ZooKeeper oder der seit 7.x verfügbare eigene Elasticsearch-Discovery-Mechanismus zum Einsatz.
Die folgende Tabelle zeigt eine bewährte Architektur für mittelgroße Umgebungen:
| Komponente | Anzahl | CPU | RAM | Storage |
|---|---|---|---|---|
| Elasticsearch Master | 3 | 8 Cores | 32 GB | 500 GB SSD |
| Elasticsearch Data | 6 | 16 Cores | 64 GB | 4 TB NVMe |
| Logstash | 4 | 8 Cores | 16 GB | 200 GB |
| Kibana | 2 | 4 Cores | 8 GB | 100 GB |
| Beats Agents | variabel | 2 Cores | 4 GB | 50 GB |
Für hochverfügbare Setups empfiehlt sich zusätzlich der Einsatz von Cross-Cluster-Replikation, um Daten geografisch verteilt vorzuhalten und Disaster-Recovery-Szenarien abzudecken.
Die Installation des ELK-Stacks kann auf verschiedenen Wegen erfolgen. Die offizielle Variante nutzt die Repositories der jeweiligen Distribution, während Docker und Kubernetes die beliebtesten Methoden für containerisierte Umgebungen sind. Für produktive Setups empfiehlt sich der Einsatz von Ansible, Puppet oder Terraform, um eine reproduzierbare Konfiguration zu gewährleisten.
Eine minimaler Logstash-Konfiguration zeigt, wie einfach der Einstieg ist:
input {
beats {
port => 5044
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGLINE}" }
}
date {
match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}
Diese Konfiguration nimmt Daten von Beats-Agenten entgegen, parst Syslog-Nachrichten mit dem Grok-Filter und schreibt die Ergebnisse in täglich wechselnde Indizes in Elasticsearch. Das Index-Lifecycle-Management kann anschließend alte Daten automatisch archivieren oder löschen.
Nach der Installation sollte umgehend die Sicherheitskonfiguration erfolgen. Dazu gehören die Aktivierung von X-Pack Security, die Einrichtung von TLS-Verschlüsselung für die interne Kommunikation sowie die Implementierung einer rollenbasierten Zugriffskontrolle (RBAC) in Elasticsearch und Kibana.
Der ELK-Stack kann Daten aus einer schier endlosen Liste von Quellen verarbeiten. Von klassischen Syslog- und Windows-Event-Logs über Webserver-Logs bis hin zu Anwendungs-Traces und Metriken – die Flexibilität ist eine der größten Stärken der Lösung.
Für Webserver wie Apache und NGINX existieren vorgefertigte Filebeat-Module, die Logs automatisch in strukturierte Felder zerlegen. Ähnliche Module gibt es für MySQL, PostgreSQL, Redis, Kafka und viele weitere populäre Systeme. Diese Module reduzieren den Konfigurationsaufwand erheblich und liefern direkt nutzbare Dashboards in Kibana.
Cloud-Umgebungen lassen sich ebenfalls nahtlos integrieren:
Dank der offenen REST-API von Elasticsearch können praktisch alle erdenklichen Datenquellen angebunden werden. Viele kommerzielle SIEM- und Observability-Tools nutzen diese Schnittstelle, um ihre Daten im ELK-Stack zu persistieren.
Die Leistung eines ELK-Stacks hängt von vielen Faktoren ab. Die JVM-Konfiguration von Elasticsearch, die Wahl der richtigen Hardware, die Index-Templates und die Query-Optimierung spielen dabei ebenso eine Rolle wie die effiziente Nutzung von Ressourcen durch Beats und Logstash.
Eine bewährte Faustregel ist, Elasticsearch nicht mehr als die Hälfte des verfügbaren RAMs für den Heap zuzuweisen. Die andere Hälfte wird vom Lucene-Segment-Cache verwendet und sollte nicht durch den Heap verdrängt werden. Für produktive Setups empfiehlt sich zudem der Einsatz von NVMe-SSDs, da diese die I/O-Last moderner Lucene-Indizes deutlich besser bewältigen als herkömmliche SATA-SSDs.
Sharding-Strategien sollten sorgfältig geplant werden. Zu viele kleine Shards erhöhen den Overhead, zu wenige große Shards limitieren die Parallelisierung. Eine Shard-Größe zwischen 10 und 50 GB hat sich in der Praxis als optimal erwiesen. Das folgende Beispiel zeigt ein angepasstes Index-Template:
PUT _index_template/logs-template
{
"index_patterns": ["logs-*"],
"template": {
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1,
"refresh_interval": "30s"
}
}
}
Für sehr hohe Datenvolumina kann der Einsatz von Frozen Indices und searchable snapshots in Erwägung gezogen werden. Diese Funktionen erlauben es, ältere Daten kostengünstig in Objektspeichern wie S3 zu archivieren, ohne sie für Suchen komplett aus dem Cluster entfernen zu müssen.
Sicherheit ist im ELK-Stack ein mehrschichtiges Thema. Die Kommunikation zwischen den Komponenten sollte zwingend mit TLS verschlüsselt werden, sowohl für HTTP- als auch für Transport-Traffic. Selbst in isolierten Netzwerken ist diese Maßnahme empfehlenswert, da sie Lateral Movement im Falle einer Kompromittierung erschwert.
Die Zugriffskontrolle erfolgt rollenbasiert. Administratoren definieren Rollen mit fein granularen Berechtigungen auf Index-, Dokument- und Feldebene. Sensitive Felder wie Passwörter, IP-Adressen oder personenbezogene Daten können durch Field- und Document-Level-Security gezielt geschützt werden.
Folgende Compliance-relevante Funktionen bietet der Stack:
| Anforderung | Lösung im ELK-Stack |
|---|---|
| Verschlüsselung at rest | Disk-Level-Encryption oder Encrypted Snapshots |
| Verschlüsselung in transit | TLS 1.2+ für alle Verbindungen |
| Audit Logging | X-Pack Audit Logging mit zentralem SIEM |
| Data Retention | ILM-Policies mit automatischer Löschung |
| Zugriffskontrolle | RBAC, Attribute-Based Access Control |
Für DSGVO-konforme Setups sollte zusätzlich ein Konzept zur Datenminimierung implementiert werden. IP-Adressen können durch GeoIP-Anreicherung anonymisiert, personenbezogene Daten pseudonymisiert und Aufbewahrungsfristen klar definiert werden.
Ein Log-Management-System, das selbst nicht überwacht wird, ist ein blinder Fleck in der Infrastruktur. Der ELK-Stack bietet mit dem Monitoring-Cluster und Watcher zwei mächtige Werkzeuge, um die eigene Gesundheit im Blick zu behalten und auf kritische Ereignisse zu reagieren.
Stack-Monitoring sammelt automatisch Metriken über CPU-Auslastung, JVM-Heap, Indexierungsrate, Suchlatenz und Festplattenverbrauch. Diese Daten werden in eigenen Elasticsearch-Indizes gespeichert und können mit vordefinierten Kibana-Dashboards visualisiert werden.
Watcher ermöglicht es, komplexe Alert-Regeln zu definieren, die auf Suchanfragen, Metrik-Schwellwerten oder externen Eingaben basieren. Eine typische Watcher-Regel für die Erkennung fehlgeschlagener Logins könnte so aussehen:
PUT _watcher/watch/failed-logins
{
"trigger": { "schedule": { "interval": "1m" } },
"input": {
"search": {
"request": {
"indices": ["logs-*"],
"body": {
"query": {
"bool": {
"must": [
{ "match": { "event.outcome": "failure" } },
{ "match": { "event.category": "authentication" } }
]
}
}
}
}
}
},
"condition": { "compare": { "ctx.payload.hits.total.value": { "gt": 10 } } },
"actions": {
"email_admin": {
"email": { "to": "[email protected]", "subject": "Brute-Force-Alert" }
}
}
}
Neben E-Mail-Benachrichtigungen unterstützt Watcher auch Slack, Microsoft Teams, PagerDuty, Webhook-Aufrufe und viele weitere Integrationen. So lässt sich ein durchgängiges Incident-Management aufbauen, das direkt auf den Log-Daten basiert.
Elasticsearch-Daten sind wertvoll und müssen gegen Verlust geschützt werden. Der einfachste Weg sind regelmäßige Snapshots, die auf einem externen Storage wie S3, Azure Blob Storage oder einem NFS-Volume abgelegt werden. Die Konfiguration erfolgt über die SLM (Snapshot Lifecycle Management) API.
Eine typische Snapshot-Policy definiert Aufbewahrungsfristen, Zeitpläne und Speicherorte. Das folgende Beispiel zeigt eine wöchentliche Policy mit sieben Tagen Aufbewahrung:
PUT _slm/policy/weekly-snapshots
{
"schedule": "0 30 1 * * ?",
"name": "<daily-snap-{now/d}>",
"repository": "backup-repo",
"retention": {
"expire_after": "7d",
"min_count": 5,
"max_count": 10
}
}
Vor dem Restore sollte unbedingt ein Cluster-Health-Check durchgeführt werden. Bei einem vollständigen Desaster-Recovery-Szenario empfiehlt sich der Aufbau eines Cold-Standby-Clusters, das in regelmäßigen Abständen per Cross-Cluster-Replikation synchronisiert wird. Die RTO (Recovery Time Objective) lässt sich so auf wenige Minuten reduzieren.
Wichtig ist auch, die Kibana-Konfiguration zu sichern. Gespeicherte Suchen, Visualisierungen und Dashboards können über die Saved Objects API als JSON-Datei exportiert und versioniert in Git eingecheckt werden. So lässt sich die komplette Analyse-Umgebung reproduzierbar wiederherstellen.
In der Praxis hat sich der ELK-Stack in einer Vielzahl von Szenarien bewährt. Security Information and Event Management (SIEM) ist eines der häufigsten Einsatzgebiete. Durch die Korrelation von Logs aus Firewalls, IDS/IPS, Endpoints und Anwendungen lassen sich komplexe Angriffsmuster erkennen, die in isolierten Systemen unsichtbar bleiben.
Auch im Bereich Observability spielt der Stack eine zentrale Rolle. Die drei Säulen Logging, Metrics und Tracing lassen sich im ELK-Stack vereinen, wenn zusätzlich Prometheus und Jaeger oder OpenTelemetry angebunden werden. APM-Daten aus dem Elastic APM-Agent oder OpenTelemetry ergänzen das Bild um detaillierte Performance-Analysen von Anwendungen.
Weitere verbreitete Anwendungsfälle umfassen:
Die Flexibilität des Stacks zeigt sich auch in der Möglichkeit, Machine-Learning-Modelle direkt in Elasticsearch zu trainieren und auszuführen. Anomalieerkennung, Forecasting und Klassifikation stehen damit out-of-the-box zur Verfügung.
Trotz seiner Beliebtheit ist der ELK-Stack nicht für jeden Use-Case die optimale Lösung. Bei sehr kleinen Datenmengen kann der Betriebsaufwand in keinem Verhältnis zum Nutzen stehen. In solchen Fällen reichen oft schlankere Lösungen wie Loki oder eine direkte Cloud-native-Integration wie AWS CloudWatch oder Google Cloud Logging.
Für hochspezialisierte Security-Use-Cases sind dedizierte SIEM-Lösungen wie Splunk, IBM QRadar oder Microsoft Sentinel oft die bessere Wahl. Sie bieten vorgefertigte Korrelationsregeln, Threat-Intelligence-Feeds und eine tiefere Integration in den Security-Workflow. Allerdings sind diese Lösungen mit deutlich höheren Lizenzkosten verbunden.
Eine interessante Ergänzung ist der EFK-Stack mit Fluentd statt Logstash. Fluentd ist in Ruby und C geschrieben, verbraucht weniger Ressourcen und bietet eine ähnlich große Plugin-Auswahl. In Kubernetes-Umgebungen hat sich diese Variante weitgehend durchgesetzt. Auch der OpenSearch-Fork, der nach der Lizenzänderung von Elasticsearch entstanden ist, bleibt eine valable Alternative.
Die Entscheidung für oder gegen den ELK-Stack sollte stets auf Basis der konkreten Anforderungen, der vorhandenen Expertise und des verfügbaren Budgets getroffen werden. In vielen Fällen ist die Kombination mehrerer Tools – etwa ELK für Sicherheit und Loki für Anwendungsobservability – der sinnvollste Ansatz.
Der ELK-Stack hat sich über mehr als ein Jahrzehnt als Quasi-Standard für zentrales Log-Management etabliert. Die Kombination aus leistungsfähiger Suche, flexibler Datenpipeline und intuitiver Visualisierung deckt die Anforderungen der meisten Organisationen vollständig ab.
Wer den Stack produktiv betreiben möchte, sollte jedoch den initialen Aufwand für Planung, Architektur und Sicherheit nicht unterschätzen. Ein gut durchdachtes Setup mit klaren Naming-Conventions, definierten Retention-Policies und einem soliden Sicherheitskonzept bildet die Grundlage für langfristigen Erfolg.
Mit dem Elastic Stack 8.x sind die Weichen auf eine zukunftssichere Plattform gestellt. Die native Unterstützung für OpenTelemetry, eingebaute Machine-Learning-Funktionen und kontinuierliche Performance-Verbesserungen machen den Stack auch in den kommenden Jahren zu einer attraktiven Wahl für Unternehmen jeder Größe.

Praxisnaher Guide für Docker Compose auf dem VPS: Webserver, Datenbank, Reverse Proxy, TLS, Backups, Updates und Sicherheit richtig planen und betreiben.