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件の返信
[…] 参考にしたのはyum インストールした nginx の logrotate 設定を読み解きます♪です。 […]