サーバの管理_ログローテートの設定

ログのローテーションについて

本マニュアルではログの肥大化を防ぐためのlogrotateの設定をご案内いたします。
logrotateの設定が初期状態のままですと、ログファイルは次第に肥大化し、最終的にはお客さまのディスク容量を逼迫するようになります。
Webやメール、messages等のログによるディスク容量の占有率増加を防止するためにlogrotateの設定を適切に行うことをお奨めいたします。

  • logrotateとは、ログをローテーションするためのツールです。
  • logrotateは初期状態でインストールされておりますので、「rpm -qilogrotate」などのコマンドでご確認ください。

logrotateの設定について

logrotateの設定ファイルは、/etc/logrotate.confです。
cat などで開いてみると、以下のような設定がされていることがわかります。

# see "man logrotate" for details
# rotate log files weekly
weekly (毎週ログをローテーションする daily:毎日、monthly:毎月)

# keep 4 weeks worth of backlogs rotate 4 (ログを4世代分残す)
# create new (empty) log files after rotating old ones create (ローテーション後に新規でログファイルを作成する)
# uncomment this if you want your log files compressed #compress (# を削除すれば、ローテーションしたログをgzipで圧縮する)
# RPM packages drop log rotation information into this directory include /etc/logrotate.d (各ログファイルの設定がおかれている場所)
# no packages own wtmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 }
  • 行頭に「#」が記載されている行はコメントアウト(設定として有効でない)です。
  • 日本語コメント箇所は説明のために弊社にて記載しておりますのでconf内に転記しないようお願いいたします。

上記の設定内容は、以下の通りです。
ログファイルが肥大化しにくい設定になります。

  • 毎週ログをローテンションして、4世代分残す(つまり、4週間分)。
  • 圧縮はしない。

logrotateの設定例について

ログの肥大化を防止するために有効な設定一例を以下に記載いたします。

  • ログのローテーションの間隔を短くする。

weekly → daily

各種ログファイルサイズが小さく分割されることでlogrotate処理時のサーバ負荷低減が図られ、お客さまのサーバーのより安定した稼動につながります。

短期間でログが肥大化する可能性がある場合、ローテーションの間隔を短くすることが有効です。

  • ログを圧縮する

#compress → compress 各種ログファイルをgz形式で圧縮しますので、ログファイル肥大化によるディスク容量の逼迫を防止します。

  • 設定変更は、vi等のエディタで/etc/logrotate.confを編集、上書き保存で完了です。
  • logrotateが実行される曜日、時間等については /etc/crontab で制御しております。
  • cronの実行時間につきましては、同時に複数の仮想専用サーバのcronが動作しサーバー全体が高負荷状態に陥ることを回避するため、仮想専用サーバーごとに動作時間が分散されております。