Hauptkonfiguration unter
/etc/logrotate.conf
Datei z.B unter
/etc/logrotate.d/haproxy
mit folgendem Inhalt erstellen
/var/log/haproxy.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
# Dateinamen mit Datum im Name
# dateext kann auch global aktiviert werden
dateext
dateformat .%Y%m%d
create 0640 syslog adm
sharedscripts
postrotate
# rsyslog oder syslog-ng signalisieren, die Datei neu zu öffnen
/bin/systemctl reload rsyslog >/dev/null 2>&1 || true
endscript
}
| Option | Bedeutung |
|---|---|
| daily | Jeden Tag rotieren |
| rotate 14 | 14 alte Versionen behalten (also 2 Wochen) |
| compress | Alte Logs komprimieren (.gz) |
| delaycompress | Nicht sofort, sondern erst beim nächsten Durchlauf komprimieren (damit du im aktuellen Log einfacher lesen kannst) |
| missingok | Fehler ignorieren, falls Datei nicht existiert |
| notifempty | Nur rotieren, wenn Datei nicht leer ist |
| create 0640 root root | Neue Datei mit passenden Rechten und Besitzern anlegen |
| sharedscripts | postrotate nur einmal pro Block ausführen |
| postrotate … endscript | Nach der Rotation rsyslog reloaden, damit es die neue Datei öffnet |
Testen mit
sudo logrotate -f /etc/logrotate.d/haproxy