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
=====Links=====
* [[https://betterstack.com/community/guides/logging/how-to-manage-log-files-with-logrotate-on-ubuntu-20-04/|Betterstack Tutorial]]