80 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 | |
|---|---|---|---|
| Apache Access | /var/log/apache2/<vhost>-access.log (~/logs/ erreichbar) |
HTTP-Requests pro vhost | |
| Apache Error | /var/log/apache2/<vhost>-error.log |
Apache-Fehler + PHP-Fehler (via log_errors = On) |
|
| 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) | |
~/.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- |
SSH- |
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 |
Wichtig:Container-Logs Derueberleben Container-FilesystemRecreate ist nicht persistent. Nach einem
docker rm oder+ Image-Rebuild (Bind-Mount ins
Host-/srv/hosting/subscriptions/<cid>/logs/) und sind die Logs im Containertaeglichen weg.Restic-
NurBackup Verzeichnisseenthalten unter— auch /var/www/(Volume)nach ueberleben.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 —
direktesdirekttail -f ~/logs/<vhost>-access.log(~/logsist Symlink auf/var/log/apache2/error.logetc.). - 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
Persistenz der Container-Logs ueber Recreate hinweg— Volume-Mount fuer/var/log/apache2/und/var/log/msmtp.log, damit sie beim Image-Rebuild ueberleben. (Heute: Log-Historie geht bei jedem Update verloren.)- Log-Rotation aktiv steuerbar — heute
Docker-Default;unbegrenzt wachsend; geplant konfigurierbare Werte pro Sub (Groesse + AnzahlBackups)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.