TECHブログ


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以下にする