Logrotate Konfiguration Fehlerbehebung: Der ultimative Guide

Logrotate Konfiguration Fehlerbehebung: Der ultimative Guide

Kurz gesagt : Prüfen Sie den Status mit `cat /var/lib/logrotate/logrotate.status` und nutzen Sie den Debug-Modus `logrotate -d /etc/logrotate.conf`. Überprüfen Sie Syntax und Pfade auf Tippfehler und testen Sie die Rotation mit `logrotate -vf /etc/logrotate.conf`. Kontrollieren Sie abschließend, ob der Cron-Job oder Systemd-Timer korrekt läuft.

  • Prüfen Sie den Status mit cat /var/lib/logrotate/logrotate.status.
  • Nutzen Sie den Debug-Modus logrotate -d /etc/logrotate.conf.
  • Überprüfen Sie Syntax und Pfade auf Tippfehler.
  • Testen Sie die Rotation mit logrotate -vf /etc/logrotate.conf.
  • Kontrollieren Sie Cron-Job oder Systemd-Timer.

Einleitung: Wenn Logrotate plötzlich streikt

Stellen Sie sich vor: Ihr Server läuft seit Wochen stabil, doch plötzlich ist die Festplatte voll. Oder schlimmer noch: Ihre wichtigsten Logdateien sind leer. Die Ursache ist oft eine falsch konfigurierte oder gar nicht ausgeführte Logrotate-Konfiguration. Logrotate ist ein mächtiges Werkzeug, aber seine Konfigurationsdateien können tückisch sein. Dieser Leitfaden zur Logrotate Konfiguration Fehlerbehebung ist für Systemadministratoren und DevOps-Ingenieure gedacht, die in Frankreich (oder anderswo) Server betreuen. Wir zeigen Ihnen, wie Sie typische Konfigurationsfehler systematisch identifizieren und beheben.

1. Schritt: Den aktuellen Zustand von Logrotate prüfen

Bevor Sie irgendetwas ändern, müssen Sie den Ist-Zustand kennen.

  • Status aller Konfigurationen anzeigen: cat /var/lib/logrotate/logrotate.status. Diese Datei kann je nach Distribution auch unter /var/lib/logrotate/status liegen. Sie zeigt das Datum der letzten Rotation für jede Logdatei.
  • Manuellen Testlauf durchführen (Debug-Modus): Der wichtigste Befehl für die Fehlerbehebung ist der Debug-Modus. Er simuliert die Rotation, ohne die Dateien tatsächlich zu ändern: logrotate -d /etc/logrotate.conf. Achten Sie auf Fehlermeldungen wie error: ... oder warning: .... Dieser Befehl zeigt Ihnen genau, welche Probleme in Ihrer Konfiguration stecken.
  • Erzwungener Testlauf: Um zu sehen, was Logrotate tatsächlich tun würde (wieder ohne echte Änderungen): logrotate -d --force /etc/logrotate.conf.

2. Schritt: Syntax und Pfade in der Konfiguration überprüfen

Die häufigsten Fehlerquellen sind Tippfehler in Dateipfaden oder ungültige Direktiven.

  • Fehlendes Semikolon (;): Jede Direktive wie rotate, daily, compress muss mit einem Semikolon abgeschlossen werden (Ausnahme: geschweifte Klammern {}).
  • Falsche Pfade: Überprüfen Sie, ob der angegebene Pfad zur Logdatei tatsächlich existiert. Ein häufiger Fehler: /var/log/myapp/*.log vs. /var/log/myapp/*.log (Leerzeichen am Ende).
  • Doppelte Konfigurationen: Wenn dieselbe Logdatei in mehreren Konfigurationsdateien unter /etc/logrotate.d/ definiert wird, kann es zu Konflikten kommen.

Beispiel für eine korrekte Konfiguration (für eine französische Anwendung):

/var/log/monapp/*.log { daily rotate 7 compress delaycompress missingok notifempty create 0640 www-data adm postrotate systemctl reload monapp > /dev/null endscript
}

3. Schritt: Die Logrotate-Ausführung testen (Forced Run)

Nachdem Sie die Syntax überprüft haben, führen Sie einen echten Testlauf durch.

  • Erzwungene Rotation ausführen: logrotate -vf /etc/logrotate.conf. -v (verbose) zeigt detaillierte Informationen über die ausgeführten Aktionen. -f (force) erzwingt die Rotation, auch wenn die Logdateien laut Status-Datei bereits rotiert wurden.
  • Was Sie sehen sollten: rotating pattern: /var/log/monapp/*.log (Muster wird erkannt), running postrotate script (Skript wird ausgeführt), compressing log with: /bin/gzip (Komprimierung läuft), error: ... (Wenn ein Fehler auftritt, wird er hier angezeigt).

4. Schritt: Cron-Job und Systemd-Timer überprüfen

Logrotate wird normalerweise nicht manuell, sondern automatisch gestartet. Prüfen Sie, ob der Mechanismus funktioniert.

  • Cron-Job (traditionell): cat /etc/cron.daily/logrotate. In Frankreich wird Logrotate oft über /etc/cron.daily/ gestartet. Stellen Sie sicher, dass die Datei existiert und ausführbar ist (chmod +x).
  • Systemd-Timer (modernere Distributionen): systemctl status logrotate.timer. Der Timer sollte active (waiting) sein. Wenn er inactive (dead) ist, starten Sie ihn mit systemctl start logrotate.timer und aktivieren Sie ihn mit systemctl enable logrotate.timer.
  • Häufiger Fehler: Der Cron-Job läuft nicht, weil die Systemzeit falsch eingestellt ist. Überprüfen Sie die Zeitzone (timedatectl) – in Frankreich sollte sie Europe/Paris sein.

5. Schritt: Spezifische Probleme beheben (Rotation und Komprimierung)

Hier sind die drei häufigsten Szenarien der Logrotate Konfiguration Fehlerbehebung:

  1. Logs werden nicht rotiert: Ursache: notifempty ist gesetzt, aber die Logdatei ist leer. Lösung: Entfernen Sie notifempty oder stellen Sie sicher, dass die Anwendung Logs schreibt. Ursache: maxage ist zu niedrig eingestellt. Lösung: Erhöhen Sie maxage (z. B. maxage 30).
  2. Logs werden nicht komprimiert: Ursache: delaycompress wird verwendet, aber die Rotation erfolgt nicht korrekt. Lösung: Fügen Sie compress hinzu und entfernen Sie delaycompress, wenn Sie sofortige Komprimierung wünschen. Ursache: Der Befehl gzip ist nicht installiert oder nicht im Pfad. Lösung: Installieren Sie gzip (apt-get install gzip unter Debian/Ubuntu).
  3. Postrotate-Skript schlägt fehl: Ursache: Das Skript benötigt Root-Rechte, wird aber mit einem anderen Benutzer ausgeführt. Lösung: Verwenden Sie su oder sudo im Skript. Beispiel: postrotate /usr/sbin/service monapp reload > /dev/null 2>&1 || true endscript.

Häufige Fehler bei der Logrotate-Konfiguration

  • Fehler 1: Glob-Muster zu allgemein. Vermeiden Sie * oder *.log, wenn Sie nur bestimmte Logs rotieren wollen. Dies kann zu unerwarteten Ergebnissen führen.
  • Fehler 2: missingok vergessen. Wenn eine Logdatei nicht existiert, bricht Logrotate ohne missingok mit einem Fehler ab.
  • Fehler 3: Falsche Berechtigungen. Logrotate läuft meist als Root. Wenn die Logdateien einem anderen Benutzer gehören (z. B. www-data), verwenden Sie create 0640 www-data adm, um die Berechtigungen nach der Rotation korrekt zu setzen.
  • Fehler 4: Kein Testlauf vor Produktion. Führen Sie immer logrotate -d aus, bevor Sie eine neue Konfiguration in der Produktion einsetzen.

Vergleich: Debug-Modus vs. Forced Run

MerkmalDebug-Modus (-d)Forced Run (-vf)
Ändert Logdateien?NeinJa
Zeigt Fehler?Ja, detailliertJa, aber nur Laufzeitfehler
Geeignet fürSyntaxprüfung, SimulationEndgültiger Test
RisikoKein RisikoKann Logdaten verlieren (wenn copytruncate fehlt)

FAQ zur Logrotate Konfiguration Fehlerbehebung

Warum werden meine Logs nicht rotiert, obwohl die Konfiguration korrekt ist?

Überprüfen Sie die Status-Datei (/var/lib/logrotate/logrotate.status). Wenn dort ein Eintrag mit einem zukünftigen Datum steht, wurde die Rotation bereits durchgeführt. Löschen Sie den Eintrag und führen Sie logrotate -vf /etc/logrotate.conf erneut aus.

Wie kann ich Logrotate zwingen, eine bestimmte Logdatei sofort zu rotieren?

Verwenden Sie den Befehl logrotate -vf /etc/logrotate.d/meineconfig. Wenn Sie nur eine Datei rotieren wollen, erstellen Sie eine temporäre Konfigurationsdatei.

Logrotate läuft unter Debian/Ubuntu. Wo ist der Unterschied zu RHEL/CentOS?

Der Hauptunterschied liegt im Cron-Mechanismus. Debian/Ubuntu verwendet anacron (in /etc/cron.daily/), während RHEL/CentOS oft cronie verwendet. Die Konfigurationssyntax ist identisch.

Kann Logrotate Logs über NFS rotieren?

Ja, aber das kann zu Problemen führen (Dateisperren). Fügen Sie copytruncate hinzu, um die Logdatei zu kopieren und zu leeren, anstatt sie umzubenennen. Achten Sie auf die Netzwerklatenz.

Was bedeutet der Fehler error: error creating output file?

Dies deutet meist auf ein Berechtigungsproblem hin. Der Benutzer, unter dem Logrotate läuft (meist Root), hat keine Schreibrechte im Zielverzeichnis. Überprüfen Sie die Rechte des Verzeichnisses.

Um zukünftige Probleme zu vermeiden, ist es ratsam, die Linux Log Rotation Konfiguration Anleitung genau zu befolgen und Best Practices anzuwenden.

Eine korrekte Logrotate-Konfiguration ist auch entscheidend, wenn Sie Linux-Logs zentralisieren möchten, um die Datenmenge auf den Clients zu kontrollieren.

Die Fehlerbehebung bei Logrotate ist ein wichtiger Schritt, um sicherzustellen, dass die Daten für eine effektive Linux Server Log Analyse Vorlage stets aktuell und verfügbar sind.

Anna Berger
Anna Berger
IT-Sicherheitsanalystin und Tech-Journalistin

Schon als Kind war ich fasziniert von der Logik hinter Computern und der unendlichen Welt der Daten. Was als spielerische Neugier mit dem Zerlegen alter PCs begann, entwickelte sich schnell zu einer tiefen Leidenschaft für die Informatik. Heute sehe ich es als meine Berufung, komplexe digitale Themen greifbar zu …

Tous les articles de Anna Berger →

Laisser un commentaire