Alte Logfiles löschen: unsichtbarer Datenmüll mit Wachstumsproblem

Impuls 35 von 40: Während du schläfst, schreibt dein Webserver Protokoll. Jeder Seitenaufruf, jeder 404-Fehler, jeder Bot-Request, jede fehlgeschlagene Anmeldung – alles landet in Logdateien. Auf einem gut frequentierten Server wächst der access.log täglich um Megabytes. Ohne Gegenmaßnahmen sind das nach einem Jahr mehrere Gigabytes – auf manchen Systemen deutlich mehr.

Ich habe das auf eigenen Servern erlebt: Ein Staging-System, das seit zwei Jahren nicht mehr aktiv genutzt wurde, hatte 8 GB Logdateien angesammelt. Niemand hatte sie je angesehen.

Was auf einem Server an Logs anfällt

Access-Logs protokollieren jeden HTTP-Request: IP-Adresse, Zeitstempel, aufgerufene URL, Status-Code, User-Agent. Das sind personenbezogene Daten im Sinne der DSGVO – IP-Adressen fallen darunter.

Error-Logs dokumentieren Fehler und Warnungen. Nützlich bei der Fehlersuche, aber nach der Behebung des Problems ohne dauerhaften Wert.

Debug-Logs entstehen bei CMS-Systemen wie WordPress, wenn der Debug-Modus aktiviert ist und nie wieder deaktiviert wurde. Sie können in kurzer Zeit auf gigantische Größen wachsen.

Bot-Logs und Crawler-Daten können bei aggressiven Crawlern erhebliche Mengen erzeugen – besonders wenn keine Limitierung über robots.txt oder Firewall besteht.

Newsletter-Reports und Tracking-Daten bei E-Mail-Plattformen: Öffnungsraten, Klickpfade, Gerätedaten – oft jahrelang gespeichert, obwohl nur die aggregierten Statistiken noch relevant sind.

Tipp

Logrotation einrichten – einmal konfiguriert, dauerhaft wirksam:

Auf Linux-Servern übernimmt logrotate das automatische Rotieren und Löschen von Logdateien:

/var/log/apache2/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    sharedscripts
}

Das bedeutet: Tägliche Rotation, 14 Tage aufbewahren, danach löschen. Nginx und andere Server haben ähnliche Konfigurationsmöglichkeiten. Einmal eingerichtet, wächst kein Log unkontrolliert weiter.

Die DSGVO-Dimension

Access-Logs enthalten IP-Adressen. IP-Adressen sind personenbezogene Daten. Wer Access-Logs unbegrenzt aufbewahrt, verstößt gegen den Grundsatz der Datenspeicherbegrenzung nach Art. 5 DSGVO.

Die Datenschutzbehörden empfehlen eine Aufbewahrungsdauer von 7 bis maximal 14 Tagen für Access-Logs, sofern keine konkreten Sicherheitsvorfälle eine längere Analyse erfordern. Wer Logs für Sicherheitszwecke länger benötigt, sollte IP-Adressen nach wenigen Tagen anonymisieren und nur die anonymisierten Statistiken weiter aufbewahren.

Achtung
WordPress-Installationen mit aktiviertem Debug-Modus (WP_DEBUG_LOG = true in der wp-config.php) schreiben alle PHP-Meldungen in eine debug.log-Datei. Diese wächst ohne Limit. Nach der Fehlersuche sollte der Debug-Modus sofort wieder deaktiviert werden – oder eine maximale Dateigröße konfiguriert sein.

Was stattdessen aufbewahrt werden sollte

Rohdaten-Logs braucht niemand dauerhaft. Was langfristig wertvoll ist, sind verdichtete Statistiken: Seitenaufrufe pro Tag, häufigste Fehlertypen, Bandbreitenverbrauch pro Monat. Diese lassen sich aus den Logs extrahieren und als kompakte Zusammenfassung archivieren – ein Bruchteil der Originalgröße, mit dem gleichen Informationsgehalt für die meisten Auswertungszwecke.

Matomo und andere Analyse-Tools übernehmen diese Verdichtung automatisch, wenn sie korrekt konfiguriert sind.

Weniger Datenmüll auf dem Server bedeutet mehr Übersicht, weniger Risiko und messbar weniger Energieverbrauch – für Logs, die niemand mehr anschaut.

Dieser Tipp ist Teil meiner Serie Digitalfasten ohne Verzicht – 40 Impulse zur Fastenzeit 2026: Zum LinkedIn-Post