Logfiles mit logrotate verwalten

Analog zu FreeBSDs newsyslog, kann man in Ubuntu die Logfiles mit logrotate verwalten.

Logrotate ist in der Regel bereits vorinstalliert, ansonsten per apt-get install logrotate installieren.

Das Hauptkonfigurationsfile befindet sich hier:

/etc/logrotate.conf

Die Dienste werden jedoch über die Files im Verzeichnis

/etc/logrotate.d/

gesteuert. Somit lassen wir das logrotate.conf File unberührt und arbeiten nur mit dem logrotate.d Verzeichnis (für einen neuen Dienst, einfach eine neue Datei im logrotate.d Verzeichnis anlegen mit dem gewünschten Config Inhalt.)

Als Beispiel nehme ich hier das Logfile /var/log/mrtg.log

Im logrotate.d Verzeichnis befindet sich auch schon ein vorinstalliertes File für die mrtg Logs:

more /etc/logrotate.d/mrtg

Output:

/var/log/mrtg/mrtg.log {
weekly
rotate 12
compress
missingok
}

Allerdings zeigt dieses auf eine andere Location und ich möchte eine leich andere Config:

/var/log/mrtg.log { 
        size 2M                 # Wir gepackt, sobald File mind. 2 Megabyte gross ist
        rotate 3                # Behalte die letzten zwei Logs
        maxage 14               # Entferne Logs, die älter als 14 Tage sind
        compress                # Komprimiere die alten Logdateien
        delaycompress           # Komprimiere die Daten, nachdem sie verschoben worden sind
        missingok               # Falls eine Logdatei nicht existiert, ignoriere es
        notifempty              # Leere Logdateien werden nicht rotiert
}

ACHTUNG! Kommentare müssen aus dem defintiven Configfile entfernt werden, da es sonst zu einem Fehler kommen könnte (error: mrtg:8 unknown unit 't')

Nun also einfach das File nach den eigenen Wünschen anpassen und fertig. Logrotate wird jeweils automatisch per Cronjob ausgeführt (/etc/cron.daily/logrotate). Man braucht also nicht weiter mehr zu tun.

Ausführliche Infos und Beispiele zur Konfiguration findest du im

man logrotate

 

nach oben