カテゴリー
コンピューター

yum インストールした nginx の logrotate 設定を読み解きます♪

nginx の logrotate 設定ファイル「/etc/logrotate.d/nginx 」

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
        endscript
}

/etc/logrotate.d/nginx の各行の意味

  • /var/log/nginx/*.log {
    「/var/log/nginx/」ディレクトリの、ファイル名が「.log」で終わるファイルを対象とする
  • daily
    日ごとにログファイルを置き換える。
  • missingok
    ログファイルがなければエラーメッセージを出力しない
  • rotate 52
    ログを 52 世代分残す
  • compress
    ログを圧縮する。
  • delaycompress
    ローテートの 1 世代目は圧縮しない
  • notifempty
    元のログファイルが空なら、ローテーションしない
  • create 640 nginx adm
    ローテーション実行後、空の新規ログファイルを属性を指定(パーミッション 640 ユーザ nginx、グループ adm)して作成する。
  • sharedscripts
    複数指定したログファイルに対し、postrotate または prerotate で記述したコマンドを実行
  • postrotate 〜 endscript
    ローテーション終了後に postrotate から endscript までの処理を実行する。
  • [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    馴染みがなくてわからないが、おそらく nginx を再起動するような感じ?

おわりに

次のページが参考になりました。今回、圧縮の設定は初めてでしたので大変参考になりましたの。

また、以前書いた投稿も参考になりました。

今回 nginx のログローテートの設定を見直そうと思ったのは、Tripwire のレポートをみておりましたら nginx のログがいつまでも増え続けていたからですの。そこでローテート設定をみてみますと、なんと 52 個も残すのですのね!驚きました。

多いとも思いましたけれども、それ以上は増えませんし、サーバの容量はまだございますからこのままといたしました。

ふと感じましたのは、yum で nginx をインストールしますと nginx ユーザが作られますけれども、ドキュメントルート配下はそのユーザとしないで運用する場合がございます。

それでもちろん問題はありませんけれども、ログのユーザは nginx となってしまう。。。いえ、問題はありませんけれども、気にし始めますとなにかともやっといたします><。

なお、本投稿は次の nginx で WordPress を動かすシリーズのひとつでございました。

以上です。

「yum インストールした nginx の logrotate 設定を読み解きます♪」への1件の返信

コメントを残す