Schnellreferenz¶
Ein Cheat-Sheet für erfahrene Operatoren. Alle Befehle zum Kopieren.
Wazuh Upgrade (Ubuntu AIO)¶
Ressourcen¶
| Link | |
|---|---|
| Checkliste | CHECKLIST_WAZUH_UPGRADE_AIO |
| Upgrade-Formular | Web-Tool öffnen |
| Runbook | RUNBOOK_WAZUH_UPGRADE_AIO_UBUNTU |
| Change-Note Template | CHANGE_NOTE_TEMPLATE |
| Kunden-Info | CUSTOMERS |
Metadaten für Change-Ticket (Copy-Paste Template)¶
operator: "UNSET"
customer: "UNSET"
infrastructure: "UNSET"
change_ticket: "UNSET"
maintenance_window_start: "UNSET" # Europe/Zurich
maintenance_window_end: "UNSET" # Europe/Zurich
target_version: "UNSET"
current_version: "UNSET"
snapshot_id: "UNSET"
system: "Ubuntu AIO (APT)"
runbook_ref: "../runbooks/RUNBOOK_WAZUH_UPGRADE_AIO_UBUNTU.md"
📋 Health Snapshot (Pre/Post Upgrade)¶
Kompakt-Snapshot (für Tickets / Wartungsformular)¶
echo "=== SNAPSHOT $(date -Is) ==="
dpkg -l | egrep 'wazuh-(indexer|manager|dashboard)|filebeat' | awk '{printf "%-20s %s\n", $2, $3}'
for S in wazuh-indexer wazuh-manager wazuh-dashboard filebeat; do echo "$S: $(systemctl is-active $S 2>/dev/null)"; done
df -h / | tail -1 | awk '{print "Disk: "$5" belegt"}'
curl -sk -u admin:admin https://127.0.0.1:9200/_cluster/health 2>/dev/null | python3 -c "import sys,json;d=json.load(sys.stdin);print(f'Cluster: {d[\"status\"]}')" 2>/dev/null || echo "Cluster: N/A"
echo "=== END ==="
Ausführlicher Snapshot (vollständige Diagnose)¶
date -Is
echo "=== DISK ==="
df -h | grep -v tmpfs
echo "=== MEMORY ==="
free -h
echo "=== SERVICES ==="
systemctl status wazuh-indexer wazuh-manager wazuh-dashboard filebeat
echo "=== VERSIONS ==="
dpkg -l | grep -E 'wazuh-(indexer|manager|dashboard)|filebeat'
echo "=== CLUSTER HEALTH ==="
curl -sk -u admin:admin https://127.0.0.1:9200/_cluster/health?pretty
Post-Snapshot (nach Upgrade)¶
🔍 Diagnose-Befehle (Troubleshooting)¶
Service-Status Check¶
Letzte 50 Fehler im Journal¶
journalctl -u wazuh-indexer -n 50 --no-pager -p err
journalctl -u wazuh-manager -n 50 --no-pager -p err
journalctl -u wazuh-dashboard -n 50 --no-pager -p err
journalctl -u filebeat -n 50 --no-pager -p err
Cluster Health (Indexer)¶
curl -sk -u admin:admin https://127.0.0.1:9200/_cluster/health?pretty
curl -sk -u admin:admin https://127.0.0.1:9200/_cat/shards?v
Manager API Health¶
Disk Space¶
🔄 Häufige Prozess-Schritte¶
1. Services stoppen (für Upgrade)¶
systemctl stop filebeat
systemctl stop wazuh-dashboard
systemctl stop wazuh-manager
systemctl stop wazuh-indexer
2. Paketliste aktualisieren¶
3. Upgrade durchführen (alle Komponenten)¶
4. Services starten (nach Upgrade)¶
systemctl start wazuh-indexer
systemctl start wazuh-manager
systemctl start wazuh-dashboard
systemctl start filebeat
5. Status verifizieren¶
👥 Agentengruppen-Verwaltung¶
Datei-Locations¶
Wichtige Dateien¶
merged.mg - Konsolidierte Konfiguration
Pfad: /var/ossec/etc/shared/<agent-id>/merged.mg
- Wird vom Wazuh-Manager generiert
- Enthält konsolidierte Konfiguration aller Gruppen eines Agents
- Bei jeder Änderung automatisch aktualisiert und an Agent gesendet
- Über Dashboard einsehbar, aber nicht editierbar
ar.conf - Active Response Befehle
Pfad: /var/ossec/etc/shared/<group-name>/ar.conf
- Liste von Befehlen für Active Response
- Skripte/Programme für Wartung und Problembehebung
- Service-Neustart-Anweisungen (Wazuh, OSSEC)
- Über Dashboard einsehbar, aber nicht editierbar
Grundlegende Befehle¶
# Gruppe erstellen
/var/ossec/bin/agent_groups -a -g <group-name>
# Alle Gruppen auflisten
/var/ossec/bin/agent_groups -l
# Spezifische Gruppe mit Details
/var/ossec/bin/agent_groups -l -g <group-name>
# Agent zu Gruppe(n) hinzufügen
/var/ossec/bin/agent_groups -a -i <agent-id> -g <group-name>
# Agent zu mehreren Gruppen hinzufügen
/var/ossec/bin/agent_groups -a -i <agent-id> -g <group1>,<group2>,<group3>
# Agent aus Gruppe entfernen
/var/ossec/bin/agent_groups -r -i <agent-id> -g <group-name>
# Agent aus allen Gruppen entfernen
/var/ossec/bin/agent_groups -r -i <agent-id>
# Alle Agenten mit Gruppenzugehörigkeit
/var/ossec/bin/manage_agents -l
Beispiele¶
# Linux-Server-Gruppe erstellen
/var/ossec/bin/agent_groups -a -g linux-servers
# Agent zu Gruppe hinzufügen
/var/ossec/bin/agent_groups -a -i 001 -g linux-servers
# Agent zu mehreren Gruppen (Multi-Gruppen)
/var/ossec/bin/agent_groups -a -i 002 -g linux-servers,web-servers,prod
# Gruppe löschen (3 Schritte)
/var/ossec/bin/agent_groups -r -g old-servers
rm -rf /var/ossec/etc/shared/old-servers
systemctl restart wazuh-manager
Gruppenkonfiguration¶
# agent.conf erstellen/bearbeiten
vi /var/ossec/etc/shared/<group-name>/agent.conf
# ar.conf erstellen/bearbeiten (optional)
vi /var/ossec/etc/shared/<group-name>/ar.conf
# Konfiguration validieren
/var/ossec/bin/wazuh-logtest-config
# Manager neu laden
systemctl restart wazuh-manager
Health Checks¶
# Gruppen-Verzeichnisse prüfen
ls -la /var/ossec/etc/shared/
# Konfigurationsdateien finden
find /var/ossec/etc/shared/ -name "agent.conf" -o -name "ar.conf" -o -name "merged.mg"
# Manager-Logs für Gruppen-Events
grep -i "group" /var/ossec/logs/ossec.log | tail -n 50
# Agent-Verbindungsstatus
/var/ossec/bin/agent_control -l
# Agent-Synchronisation erzwingen
/var/ossec/bin/agent_control -R <agent-id>
Best Practices¶
# Backup vor Änderungen
tar -czf /backup/wazuh-groups-$(date +%F).tar.gz /var/ossec/etc/shared/
# Namenskonvention
# <umgebung>-<funktion>-<location>
# Beispiel: prod-web-servers, dev-db-servers
# Multi-Gruppen nutzen
# Basis + Funktion + Umgebung
/var/ossec/bin/agent_groups -a -i 001 -g linux-base,web-servers,prod
📁 Katalog-Einträge¶
Neue Infra schnell finden¶
Template für neuen Kunden (copy-paste)¶
---
customer: "UNSET"
infrastructure: "UNSET"
environment: "prod|test|dev"
wazuh_type: "Ubuntu AIO (APT)"
hosts:
- role: "wazuh-aio"
fqdn: "wazuh01.example.tld"
mgmt_ip: "10.10.10.10"
urls:
dashboard: "https://wazuh01.example.tld"
api: "https://wazuh01.example.tld:55000"
indexer: "https://wazuh01.example.tld:9200"
ports_expected:
- "1514/tcp"
- "1515/tcp"
- "55000/tcp"
- "5601/tcp"
- "9200/tcp"
secrets_ref:
admin_user: "vault://path/to/secret"
admin_password: "vault://path/to/secret"
change_policy: "Within business hours (08:00 - 17:00 CET)"
contact_email: "team@example.tld"
---
🚨 No-Go Gates (STOP wenn erfüllt!)¶
| Gate | Check |
|---|---|
| Disk > 90% | df -h → Freigeben vor Upgrade |
| Services nicht running | systemctl status ... → Starten/Debuggen |
| Keine Backup | VM-Snapshot ODER tar-Backup erstellen |
| Außerhalb Fenster | Verschieben auf geplante Zeit |
| Manager < Agent Version | Upgrade Manager ZUERST |
📝 Git Workflow (schnell)¶
Änderung einreichen¶
# Feature-Branch
git checkout -b fix/upgrade-command
# Datei ändern...
# Committe
git add runbooks/RUNBOOK_*.md
git commit -m "fix: Update command for service restart (Wazuh 4.12)"
git push origin fix/upgrade-command
# → Pull Request erstellen im Web
Änderung reviewen¶
# Feature-Branch auschecken
git fetch origin fix/upgrade-command
git checkout -b review/fix-upgrade-command origin/fix/upgrade-command
# Review & test...
# Mergen (nach Approval)
git checkout main
git merge --ff-only review/fix-upgrade-command
🔐 Secrets Management¶
Richtig:
FALSCH (NIE!):
Alle Credentials müssen via Secret-Store referenziert sein!
📞 Support-Links¶
| Resource | URL |
|---|---|
| Wazuh Upgrade Guide | https://documentation.wazuh.com/current/upgrade-guide/ |
| Wazuh Official Docs | https://documentation.wazuh.com/ |
| Project Repo | /Users/i.stricker/docker/dev/Ta-SIEMPlus |
| Contributing Guide | GitHub |
💡 Pro-Tips¶
Tip 1: Mehrere Befehle in Serie mit && verketten¶
Tip 2: Health Check in einer Datei speichern¶
date -Is > /tmp/pre-upgrade-health.txt
systemctl status wazuh-* >> /tmp/pre-upgrade-health.txt
dpkg -l | grep wazuh >> /tmp/pre-upgrade-health.txt
cat /tmp/pre-upgrade-health.txt # Später im Ticket posten
Tip 3: Schnell in Katalog suchen¶
Tip 4: Screen-Session für Upgrades (Pflicht bei Remote-Zugriff)¶
# Session starten (vor dem Upgrade!)
screen -S wazuh-upgrade
# Nach Verbindungsabbruch wiederherstellen
screen -r wazuh-upgrade
# Alle Sessions anzeigen
screen -ls
Tip 5: Checkliste lokal öffnen¶
# Mac:
open checklists/CHECKLIST_WAZUH_UPGRADE_AIO.md
# Linux:
xdg-open checklists/CHECKLIST_WAZUH_UPGRADE_AIO.md
# Windows (PowerShell):
start checklists\CHECKLIST_WAZUH_UPGRADE_AIO.md
Brauchst du mehr Details? → Erste Schritte
Änderung einreichen? → CONTRIBUTING.md
Projekt-Überblick? → Projektübersicht