エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

ログローテートとは?ログファイルを肥大化させない方法【382日目】

こんなとき

サーバー立てた!ログを保存する!

サーバー動かしている内に、ログがどんどん大きくなった・・・

とならないようにするのがログローテート。

mysqld-2018-10-30.log

みたいなファイルをみたことはありませんか?

何をしているの?

毎日ログファイルを見て、ログを日付ごとにファイルを分けて保存する。

また、ログの最大個数を設定しておくと、最新3日分だけ保存するとかも出来ます。

mysqld-2018-10-27.log
mysqld-2018-10-28.log
mysqld-2018-10-29.log
mysqld.log

こんな感じ。

どうやって設定するの?

/etc/logrotate.d辺りに設定ファイルが。

mysqlを例にすると、

/etc/logrotate.d/mysqld57

/var/log/mysqld.log {
  create 640 mysql mysql
  notifempty
  daily
  rotate 3
  missingok
  compress
  postrotate
  # just if mysqld is really running
    if test -x /usr/libexec/mysql57/mysqladmin && \
      /usr/libexec/mysql57/mysqladmin ping &>/dev/null
    then
      /usr/libexec/mysql57/mysqladmin flush-logs
  fi
  endscript
}

設定内容の例

/var/log/mysqld.log { で、対象のログファイルを選択
daily で毎日ログローテートの設定
rotate 3で最大3つまで保存

等々、こんな感じに設定をします。

つまり、週ごとに保存したり、保存する量を決めたりできるんですね。

ログローテートで快適なロギングを!

ログを取って満足!するとサーバーが大変なことになったりするので!

ログを設定したら、ログローテートの設定がされているか見直してみましょう!