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 の箇所を新規インストール時と同様に記述する必要があります。
コメント