Linux
Redmine
logrotate

Redmineのproduction.logをログローテーションする方法

事象

redmineのproduction.logが開けない

原因

redmineのproduction.logが肥大化しすぎ
※一応tailコマンドで行数指定で開けるがこのまま肥大化し続けるのはよくないため、対応

対処法

logrotateで月次でログをローテーションさせる
※logrotateのツールで複数のログファイルを圧縮、削除、メールで送信するための機能

1. logrotateのインストールを確認

yum list installed | grep logrotate

2. redmineの個別logrotateファイルを設定

/etc/logrotate.d/redmine
/opt/rails/redmine/log/*log {
    monthly
    missingok
    notifempty
    copytruncate
    compress
    su redmine redmine
}

3. logrotateをデバッグ

logrotate -d /etc/logrotate.d/redmine

4. logrotateを手動実行

logrotate -f /etc/logrotate.d/redmine

つまづいたポイント

logrotateしたときに「because parent directory has insecure permissions」というエラーが発生
 ⇒ローテーションする際に権限でエラーが発生していると考えられる