質問: 先ほどサイトがアクセスできなくなる現象にみまわれ調査したところ、 ディスク容量がいっぱいになりキャッシュが生成出来ない状態にありました。 容量の大きいファイルを探したところ、nginxのアクセスログが目にとまりました。 今回は他のファイルを削除して空きスペースを取りました。 1リクエストごとに行が追加されていくので、そりゃ放置したらまずいよなと初めて気づいたわけですが、よい対応の仕方がわかりません。 ログを残さないわけにもいきませんし、こういう場合どうしたらよいのでしょうか。 また、少し本題から外れますが、ディスクの容量が少なくなった時に気づくような対策を皆様はされていますか。 環境 centos 6.5 nginx
回答: まずはログのローテーションと世代管理をしましょう。UNIX系のOSであればたいてい標準でその仕組みがあります。CentOSであれば`logrotate`です。 例えば下記の/etc/logrotate.d/nginxの例では、一週間ごとに5世代分のログを圧縮して保存します。 ``` /var/log/nginx/*.log { weekly rotate 5 compress missingok notifempty sharedscripts postrotate kill -USR1 `cat /var/run/nginx.pid` || true endscript } ``` ディスク容量の監視については、まずはサーバのステータスをデイリーでメール送信してそれを確認するところからでしょう。認証系のログなどは頻繁に確認すべきです。`logwatch`が定番ツールですが、cronで定期実行して各種のログを自動で要約してメールで送れます。ついでにディスク容量もわかります。