logrotateの設定

【logrotateとは】
・対象のログファイルを設定(実行間隔、保存世代数、サイズがXX以上だったらローテートとか)に基づきローテートする機能
・logrotateはデーモンではない
・デフォルトだとcronで実行されている
 
 
【設定ファイル等】
・/etc/cron.daily/logrotate
centos7.5だとデフォルトではこのスクリプトがcronで日次で実行されてlogrotateが動作する。ちなみに中身は以下の通り。


・/etc/logrotate.conf

logrotateの設定ファイル。centos7.5だとデフォルト設定は以下の通り。


・/etc/logrotate.d/
logrotate.confで読み込む設定ファイルが置かれているディレクトリ。logrotate.confに全ての対象ログの設定を記載することもできるが、logrotate.dディレクトリ配下に種類ごとにファイルを分けて設定を記載する場合が多い。

ちなみにこのディレクトリに、XXXXXX_20170720のようなバックアップファイルを置くと、それも設定ファイルと認識されて処理が実行されてしまうので注意。 

・/etc/logrotate.d/(ファイル)
logrotate.confで読み込まれる設定ファイル。記載例は以下参照。ちなみにlogrotate.confとこちらのファイルの両方に、同じ設定項目に対して異なるパラメータの記載があった場合は、こちらのファイルに記載されている値が適用される。

項目 説明
missingok 対象ファイルが存在しなくてもエラーを出さずに処理続行
ifempty ログファイルが空でもローテーションする
notifempty  ログファイルが空ならローテーションしない
rotate ローテーションする回数を指定
size  指定したファイルサイズ以上になったらローテーション、ただし追加指定された時間間隔より前にはローテートされない
minsize 指定したファイルサイズ以上になったらローテーション、ただし追加指定された時間間隔より前にはローテートされない
maxsize 指定したファイルサイズ以上になったらローテーション、また追加指定された時間間隔よりも前であってもローテートされる
create パーミッション ユーザ名 グループ名   ローテーション後に空ファイルを作成する
daily ログファイルを毎日ローテーションする。他にweeklyなら週1、monthlyなら月1でローテーションされる
compress ローテーションしたログをgzipで圧縮する

size、minsize、maxsizeと時間指定を組み合わせた時の挙動がよくわからなかったので、色々試したところ以下のようになりました。

設定値 サイズ1MB以上

前回実行が
1週間以上前

ローテートされるか
size 1M
weekly
されない
される
される
されない
minsize 1M
weekly
されない
される
される
されない
maxsize 1M
weekly
される
される
される
されない

結局sizeとminsizeの使い分けがよく分かりませんでした。
 
・/var/lib/logrotate.status
 ローテート対象ログが最後にファイルをローテートした日時が記録されるファイル。ローテートが実行されるとこのファイルが参照され、日次でローテートするログファイルならば前回実行日が1日以上前であれば実行の判断がされる。そのためお試しで何回も連続で実行したい場合はこのファイルの前回実行日を書き換えてから再実行する必要がある。
 
 
【デバックモードで実行】
設定が正しくできているか試す方法として、デバックモード(-d)での実行がある。
logrotate -d /etc/logrotate.conf
 

スポンサーリンク
勉強wikiの下部広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
勉強wikiの下部広告

コメント

  1. 通りすがり より:

    and条件なら
    minsize 1M weekly 偽 真
    は実行されないんじゃね?

    • tkc より:

      >通りすがりさん
      コメントありがとうございます。確かに指摘の通りです。間違った表現となっており失礼しました。and条件、or条件の表記は削除しました。この部分はネットで調べて想定していた動きと、実際に試した時の挙動が合わず試行錯誤した部分で、不十分な説明のまま放置状態でした。ですが、実際に試した時の結果の表については、記載の通りの挙動で間違いないです。

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA