Logrotate erzeugt nahezu 100% Last

Beitragsdatum 06.12.2018
Letzte Aktualisierung -
Betrifft logrotate

Problem

Ein Kunde meldete sich bei mir und berichtete, dass sein Server (Ubuntu 14.04 LTS) nicht mehr richtig laufen würde. Ich meldete mich über ssh an und prüfte die Systemdaten (top, free usw.).
Schnell stellte ich fest, dass ein logrotate-Prozess seit langer Zeit den CPU zu fast 100% auslastete.


Ursache

Ich prüfte die Funktion von logrotate mittel des Debug-Schalters:

logrotate -d /etc/logrotate.conf

Hier zeigte sich, dass logrotate sofort bei einer bestimmten Konfigfile hängen blieb.

Ich prüfte die Konfigfile und stellte fest, dass das Muster der zu rotierenden Logfiles falsch angegeben war. Es handelte sich dabei um eine vom Kunden angelegte Konfig für die Rotation der Logfiles der virtuellen Hosts für Apache.

# falsches Muster der zu rotierenden Logfiles:
/var/www/vhosts/system/logs/*/*log*

# Dieses Muster schließt nämlich die bereits rotierten Logfiles mit ein.


# richtig:
/var/www/vhosts/system/logs/*/*log /var/www/vhosts/system/logs/*/*log.webstat /var/www/vhosts/system/logs/*/*log.processed {

Dadurch entstanden im Laufe der Zeit zahlreiche rotierte Logfiles von rotierten Logfiles - rekursiv also. Das kostete nicht nur Unmengen an inodes, sondern zusätzlich Leistung und Speicher.


Lösung

Beim Aufräumen nicht die logrotate-Status-Datei vergessen - siehe unten.


Quellen:


Ähnliche Themen im blog:
logrotate, cpu, prozess


zurück