揮発性のメモ2

知識をメモ書きしておく

rsyslogdがログファイルを掴んで離さない

ディスクが見えないファイルに圧迫されていたので lsof で確認したところ、
rsyslogdがでかいログファイルを掴んで離さないのが発見された。

rsyslogd    511           root    4r      REG        0,3          0 4026531924 /proc/kmsg
rsyslogd    511           root    5w      REG        8,1 4873859072     262184 /var/log/hoge/piyo.log.1 (deleted)
rsyslogd    511           root    6w      REG        8,1    2748416     264829 /var/log/hoge/piyo.log
rsyslogd    511           root    7w      REG        8,1      19598     262192 /var/log/syslog

とりあえずrsyslogdを再起動してログローテートしてその場はしのいだが、なにが原因だったのか

systemctl restart rsyslog
logrotate -f /etc/logrotate.conf


rsyslog経由で別ファイルにログを出力しているとき、rsyslogはファイルをオープンしっぱなしなので
ローテート後に「ローテートしたよ」と通知する必要がある

/var/log/hoge/piyo.log {
    daily
    missingok
    rotate 5
    compress

#   rsyslog経由なので、ログを更新させる
    sharedscripts
    postrotate
        invoke-rc.d rsyslog rotate > /dev/null
    endscript
}