11 – Notfallhandbuch

Version: 1.0 Datum: 2026-02-10 Klassifikation: Vertraulich / Intern Projekt: IceDataEmphasise

Revisionshistorie

VersionDatumAutorBeschreibung
1.02026-02-10Marcus PauliErstversion des Notfallhandbuchs

Inhaltsverzeichnis

  1. Notfall-Definitionen und Severity-Level
  2. Eskalationsmatrix
  3. Disaster Recovery Szenarien
  4. Backup und Restore Verfahren
  5. Wiederanlauf-Prozedur nach Notfall
  6. Kommunikationsplan
  7. Post-Incident Review Template

1. Notfall-Definitionen und Severity-Level

Die folgenden Severity-Level definieren die Dringlichkeit und den Eskalationspfad bei Betriebsstoerungen der Cribl-Infrastruktur innerhalb des IceDataEmphasise-PoC.

Severity Bezeichnung Definition Reaktionszeit Loesungszeit (Ziel)
Sev1 Kritisch Kompletter Ausfall der Log-Pipeline. Keine Events erreichen Splunk. Compliance-relevante Daten gehen verloren oder drohen verloren zu gehen. ≤ 15 Minuten ≤ 1 Stunde
Sev2 Hoch Teilausfall: Einzelne Quellen oder Destinations sind betroffen. Persistent Queue puffert, aber Kapazitaet ist begrenzt. Datenverlust droht mittelfristig. ≤ 30 Minuten ≤ 4 Stunden
Sev3 Mittel Leistungsdegradation: Erhoehte Latenz, einzelne Worker ueberlastet, vereinzelte Event-Drops. Pipeline funktioniert grundsaetzlich. ≤ 2 Stunden ≤ 1 Arbeitstag
Sev4 Niedrig Kosmetische oder nicht-kritische Probleme: Dashboard-Anomalien, einzelne Warnungen ohne Auswirkung auf den Datenfluss. Naechster Arbeitstag ≤ 5 Arbeitstage
Hinweis: Im regulierten Bankumfeld gilt: Jeder Sev1- oder Sev2-Vorfall, bei dem Compliance-relevante Logs betroffen sind, muss zusaetzlich an den Informationssicherheitsbeauftragten (ISB) gemeldet werden.

2. Eskalationsmatrix

Severity Erstreaktion Eskalation Level 1 Eskalation Level 2 Eskalation Level 3
Sev1 On-Call-Engineer (sofort) Teamleitung IT-Betrieb (nach 15 Min.) Abteilungsleitung IT / ISB (nach 30 Min.) Geschaeftsleitung / BaFin-Meldepflicht pruefen (nach 1 Std.)
Sev2 On-Call-Engineer (sofort) Teamleitung IT-Betrieb (nach 30 Min.) Abteilungsleitung IT (nach 2 Std.)
Sev3 Zustaendiger Administrator Teamleitung IT-Betrieb (nach 4 Std.)
Sev4 Zustaendiger Administrator Im naechsten Jour Fixe besprechen

RACI-Matrix fuer Notfallbehandlung

Aktivitaet On-Call-Engineer Teamleitung ISB Geschaeftsleitung
Ersterkennung / TriageR/AII (bei Sev1)
Technische FehleranalyseRAC
WiederherstellungRAI
Kommunikation internCR/AII (bei Sev1)
Regulatorische MeldungICR/AA
Post-Incident ReviewRACI (bei Sev1)

R = Responsible, A = Accountable, C = Consulted, I = Informed

3. Disaster Recovery Szenarien

3.1 Szenario: Cribl Stream Ausfall

Auswirkung: Keine Verarbeitung und kein Routing von Log-Events. Edge-Nodes puffern lokal, Persistent Queues laufen voll.

Stufe 1 – Restart:

# Cribl Stream Service neustarten
sudo systemctl restart cribl

# Status pruefen
sudo systemctl status cribl
curl -s http://localhost:9000/api/v1/health | jq .

# Logs auf Fehler pruefen
sudo journalctl -u cribl --since "10 minutes ago" --no-pager | tail -50

Stufe 2 – Failover (falls Restart fehlschlaegt):

# Worker-Prozesse pruefen und ggf. beenden
ps aux | grep cribl
sudo kill -9 $(pgrep -f "cribl server")

# Cribl Home bereinigen und neustarten
sudo rm -f /opt/cribl/data/cribl.pid
sudo systemctl start cribl

# Port-Belegung pruefen
sudo ss -tlnp | grep 9000

Stufe 3 – Neuinstallation:

# Konfiguration sichern (falls noch moeglich)
sudo cp -r /opt/cribl/local /tmp/cribl-backup-local
sudo cp -r /opt/cribl/data /tmp/cribl-backup-data

# Neuinstallation ausfuehren
sudo ./scripts/02-install-cribl-stream.sh

# Konfiguration wiederherstellen
sudo cp -r /tmp/cribl-backup-local/* /opt/cribl/local/
sudo chown -R cribl:cribl /opt/cribl

# Service starten und verifizieren
sudo systemctl start cribl
sudo ./scripts/07-verify-deployment.sh

3.2 Szenario: Cribl Edge Ausfall

Auswirkung: Logs der betroffenen Edge-Quelle werden nicht mehr gesammelt. Lokale Logs werden auf dem Host weiterhin geschrieben.

Sofortmassnahmen:

# Edge Service neustarten
sudo systemctl restart cribl-edge

# Status pruefen
sudo systemctl status cribl-edge

# Falls der Service nicht startet: Logs pruefen
sudo journalctl -u cribl-edge --since "10 minutes ago" --no-pager

Edge neu deployen:

# Edge neu installieren
sudo ./scripts/03-install-cribl-edge-linux.sh

# Registrierung bei Stream Leader pruefen
curl -s http://localhost:9000/api/v1/master/groups | jq '.items[] | .id'

# Verifizierung
sudo ./scripts/07-verify-deployment.sh
Hinweis: Waehrend des Edge-Ausfalls werden Logs auf dem Host weiterhin in systemd-journal und lokale Dateien geschrieben. Nach dem Wiederherstellen des Edge-Agenten koennen diese nachtraeglich erfasst werden, sofern die Retention-Policies der lokalen Logs dies erlauben.

3.3 Szenario: Splunk nicht erreichbar

Auswirkung: Events werden in der Persistent Queue gepuffert. Bei Erschoepfung der Queue droht Datenverlust.

Diagnose:

# Splunk HEC erreichbar?
curl -sk https://10.10.0.66:8088/services/collector/health

# Splunk S2S Port erreichbar?
nc -zv 10.10.0.66 9997

# Netzwerk-Konnektivitaet pruefen
ping -c 3 10.10.0.66
traceroute 10.10.0.66

# Persistent Queue Status pruefen
ls -lh /opt/cribl/state/queues/
du -sh /opt/cribl/state/queues/*

Massnahmen bei voller Queue:

  1. Disk-Kapazitaet fuer Queue-Erweiterung pruefen: df -h /opt/cribl
  2. Queue-Limit temporaer erhoehen (Cribl UI → Destinations → Queue Settings)
  3. Backpressure aktivieren: Source-Rate drosseln, um Queue-Ueberlauf zu verhindern
  4. Alternative Destination konfigurieren (z.B. lokales Dateisystem als Fallback)
  5. Nach Splunk-Wiederherstellung: Queue-Drain ueberwachen

3.4 Szenario: NUC Hardware-Ausfall

Auswirkung: Kompletter Ausfall aller Cribl-Komponenten auf dem Host. Kein Log-Routing moeglich.

Wiederherstellungsschritte auf neuem Host:

  1. Neuen NUC oder Ersatzserver bereitstellen (Mindestanforderungen: 4 CPU, 8 GB RAM, 100 GB SSD)
  2. Betriebssystem installieren (Ubuntu 22.04 LTS empfohlen)
  3. Repository klonen:
    git clone <repository-url> /opt/IceDataEmphasise
    cd /opt/IceDataEmphasise
  4. Backup wiederherstellen (siehe Abschnitt 4)
  5. Installationsskripte ausfuehren:
    sudo ./scripts/00-preflight-check.sh
    sudo ./scripts/01-install-tailscale.sh
    sudo ./scripts/02-install-cribl-stream.sh
    sudo ./scripts/03-install-cribl-edge-linux.sh
    sudo ./scripts/04-configure-sources.sh
  6. Konfiguration aus Backup uebernehmen
  7. Deployment verifizieren: sudo ./scripts/07-verify-deployment.sh

4. Backup und Restore Verfahren

4.1 Backup-Strategie

Komponente Pfad Backup-Methode Haeufigkeit Aufbewahrung
Cribl Stream Konfiguration /opt/cribl/local/ tar + rsync auf Backup-Server Taeglich + nach jeder Aenderung 90 Tage
Cribl Edge Konfiguration /opt/cribl-edge/local/ tar + rsync auf Backup-Server Taeglich 90 Tage
Projekt-Repository /opt/IceDataEmphasise/ Git (Remote-Repository) Bei jedem Commit Unbegrenzt
Persistent Queue Daten /opt/cribl/state/queues/ Kein regulaeres Backup (transient)
Umgebungsvariablen .env Verschluesselt auf Backup-Server Nach jeder Aenderung 90 Tage

4.2 Backup erstellen (Schritt-fuer-Schritt)

#!/usr/bin/env bash
# Backup-Skript fuer IceDataEmphasise Cribl-Konfiguration

BACKUP_DIR="/backup/cribl/$(date +%Y%m%d_%H%M%S)"
mkdir -p "${BACKUP_DIR}"

# 1. Cribl Stream Konfiguration sichern
echo "Sichere Cribl Stream Konfiguration..."
sudo tar czf "${BACKUP_DIR}/cribl-stream-local.tar.gz" -C /opt/cribl local/

# 2. Cribl Edge Konfiguration sichern
echo "Sichere Cribl Edge Konfiguration..."
sudo tar czf "${BACKUP_DIR}/cribl-edge-local.tar.gz" -C /opt/cribl-edge local/

# 3. Cribl Stream State (ohne Queue-Daten)
echo "Sichere Cribl Stream State..."
sudo tar czf "${BACKUP_DIR}/cribl-stream-state.tar.gz" \
    --exclude='queues' -C /opt/cribl state/

# 4. Projekt-Konfigurationsdateien
echo "Sichere Projekt-Konfiguration..."
tar czf "${BACKUP_DIR}/project-configs.tar.gz" -C /opt/IceDataEmphasise \
    configs/ .env scripts/

# 5. Pruefsumme erstellen
cd "${BACKUP_DIR}" && sha256sum *.tar.gz > checksums.sha256

echo "Backup abgeschlossen: ${BACKUP_DIR}"
ls -lh "${BACKUP_DIR}"

4.3 Restore durchfuehren (Schritt-fuer-Schritt)

#!/usr/bin/env bash
# Restore-Skript fuer IceDataEmphasise Cribl-Konfiguration

BACKUP_DIR="$1"  # Pfad zum Backup-Verzeichnis als Parameter

if [[ -z "${BACKUP_DIR}" || ! -d "${BACKUP_DIR}" ]]; then
    echo "Verwendung: $0 /backup/cribl/20260210_120000"
    exit 1
fi

# 1. Pruefsummen verifizieren
echo "Verifiziere Backup-Integritaet..."
cd "${BACKUP_DIR}" && sha256sum -c checksums.sha256 || {
    echo "FEHLER: Pruefsummen stimmen nicht ueberein! Abbruch."
    exit 1
}

# 2. Services stoppen
echo "Stoppe Cribl Services..."
sudo systemctl stop cribl
sudo systemctl stop cribl-edge

# 3. Aktuelle Konfiguration sichern (Rollback-Moeglichkeit)
echo "Sichere aktuelle Konfiguration als Rollback..."
sudo cp -r /opt/cribl/local /opt/cribl/local.pre-restore
sudo cp -r /opt/cribl-edge/local /opt/cribl-edge/local.pre-restore

# 4. Cribl Stream Konfiguration wiederherstellen
echo "Stelle Cribl Stream Konfiguration wieder her..."
sudo tar xzf "${BACKUP_DIR}/cribl-stream-local.tar.gz" -C /opt/cribl/
sudo chown -R cribl:cribl /opt/cribl/local

# 5. Cribl Edge Konfiguration wiederherstellen
echo "Stelle Cribl Edge Konfiguration wieder her..."
sudo tar xzf "${BACKUP_DIR}/cribl-edge-local.tar.gz" -C /opt/cribl-edge/
sudo chown -R cribl:cribl /opt/cribl-edge/local

# 6. Services starten
echo "Starte Cribl Services..."
sudo systemctl start cribl
sleep 5
sudo systemctl start cribl-edge
sleep 3

# 7. Verifizierung
echo "Verifiziere Wiederherstellung..."
sudo ./scripts/07-verify-deployment.sh

echo "Restore abgeschlossen."
Wichtig: Nach einem Restore muessen Credentials (API-Token, HEC-Token, Passwoerter) ggf. erneut konfiguriert werden, da diese nicht im Klartext gesichert werden.

5. Wiederanlauf-Prozedur nach Notfall

Die folgende Prozedur beschreibt den geordneten Wiederanlauf nach einem Notfall:

5.1 Checkliste Wiederanlauf

  1. Ursache behoben: Sicherstellen, dass die Grundursache des Ausfalls behoben ist
  2. Hardware/Infrastruktur:
  3. Cribl Stream starten:
    sudo systemctl start cribl
    sleep 10
    curl -s http://localhost:9000/api/v1/health | jq .
  4. Cribl Edge starten:
    sudo systemctl start cribl-edge
    sleep 5
    sudo systemctl status cribl-edge
  5. Destinations pruefen:
  6. Persistent Queue abarbeiten:
  7. End-to-End Verifikation:
    sudo ./scripts/07-verify-deployment.sh
  8. Monitoring pruefen:

5.2 Wiederanlaufreihenfolge

SchrittKomponenteAktionErfolgskriterium
1NetzwerkTailscale-Verbindung pruefentailscale status zeigt "Running"
2Cribl StreamService startenAPI Health Check HTTP 200
3DestinationsSplunk-Konnektivitaet pruefenHEC + S2S Ports erreichbar
4Cribl EdgeService startenEdge bei Stream registriert
5QuellenLog-Eingang pruefenEvents/sec > 0 im Dashboard
6PipelineGesamte Pipeline pruefen07-verify-deployment.sh alle Tests bestanden

6. Kommunikationsplan

6.1 Kommunikationsmatrix

Severity Empfaenger Kanal Zeitrahmen Inhalt
Sev1 Teamleitung, ISB, Abteilungsleitung Telefon + E-Mail Sofort (innerhalb 15 Min.) Art des Ausfalls, Auswirkung, geschaetzte Wiederherstellungszeit
Sev1 Geschaeftsleitung E-Mail Innerhalb 30 Min. Kurzuebersicht, Compliance-Relevanz, Massnahmen
Sev2 Teamleitung E-Mail + Chat Innerhalb 30 Min. Art der Stoerung, betroffene Komponenten, Massnahmen
Sev3 Teamleitung Chat / Ticketsystem Innerhalb 4 Std. Problembeschreibung, geplante Massnahmen
Sev4 Team Ticketsystem Naechster Arbeitstag Problembeschreibung, Prioritaet

6.2 Kommunikationsvorlage (Sev1/Sev2)

Betreff: [SEV{X}] IceDataEmphasise - {Kurzbeschreibung}

Zeitpunkt der Erkennung: {YYYY-MM-DD HH:MM}
Betroffene Komponente(n): {Cribl Stream / Edge / Splunk / NUC}
Auswirkung: {Beschreibung der Auswirkung auf Log-Pipeline}

Aktuelle Massnahmen:
- {Massnahme 1}
- {Massnahme 2}

Geschaetzte Wiederherstellungszeit: {HH:MM oder "wird ermittelt"}
Compliance-Relevanz: {Ja/Nein - Begruendung}

Naechstes Update: {Zeitpunkt}

Verantwortlicher Engineer: {Name}
Telefon: {Nummer}

7. Post-Incident Review Template

Hinweis: Ein Post-Incident Review (PIR) ist fuer alle Sev1- und Sev2-Vorfaelle innerhalb von 5 Arbeitstagen nach Behebung durchzufuehren. Fuer Sev3 nach Ermessen der Teamleitung.

Post-Incident Review – Vorlage

FeldInhalt
Incident-ID{INC-YYYY-NNN}
Severity{Sev1 / Sev2 / Sev3}
Datum/Uhrzeit Erkennung{YYYY-MM-DD HH:MM}
Datum/Uhrzeit Behebung{YYYY-MM-DD HH:MM}
Dauer{X Stunden Y Minuten}
Betroffene Komponenten{Cribl Stream / Edge / Splunk / Netzwerk / Hardware}
Auswirkung{Beschreibung: Datenverlust? Welche Quellen betroffen? Dauer?}
Ursache (Root Cause){Detaillierte Beschreibung der Grundursache}
Zeitleiste
  • HH:MM – Vorfall erkannt durch {Quelle}
  • HH:MM – Erstreaktion: {Massnahme}
  • HH:MM – Eskalation an {Person/Rolle}
  • HH:MM – Ursache identifiziert
  • HH:MM – Behebung durchgefuehrt
  • HH:MM – Normalbetrieb wiederhergestellt
Sofortmassnahmen{Was wurde zur Behebung getan?}
Datenverlust{Ja/Nein – Details: Welche Events, Zeitraum}
Compliance-Auswirkung{Ja/Nein – Regulatorische Meldepflicht ausgeloest?}

Lessons Learned und Massnahmen

#Erkenntnis / MassnahmeVerantwortlichFristStatus
1{Beschreibung}{Name}{Datum}Offen
2{Beschreibung}{Name}{Datum}Offen
3{Beschreibung}{Name}{Datum}Offen

Verbesserungsfragen