
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/statusliegen. 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 wieerror: ...oderwarning: .... 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 wierotate,daily,compressmuss 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/*.logvs./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 sollteactive (waiting)sein. Wenn erinactive (dead)ist, starten Sie ihn mitsystemctl start logrotate.timerund aktivieren Sie ihn mitsystemctl 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 sieEurope/Parissein.
5. Schritt: Spezifische Probleme beheben (Rotation und Komprimierung)
Hier sind die drei häufigsten Szenarien der Logrotate Konfiguration Fehlerbehebung:
- Logs werden nicht rotiert: Ursache:
notifemptyist gesetzt, aber die Logdatei ist leer. Lösung: Entfernen Sienotifemptyoder stellen Sie sicher, dass die Anwendung Logs schreibt. Ursache:maxageist zu niedrig eingestellt. Lösung: Erhöhen Siemaxage(z. B.maxage 30). - Logs werden nicht komprimiert: Ursache:
delaycompresswird verwendet, aber die Rotation erfolgt nicht korrekt. Lösung: Fügen Siecompresshinzu und entfernen Siedelaycompress, wenn Sie sofortige Komprimierung wünschen. Ursache: Der Befehlgzipist nicht installiert oder nicht im Pfad. Lösung: Installieren Siegzip(apt-get install gzipunter Debian/Ubuntu). - Postrotate-Skript schlägt fehl: Ursache: Das Skript benötigt Root-Rechte, wird aber mit einem anderen Benutzer ausgeführt. Lösung: Verwenden Sie
suodersudoim 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:
missingokvergessen. Wenn eine Logdatei nicht existiert, bricht Logrotate ohnemissingokmit 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 Siecreate 0640 www-data adm, um die Berechtigungen nach der Rotation korrekt zu setzen. - Fehler 4: Kein Testlauf vor Produktion. Führen Sie immer
logrotate -daus, bevor Sie eine neue Konfiguration in der Produktion einsetzen.
Vergleich: Debug-Modus vs. Forced Run
| Merkmal | Debug-Modus (-d) | Forced Run (-vf) |
|---|---|---|
| Ändert Logdateien? | Nein | Ja |
| Zeigt Fehler? | Ja, detailliert | Ja, aber nur Laufzeitfehler |
| Geeignet für | Syntaxprüfung, Simulation | Endgültiger Test |
| Risiko | Kein Risiko | Kann 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.




