(r)syslog nach logrotate neu laden

Wenn logrotate alte Logdateien rotiert, muss rsyslog seine Dateihandles neu öffnen, sonst schreibt es weiter in die alten (nun rotierten) Files, was zum Problem mit offenen Dateihandles führt.
Doch mit welchem postrotate Aufruf macht man das am besten? Im laufe der Zeit hat es einige Varianten gegeben.

Inhalt

Die alte Variante: PID HUP

Früher hatte man das mit PID Dateien gemacht:

postrotate
    /bin/kill -HUP $(cat /var/run/rsyslogd.pid 2>/dev/null) 2>/dev/null || true
endscript

doch diese Methode ist unbeständig (die PID Datei könnte je nach Distribution an einem anderen Ort liegen) und sollte daher nicht mehr gemacht werden

Die moderne Variante: systemctl HUP

Das Senden des Signals HUP an den Dienst ist die empfohlene Methode, um rsyslog seine Logfiles neu einlesen zu lassen, ohne kompletten Restart.

Das sollte so aussehen (z. B. in /etc/logrotate.d/rsyslog):

postrotate
    /bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
endscript

Die Red Hat Variante: /usr/lib/rsyslog/rsyslog-rotate

Auf Red Hat Systemen (RHEL, AlmaLinux, RockyLinux) findet man den Aufruf:

postrotate
    [ -x /usr/lib/rsyslog/rsyslog-rotate ] && /usr/lib/rsyslog/rsyslog-rotate || true
endscript

Das Skript ist ein Wrapper, der genau das erledigt, was mit systemctl kill -s HUP rsyslog.service gemacht würde.

#!/bin/sh
# Rotate rsyslog logs safely
if systemctl >/dev/null 2>&1; then
    systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
else
    kill -HUP $(cat /var/run/rsyslogd.pid 2>/dev/null) 2>/dev/null || true
fi

und es funktioniert auch nur auf Red Hat Systemen, weil z.B. auf Debian Systemen dieses Wrapper-Script nicht vorhanden ist.

Daher ist die direkte Variante besser, sie ist distributionssicher und versionsunabhängig.
Im seltenen Fall wo man es mit Systemen zu tun hat, die noch kein rsyslog haben, kann man dieses Rapper-Script jedoch nutzen.

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert