Linux: Logrotate Troubleshooting

By | 17. Oktober 2016

Logrotate Troubleshooting

Wer Logrotate im Einsatz hat, sollte sich per Mail die Statusberichte zusenden lassen oder dessen Funktionalität anderweitig überprüfen. Ansonsten können die Log-Dateien bei Fehlern entsprechend groß werden. Im Folgenden findet ihr häufig auftretende Fehlermeldungen und deren Lösung.

Fehlermeldung:

/etc/cron.daily/logrotate:
error: error creating output file /var/log/syslog.1.gz: File exists
run-parts: /etc/cron.daily/logrotate exited with return code 1

Lösung:

Werfen wir einen Blick in das Verzeichnis /var/log/ und suchen dort nach Syslog-Dateien.

root@server: # ls -l /var/log/syslog*
-rw-r----- 1 root adm 1.7G Sep 11 09:19 syslog
-rw-r----- 1 root adm  14M Mar  2  2016 syslog.1
-rw-r----- 1 root adm 1.3M Mar  1  2016 syslog.2.gz
-rw-r----- 1 root adm 389K Feb 29  2016 syslog.3.gz
-rw-r----- 1 root adm 336K Feb 28  2016 syslog.4.gz
-rw-r----- 1 root adm 980K Feb 27  2016 syslog.5.gz
-rw-r----- 1 root adm 938K Feb 26  2016 syslog.6.gz
-rw-r----- 1 root adm 957K Feb 25  2016 syslog.7.gz

In diesem Fall ist schön zu sehen, wie groß die aktuelle Syslog-Datei mittlerweile geworden ist und das die ursprünglich rotierten Syslog-Dateien ein entsprechend altes Datum besitzen. Wir löschen also zunächst die alten Syslog-Dateien …

rm /var/log/syslog.*

… und starten logrotate mit der entsprechenden Konfigurationsdatei für den Logrotate Service.

root@server: # logrotate -f /etc/logrotate.d/rsyslog
root@service-1.womedia.de:~ # ls -l /var/log/syslog*
-rw-r----- 1 root adm 174K Sep 11 10:21 /var/log/syslog
-rw-r----- 1 root adm 1.7G Sep 11 09:32 /var/log/syslog.1

Wie wir sehen, läuft nun wieder alles wie gewünscht.

Führen wir logrotate erneut aus, wird die erste Kompression durchgeführt.

root@server:~ # ls -l /var/log/syslog*
-rw-r----- 1 root adm 2.6K Sep 11 10:25 /var/log/syslog
-rw-r----- 1 root adm 184K Sep 11 10:24 /var/log/syslog.1
-rw-r----- 1 root adm 137M Sep 11 09:32 /var/log/syslog.2.gz

Anmerkung

Sind mehrere Dienste betroffen, muss die Aktion für alle Dienste durchgeführt werden. Anschließend sollte Logrotate wie erwartet seine Arbeit vollrichten.

/etc/cron.daily/logrotate:
error: error creating output file /var/log/php5-fpm.log.1.gz: File exists
error: error creating output file /var/log/syslog.1.gz: File exists
error: error creating output file /var/log/mail.info.1.gz: File exists
error: error creating output file /var/log/mail.log.1.gz: File exists
error: error creating output file /var/log/daemon.log.1.gz: File exists
error: error creating output file /var/log/auth.log.1.gz: File exists
error: error creating output file /var/log/debug.1.gz: File exists
error: error creating output file /var/log/messages.1.gz: File exists
run-parts: /etc/cron.daily/logrotate exited with return code 1
run-parts: /etc/cron.daily/logrotate exited with return code 1

Fehlermeldung:

/etc/cron.daily/logrotate:
gzip: stdin: file size changed while zipping

Lösung

In der Regel ist das Problem auf einen Konfigurationsfehler zurückzuführen. Schaut euch die Datei /etc/logrotate.conf an bzw. die Dateien unterhalb von /etc/logrotate.d.

Findet ihr Dateien mit der Option

compress

, so könnte das Hinzufügen der Option

delaycompress

den Fehler beseitigen. Nicht aber einfach überall hinzufügen, nur in der entsprechenden Konfigurationsdatei, welche den Fehler verursacht.

Tipp: Wenn nicht gleich klar ist, auf welche Konfigurationsdatei sich die Fehlermeldung bezieht, schaltet das Debugging vorübergehend ein.

...
/usr/sbin/logrotate /etc/logrotate.conf
...
...
/usr/sbin/logrotate --verbose /etc/logrotate.conf
...

Bei weiteren Fehlermeldungen werde ich den Artikel ergänzen. Ihr könnt auch gerne in den Kommentaren Fehler und Lösungen hinterlassen.

 

Das war Linux: Logrotate Troubleshooting.

Vielen Dank für das Lesen des Beitrags! Ich würde mich freuen, wenn du den Beitrag über die sozialen Netzwerke teilen würdest und Blog About Tech folgst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.