Zum Hauptinhalt springen

So richten Sie logrotate für die automatische Protokollarchivierung und die Einsparung von Serverplatz ein

· 2 Minuten Lesezeit
Customer Care Engineer

Das Protokollmanagement ist ein entscheidender Teil der Arbeit eines jeden Serveradministrators. Nicht gedrehte Protokolle können schnell den gesamten verfügbaren Speicherplatz belegen, den Server verlangsamen und zu unvorhersehbaren Fehlern führen. In diesem Artikel erklären wir, wie Sie logrotate für die automatische Protokollbereinigung und -rotation auf einem Server konfigurieren und verwenden.


Was ist logrotate und warum ist es wichtig, es zu verwenden?

Logrotate ist ein Tool für die automatische Protokollverwaltung. Es hilft dabei:

  • Alte Protokolle löschen – löscht oder archiviert alte Protokolldateien automatisch.
  • Festplattenspeicher sparen – komprimiert und entfernt unnötige Protokolle.

Die Protokollrotation verhindert, dass sich Protokolle ansammeln und den Speicherplatz überlaufen, was zu Abstürzen und Datenverlust führen könnte. Logrotate archiviert automatisch alte Protokolle und schafft Platz für neue Daten.


Wie funktioniert logrotate?

Wenn logrotate aktiv ist, führt es automatisch die folgenden Schritte aus:

  1. Protokollrotation – alte Protokolle werden umbenannt und gespeichert, während neue Dateien an ihrer Stelle erstellt werden.
  2. Kompression – alte Protokolle können zur Platzersparnis in das .gz-Format komprimiert werden.
  3. Löschen – veraltete Protokolle können gelöscht werden, wenn sie nicht mehr benötigt werden.

Beispiel: Eine Protokolldatei namens access.log kann in access.log.1 umgewandelt, dann in access.log.1.gz komprimiert und schließlich nach einer festgelegten Aufbewahrungsfrist gelöscht werden.

---

So konfigurieren Sie logrotate

1. Installation von logrotate

Auf den meisten Linux-Systemen ist logrotate vorinstalliert. Um zu überprüfen, ob logrotate installiert ist, führen Sie den folgenden Befehl aus:

sudo logrotate --version

 Wenn logrotate nicht installiert ist, kann es über einen Paketmanager installiert werden.

  • Für Debian/Ubuntu:
sudo apt update && sudo apt install logrotate
  • Für CentOS/RockyLinux/AlmaLinux:
sudo yum install logrotate

2. Konfiguration von logrotate

Die Konfiguration von logrotate ist normalerweise in /etc/logrotate.conf gespeichert. Diese Datei enthält allgemeine Parameter für alle Protokolle auf dem Server. Um die Rotation einzelner Protokolle zu konfigurieren, können Sie separate Konfigurationsdateien für verschiedene Dienste im Verzeichnis /etc/logrotate.d/ erstellen.

Beispiel für eine Standard-Nginx-Konfiguration:

/var/log/nginx/*.log {
daily           # Protokolle werden täglich rotiert
missingok       # Zeige keine Fehlermeldung, wenn die Protokolldatei fehlt
rotate 7       # Behalte 7 archivierte Dateien
compress       # Komprimiere alte Protokolle
delaycompress  # Verzögere die Komprimierung bis zur nächsten Rotation
notifempty     # Rotiere keine leeren Dateien
create 0640 www-data adm  # Erstelle neue Protokolle mit spezifischen Berechtigungen
}

3. Wichtige Konfigurationsparameter

  • täglich/wöchentlich/monatlich – legt fest, wie oft die Protokolldatei rotiert wird (täglich, wöchentlich oder monatlich).
  • rotate [N] – gibt die Anzahl der zu behaltenden archivierten Protokolle an.
  • compress – aktiviert die Komprimierung von Protokolldateien (typischerweise in .gz).
  • missingok – verhindert Fehler, wenn eine Protokolldatei fehlt.
  • notifempty – überspringt die Rotation für leere Dateien.
  • create – erstellt neue Protokolle mit den angegebenen Berechtigungen.

4. Ausführen von logrotate

Logrotate wird normalerweise automatisch über cron ausgeführt. Sie können es jedoch manuell ausführen, wenn Sie die Konfiguration überprüfen oder eine Rotation sofort durchführen müssen:

sudo logrotate -f /etc/logrotate.conf

5. Überprüfung der Funktion von logrotate

Um sicherzustellen, dass logrotate korrekt funktioniert, können Sie die neuesten Einträge in seinem Dienstprotokoll überprüfen:

sudo journalctl -u logrotate -n 10