Phusion Passengerのログローテート設定 ― 2017/04/12
logrotateでファイルがmvされてもPassengerは以前のファイルを掴んだままなので、これを手放させる必要がある。 方針は2つ?
logrotateをcopytruncateモードで動かす。
- 旧ログをmvではなくcpした上で旧ログの内容をクリアする。
- 処理時間がかかるのでログの取り零しが発生しうる。
# /etc/logrotate.d/passenger.log /path/to/app/shared/log/*log { weekly missingok rotate 1000 create 0644 user group copytruncate dateext }
logrotateのpostrotateでPassengerにアプリを再読み込みさせる。
- ログの取り零しは発生しない。
- 次回のアクセス時にRailsの起動コストがかかる。
# /etc/logrotate.d/passenger.log /path/to/app/shared/log/*log { weekly missingok rotate 1000 create 0644 user group dateext sharedscripts postrotate touch /path/to/app/current/tmp/restart.txt endscript }
うちは緩いサービスなのでcopytruncateで良いけど、copytruncateで取り零しが発生するようなサービスだと、Railsの起動コストはもっと耐えられないような気がするけど……。
コメント
トラックバック
このエントリのトラックバックURL: http://dragonstar.asablo.jp/blog/2017/04/12/8460812/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。