SELinux有効時のlogrotateの挙動
2発目の投稿でマイナーなネタですが・・・
CentOS6で/etc/logrotate.d/以下にlogrotateの設定を追加したときに、ローテーションされない事象に遭遇しました。
事象
- anacron経由でlogrotateは実行されている
- /var/log/messagesに「logrotate: ALERT exited abnormally with [1]」が出力されている
- 直接コマンドで実行する(# logrotate {設定ファイルパス})とローテーションされる
原因
原因(6時間ほどハマった)は以下でした。
https://access.redhat.com/solutions/39006
SELinuxが有効の場合、/var/log/以外のディレクトリではlogrotateによるローテーションが拒否されるっぽい。
対処
原因のリンク先の内容のとおりですが以下の2択のようです。個人的には後者がいいと思います。
- SELinuxのcontextに該当ディレクトリの設定を追加する(設定の反映も必要)
- ログの出力先を/var/log以下にする