Skip to main content

Protokollierung / Logging

Protokollierung / Logging

Was wird protokolliert, wo landen die Logs, und was ist geplant.

Aktueller Stand

Logs im Container

Jeder Sub-Container schreibt lokal:

Log Pfad im Container Inhalt Persistent?
Apache Access /var/log/apache2/<vhost>-access.log (auch per ~/logs/ erreichbar) HTTP-Requests pro vhost Ja — Bind-Mount + im Restic-Backup
Apache Error /var/log/apache2/<vhost>-error.log Apache-Fehler + PHP-Fehler (via log_errors = On) Ja — Bind-Mount + im Restic-Backup
PHP Errors in Apache Error (nicht separat) fatal/warning/notice — steuerbar per error_reporting in Custom-INI siehe Apache Error
msmtp /var/log/msmtp.log ausgehende Mails (Sender, Empfaenger, Ergebnis) Ja — Bind-Mount + im Restic-Backup
Supervisor-Kunden-Prozesse ~/.webunit/logs/*.log stdout/stderr eigener [program:...]-Configs Ja — Home-Volume + im Restic-Backup
Container stdout/stderr via docker logs Apache-Startup + Supervisor-Events + PHP error_log() ohne Datei Nein — Docker-Default (10 MB, 3 Files), Debug-only
SSH-Logins in den Container /var/log/auth.log (Container-intern) SSH-Sessions dieses Kunden Nein — Redundant zu Node-ssh-proxy-Log
SSH-Routing (alle Kunden) Node: ssh-proxy Container-Log + /var/log/hosting-sshpiper.log SSH-Verbindungen aller Subs auf der Node, Fail2Ban-Quelle Ja — Node-persistent

Container-Logs ueberleben Container-Recreate + Image-Rebuild (Bind-Mount ins Host-/srv/hosting/subscriptions/<cid>/logs/) und sind im taeglichen Restic- Backup enthalten — auch nach Node-Umzug also verfuegbar.

Logs auf der Node (ausserhalb Container)

Log Pfad Inhalt
Hosting-API journalctl -u hosting-api Node-API-Requests, Rebuilds, Sync-Runs
Backup /srv/hosting/backup-state.json + /var/log/hosting-backup-*.log Zeitpunkte, Erfolg/Fehler, Dauer, letzte 50 Events pro Sub
SSH-Piper Container-Logs ssh-proxy SSH-Routing-Entscheidungen (welcher User, welcher Sub)
Rebuild-Images /var/log/hosting-rebuild-images.log Image-Build-Output, Sub-Recreate
Self-Update /var/log/hosting-self-update.log Node zieht Binary + Templates vom Admin

Logs im Admin-Panel

Log Ort Inhalt
Aktivitaets-Log pro Sub subscription_events-Tabelle, sichtbar auf Subscription-Show Create/Update/Delete, Hostname/DB/Mail-Aenderungen, Backup-Trigger, Install, Restore — wer, wann, was
Access-Tokens fuer Kunden pro Sub sichtbar Erzeugung + Verwendung von Zugangs-Links
Logs-Viewer pro Sub subscriptions/{id}/logs Live-Tail Apache Access / Error / Container stdout (letzte 50 Zeilen)
Monitoring pro Sub + pro Node 5-Min-Samples: CPU/RAM/Storage/Load, letzte 31 Tage

Zugriff fuer den Kunden

  • SSH in den Container — direkt tail -f ~/logs/<vhost>-access.log (~/logs ist Symlink auf /var/log/apache2/).
  • Log-Viewer im Admin-Panel — Reseller/Admin sieht letzte 50 Zeilen jedes Log-Typs (Apache Access, Error, Container-stdout) per Web ohne SSH.
  • Aktivitaets-Log — Wer hat wann was im Panel gemacht (nur fuer eigene Subs).

Geplant / in Arbeit

  • Log-Rotation aktiv steuerbar — heute unbegrenzt wachsend; geplant konfigurierbare Werte pro Sub (Groesse + Anzahl Backups + Retention-Tage).
  • Zentrale Log-Aggregation — vermutlich Loki/Grafana als Node-uebergreifende Sammelstelle mit Retention, Suche und Alerts. Prioritaet mittel.
  • DB-Slow-Query-Log — heute nicht aktiv; per Custom-DB-Config einzeln aktivierbar (slow_query_log = 1, long_query_time = 1).
  • Auditierbare Backup-/Restore-Events als CSV/JSON-Export — heute nur im Admin sichtbar, nicht exportierbar.
  • Web-Log-Viewer fuer Endkunden — heute nur Reseller sieht Logs im Panel; geplant eigene Kunden-Ansicht mit den letzten N Zeilen der eigenen Sub.

Datenschutz-Hinweis

Access-Logs enthalten IP-Adressen der Website-Besucher. Diese werden nach DSGVO-Standard 30 Tage aufbewahrt (per Docker-Log-Rotation faktisch weniger). Wenn Sie kuerzere Aufbewahrung brauchen: sagen Sie Bescheid, wir konfigurieren Log-Rotation entsprechend.

Fragen?

Bei Fragen zu Log-Zugriff / Retention / Exports einfach melden — die meisten Punkte oben sind Config-Aenderungen, keine Software-Aenderungen.