CentOS からアップグレードでrsyslogのloglotateがうまくローテートされていない

ALL
スポンサーリンク

CentOS からアップグレードした RockyLinuxで、rsyslogのログがちゃんとローテートされていないものがありました。
本来ならローテートのタイミングで、たとえば新しい /var/log/messages で出力されるはずが、リネームした /var/log/messages-20241031 といったファイルにローテート後も出力され続けます。この場合、新たに作成された /var/log/messages は何も出力されないので、サイズが0のままになります。

RockyLinux を新規インストール時は、/etc/logrotate.d/syslog の postrotateの箇所が

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

となっているのですが、CentOS からアップグレードした場合は

postrotate
    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

となっていて、これがうまく動かないために、ログローテートされないままになります。

なので、postrotate の箇所を新規インストール時と同様に記述する必要があります。

コメント