logrotate
Wir empfehlen die Verwendung von logrotate. Die logrotate-Konfiguration ist unter /usr/local/etc/logrotate.conf abgelegt. Diese bindet gegebenenfalls weitere Konfigurationen unter /usr/local/etc/logrotate.d/ ein. In diesem Verzeichnis sollte je Dienst eine eigene Konfigurationsdatei erstellt werden. Konfigurationen für die üblichen Dienste wie php-fpm, nginx, usw. sind dort bereits hinterlegt und aktiv. Am Beispiel von nginx ergibt sich durch Vererbung aus /usr/local/etc/logrotate.conf
daily
rotate 7
create
compress
include /usr/local/etc/logrotate.d
und /usr/local/etc/logrotate.d/nginx.conf
/var/log/nginx/*.log {
missingok
notifempty
copytruncate
}
Sofern die Bedeutung aus den Namen der Konfigurationsparameter nicht ersichtlich ist, verweisen wir hier auf die logrotate Manpage.
Aktiviert wird logrotate durch einen cronjob in der crontab des Benutzers root:
5 0 * * * /usr/local/sbin/logrotate /usr/local/etc/logrotate.conf > /dev/null 2>&1
newsyslog
Alternativ zu logrotate kann auch newsyslog genutzt werden. Hier ist die Konfiguration am Beispiel des nginx-Logfiles erklärt.
Die Konfigurationsdateien werden im Verzeichnis /usr/local/etc/newsyslog.conf.d abgelegt. Auch hier sollte je Dienst eine eigene Konfigurationsdatei erstellt werden. Falls das Verzeichnis noch nicht besteht, muss es angelegt werden:
mkdir -p /usr/local/etc/newsyslog.conf.d
Die Konfigurationsdatei für nginx sieht beispielsweise so aus:
/var/log/nginx-access.log 644 7 * @T00 JC /var/run/nginx.pid
/var/log/nginx-error.log 644 7 * @T00 JC /var/run/nginx.pid
/usr/local/etc/newsyslog.conf.d/nginx
Beschreibung der Spalten:
/var/log/nginx-access.log | 644 | 7 | * | @T00 | JC | /var/run/nginx.pid | |
---|
Die zu rotierende Quelldatei | Berechtigungen für Zieldateien | Wie viele Dateien behalten werden sollen | Größe der Datei, ab der rotiert wird. (Unabhängig von der Größe rotieren) | Wann soll die Rotation stattfinden (Hier: Täglich 0:00) | Flags J = komprimieren C = Datei neu erstellen | Pfad zur Pid für Signals nach der Rotation |
|
Eine detaillierte Beschreibung der newsyslog Konfiguration findet sich in der newsyslog Manpage.