PDNS Manager

Audit-Log

Der Audit-Log beantwortet die typische Compliance-Frage „Wer hat wann was geändert?" – und ist auch im Alltag praktisch, wenn die Frage „Warum sieht die Zone heute anders aus als gestern?" auf den Tisch kommt.

Was geloggt wird

Im Prinzip jede schreibende Aktion am DNS-Bestand und an sicherheitsrelevanten Settings. Die action-Werte aus dem Code:

BereichAktionen
ZonenCREATE, UPDATE, DELETE, IMPORT, NOTIFY
RecordsCREATE, UPDATE, DELETE, BULK_UPDATE
DNSSECDNSSEC_ENABLE, DNSSEC_DISABLE, KEY_ACTIVATE, KEY_DEACTIVATE, KEY_DELETE
SettingsREVEAL_API_KEY (PowerDNS-API-Key wurde abgerufen), Server-CRUD, SMTP-/Captcha-/Welcome-Updates.
ACMEACME_PRESENT, ACME_CLEANUP – jede Challenge wird geloggt.

Eine Zeile im Detail

Im Panel unter Audit-Log (Admin-only) siehst du alle Einträge tabellarisch, mit Filtern für Aktion, Resource-Typ und Server. Eine Zeile als JSON (so kommt sie aus GET /api/v1/audit-log):

{
  "id": 4711,
  "timestamp": "2026-04-27T14:23:01.456Z",
  "action": "UPDATE",
  "resource_type": "RECORD",
  "resource_name": "www.example.com. A",
  "server_name": "master-fra1",
  "user_id": 17,
  "details": {
    "old": [{"content": "203.0.113.10", "ttl": 300}],
    "new": [{"content": "203.0.113.20", "ttl": 60}],
    "fan_out": [
      {"server": "master-fra1", "status": "ok"},
      {"server": "master-ams1", "status": "ok"}
    ]
  },
  "status": "success",
  "error_message": null
}

Die wichtigsten Felder:

  • action + resource_type + resource_name – „was hat sich geändert".
  • user_id – wer war es.
  • server_name – auf welchem PowerDNS-Server.
  • details – frei strukturiertes JSON, je nach Aktionstyp.
  • statussuccess oder error; bei error steht in error_message die Klartext-Meldung.

Filtern

Die Tabelle filtert sich live; im Hintergrund landen die Filter als Query-Params an der API:

GET /api/v1/audit-log
    ?action=DELETE              # nur Löschungen
    &resource_type=RECORD       # nur Records (oder ZONE / DNSSEC / SETTING / USER)
    &server_name=master-fra1    # nur dieser Server
    &limit=50&offset=0

CSV-Export

Im Audit-Log gibt es einen CSV exportieren-Button (Endpoint: GET /api/v1/audit-log/export). Format:

  • Trennzeichen: Semikolon (;) – damit Excel den File ohne „Spalten aufteilen"-Wizard öffnet.
  • UTF-8 mit BOM – damit Umlaute auch in Excel sauber dastehen.
  • Per Default Filter wie in der UI; max_rows begrenzt den Export.
curl -OJ \
  -H "Authorization: Bearer dnsmgr_usr_..." \
  "https://pdns.example.com/api/v1/audit-log/export?action=DELETE&max_rows=10000"

Aufbewahrung

Der PDNS Manager rotiert das Audit-Log nicht automatisch. Wer das DSGVO-konform haben will, fügt entweder einen Cron auf der DB hinzu, der ältere Einträge löscht, oder zieht den Log per Webhook zu einem zentralen Log-Server (siehe Webhooks).

Hier ist noch kein Bild hinterlegt. Lege es unter src/assets/screenshots/<dateiname> ab und trage es in der Galerie-Liste ein.