Protokolle
Audit-Log der Administratoraktionen und Systemprotokoll (Journal).
Audit-Log
Zugriff → Audit-Log zeigt, wer wann was geändert hat. Aufgezeichnet werden:
- jede ändernde Anfrage an die API (Anlegen, Ändern, Löschen, Aktionen) aller Bereiche, auch fehlgeschlagene und abgewiesene,
- An- und Abmeldungen einschließlich falscher Passwörter, der zweite Anmeldeschritt und Änderungen an HTTPS und Zwei-Faktor-Anmeldung,
- Terminal-Sitzungen (Beginn und Ende).
Jeder Eintrag enthält Zeit, Administrator, Adresse des Clients, Aktion (z. B. storage.pool.create), Ziel (z. B. Pool- oder Freigabename), Ergebnis (Erledigt, Fehlgeschlagen, Abgewiesen), HTTP-Status und bei Fehlern den Fehlertext. Passwörter, Schlüssel und Codes werden nie aufgezeichnet.
Filter: Volltextsuche (alle Wörter müssen vorkommen), Administrator, Bereich (erster Teil der Aktion), Ergebnis und Zeitraum. Ein Klick auf eine Zeile zeigt Details. Ältere Einträge laden blättert weiter.
Ablage
/appdata/bunkerbox/data/audit/audit.log (Verzeichnis 700, Datei 600), eine JSON-Zeile pro Eintrag, nur angehängt. Ab 5 MiB wird die Datei zu audit.log.1 (die älteren rücken auf), es bleiben 5 alte Dateien. Beispiel:
{"id":"…","at":"2026-11-02T09:14:03.120Z","action":"shares.create","user":"admin","ip":"192.168.1.50","target":"media","result":"ok","status":201,"errorKey":null,"details":null}
Die Dateien lassen sich mit jq auswerten, z. B. jq -c 'select(.result != "ok")' /appdata/bunkerbox/data/audit/audit.log.
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /api/audit | ?q=&user=&action=<präfix>&result=ok|failed|denied&from=&to=&limit=1..500&before=<cursor> -> AuditPage (neueste zuerst, nextCursor) |
| GET | /api/audit/facets | AuditFacets (vorkommende Administratoren und Bereiche) |
Systemprotokoll
System → Systemprotokoll zeigt das systemd-Journal des Geräts (journalctl -o json), neueste Einträge zuerst.
- Filter: Dienst (alle Units mit Journal-Einträgen), Priorität („Warnung und schwerer“ usw.), Zeitraum (15 Minuten bis 7 Tage oder alles) und Text in der Meldung (ohne Groß-/Kleinschreibung).
- Mitlesen holt alle 3 Sekunden neue Einträge (ab dem zuletzt gesehenen Journal-Cursor) und setzt sie oben an; bis zu 3000 Zeilen bleiben sichtbar.
- Ältere Einträge laden blättert vom ältesten angezeigten Eintrag weiter zurück (300 pro Seite).
- Fehler und kritische Meldungen sind rot, Warnungen orange markiert.
Unit-Namen, Cursor, Zeiten und Suchtext werden geprüft und als einzelne Argumente an journalctl übergeben (Suche über --grep mit maskierten Sonderzeichen). Fehlt journalctl die Mustersuche, filtert Bunkerbox selbst über ein größeres Fenster.
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /api/logs | ?unit=a.service,b.service&priority=0..7&since=&until=&q=&limit=1..2000&after=<cursor>&before=<cursor> -> LogPage (entries neueste zuerst, cursor des neuesten Eintrags, more) |
| GET | /api/logs/units | LogUnit[] (Name und Beschreibung) |