ITオムライス

nginxのlogrotateの設定を見直したときのメモ

2020-09-10 技術系

nginxのログを一週間ごとにまとめたくて設定を見直したときのメモです。

設定

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

意味

weekly ログローテーションを週毎に行う
missingok ログファイルが見つからない場合でもエラーにしない
rotate 52 52世代までログを保存
compress ローテートしてログを圧縮
delaycompress 1つ前のファイルはまだ圧縮しない。それ以外を圧縮。
notifempty ログファイルが空ならローテーションしない。
create 640 nginx adm 新た作成するログファイルの権限、ユーザ、グループを指定
sharedscripts スクリプト宣言文。以降に記述された処理をワイルドカードの指定に関わらず、1度だけ実行する
postrotate ログローテーション実施後に実行される部分

参考

Nginx - ログローテーション設定! - mk-mode BLOG

Ubuntu に nginx をインストールした際の logrotate のデフォルト設定が間違ってる! - Qiita

Nginxのログをlogrotateでローテーション - Carpe Diem