# ELK Stack: Zentrale Log-Aggregation & Forensik

TL;DR / Management Summary In einer Umgebung mit hunderten VMs (Proxmox) und Firewalls (OPNsense) ist das manuelle Durchsuchen von Log-Dateien unmöglich. Der ELK Stack (Elasticsearch, Logstash, Kibana) ist die Lösung für zentrales Logging. Wir nutzen Beats (Agenten) zum Sammeln, Logstash zum Filtern, Elasticsearch zum Speichern und Kibana zur Visualisierung. Ein Senior Admin nutzt ELK, um Sicherheitsvorfälle in Sekunden zu rekonstruieren und Fehlermuster applikationsübergreifend zu finden.


# 1. Die Komponenten des Stacks

Wer macht was?

  1. Elasticsearch: Das Herz. Eine NoSQL-Datenbank, spezialisiert auf die Volltextsuche in Milliarden von Log-Zeilen.
  2. Logstash: Der Verarbeiter. Er empfängt rohe Logs, parst sie (z.B. extrahiert die IP aus einem Syslog-Text) und schickt sie an Elasticsearch.
  3. Kibana: Das Gesicht. Die Web-GUI für Suchen, Dashboards und Analysen.
  4. Beats (z.B. Filebeat): Die kleinen Agenten auf den Servern, die Log-Dateien auslesen und an Logstash senden.

# 2. Einrichtung in der Praxis

Vom Textfile zum Index.

# Schritt 1: Filebeat konfigurieren (am Quell-Server)

Installieren Sie Filebeat in der VM (Artikel 668):

# /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  paths:
    - /var/log/nginx/access.log
output.logstash:
  hosts: ["elk-server:5044"]

# Schritt 2: Logstash Pipeline

Hier definieren wir den Filter (Grok-Pattern):

filter {
  grok {
    match => { "message" => "%{IP:client_ip} %{WORD:method} %{URIPATH:url} ..." }
  }
}

# 3. Deep Dive: Suchen wie ein Profi (KQL)

Die Nadel finden.

Kibana nutzt die Kibana Query Language (KQL).


# 4. Day-2 Operations: Log-Retention & ILM

Platz sparen.

Logs können Terabytes belegen.


# 5. Troubleshooting & “War Stories”

Wenn die Suche streikt.

# Top 3 Fehlerbilder

  1. Symptom: Elasticsearch steht auf “Yellow” oder “Red” Status.

    • Ursache: Ein Knoten ist offline oder die Shards (Datenpakete) können nicht mehr verteilt werden (Disk full).
    • Lösung: GET /_cluster/health abfragen und Speicherplatz freigeben.
  2. Symptom: Logs kommen an, aber Felder (wie IP) fehlen.

    • Ursache: Der Grok-Filter in Logstash hat einen Syntax-Fehler.
    • Lösung: Nutzen Sie den “Grok Debugger” in Kibana.
  3. Symptom: Java Heap Space Error am ELK-Server.

    • Fix: Erhöhen Sie den RAM für Elasticsearch (ES_JAVA_OPTS).

# “War Story”: Der “Log-Loop” am Fileserver

Ein Admin aktivierte das Auditing für jeden Dateizugriff auf einem großen Fileserver und schickte dies an ELK. Das Ereignis: Ein Backup-Skript scannte nachts Millionen von Dateien. Das Ergebnis: Filebeat schickte Millionen von Logs pro Sekunde. Logstash konnte diese nicht schnell genug verarbeiten, der RAM lief voll, und der gesamte ELK-Stack stürzte ab. Da der Admin kein Backpressure-Management (z.B. Redis oder Kafka als Puffer) hatte, gingen alle Logs der Nacht verloren. Lehre: Nutzen Sie für Massenlogs immer einen Message Broker (wie Redis oder Kafka) zwischen den Agenten und Logstash, um Lastspitzen abzufedern.


# 6. Monitoring & Reporting

Log-Statistiken.

# Watcher (Alerting)

Konfigurieren Sie Alarme in Kibana:


# 7. Fazit & Empfehlung

Der ELK-Stack ist die Basis für jede Security-Operations-Center (SOC) Strategie.


# Anhang: Cheatsheet (Elasticsearch API)

Aufgabe Befehl (CURL)
Cluster Health GET /_cluster/health
Indices listen GET /_cat/indices?v
Index löschen DELETE /log-2023.01.01
Settings prüfen GET /_nodes/settings

# Referenzen