Logrotate konfigurieren: Logs sauber verwalten und Speicher sparen

Logfiles sind essenziell für die Überwachung, Fehlerdiagnose und Sicherheit von Linux-Servern. Ohne ein effektives Management können sie schnell den verfügbaren Speicher füllen und die Systemleistung beeinträchtigen. Mit logrotate lassen sich Logs automatisch archivieren, komprimieren und löschen, um Speicher zu sparen und eine saubere Historie zu behalten.

Logrotate Grundlagen

logrotate ist ein Tool zur automatisierten Verwaltung von Logdateien unter Linux. Es unterstützt die Rotation, Komprimierung und das Löschen alter Logs und kann täglich, wöchentlich oder monatlich ausgeführt werden.

Installation

# Debian / Ubuntu
sudo apt update
sudo apt install logrotate

RHEL / CentOS / Rocky / AlmaLinux

sudo dnf install logrotate

Konfigurationsdateien

Die Hauptkonfiguration befindet sich in /etc/logrotate.conf, während einzelne Logrotate-Jobs in /etc/logrotate.d/ hinterlegt werden. Dies erlaubt eine modulare Verwaltung für unterschiedliche Dienste wie Nginx, Apache oder System-Logs.

Grundlegende Logrotate-Konfiguration

Ein einfaches Beispiel für /etc/logrotate.d/nginx:

/var/log/nginx/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        systemctl reload nginx > /dev/null 2>&1 || true
    endscript
}

Erklärung der Direktiven

  • daily: Logs werden täglich rotiert
  • rotate 14: 14 alte Log-Dateien behalten
  • compress: Alte Logs werden gzip-komprimiert
  • delaycompress: Die aktuelle Log-Datei wird erst beim nächsten Rotation-Zyklus komprimiert
  • missingok: Fehler beim Fehlen der Datei werden ignoriert
  • notifempty: Leere Dateien werden nicht rotiert
  • create 0640 www-data adm: Neue Log-Dateien mit definierten Rechten und Eigentümer erstellen
  • sharedscripts: Postrotate-Skript nur einmal ausführen
  • postrotate ... endscript: Dienst nach Rotation neu laden

Rotation testen

Vor einer automatischen Ausführung empfiehlt es sich, die Konfiguration zu prüfen:

sudo logrotate --debug /etc/logrotate.conf
sudo logrotate --force /etc/logrotate.conf

Automatisierung

Logrotate wird in der Regel über Cron-Jobs automatisch ausgeführt. Unter modernen Systemen übernimmt systemd den Timer:

systemctl list-timers | grep logrotate

Alternativ kann ein eigener Cron-Eintrag gesetzt werden:

0 0 * * * /usr/sbin/logrotate /etc/logrotate.conf

Erweiterte Optionen

Mail-Benachrichtigung

Bei kritischen Logs können Sie per E-Mail über Rotation informieren:

mail firstadmin@example.com

Custom Scripts

Vor oder nach der Rotation können eigene Skripte ausgeführt werden, z.B. Backups der Logs oder Sicherheitsprüfungen:

prerotate
    /usr/local/bin/log-backup.sh
endscript

postrotate
/usr/local/bin/log-archive.sh
endscript

Best Practices

  • Für jeden Service eigene Logrotate-Dateien in /etc/logrotate.d/ anlegen
  • Rotation so einstellen, dass Speicherengpässe vermieden werden
  • Logs komprimieren, um Platz zu sparen
  • Alte Logs archivieren oder in ein zentrales Logsystem (ELK, Graylog) verschieben
  • Testen, dass Dienste nach Rotation korrekt neu starten
  • Auf ausreichende Rechte achten, damit Logrotate auf alle Logdateien zugreifen kann
  • Regelmäßig prüfen, ob Cron-Jobs oder systemd-Timer korrekt ausgeführt werden

Fazit für den Betrieb

Mit logrotate lassen sich Linux-Logs effizient verwalten, Speicher sparen und die Übersicht behalten. Durch automatisierte Rotation, Komprimierung und Skriptintegration wird der Betrieb stabiler, und Systemadministratoren können sich auf die Analyse wichtiger Logs konzentrieren, statt sich um volllaufende Dateisysteme zu kümmern.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles