cronolog で nginx のアクセスログをローテート
cronolog のインストール
$ sudo yum -y install cronolog --enablerepo=epel
$ which cronolog
/usr/sbin/cronolog
cronolog の使い方
30秒間隔でローテート
$ cronolog --period=30seconds access.log
30分間隔でローテート
$ cronolog --period=30minutes access.log
2時間間隔でローテート
$ cronolog --period=2hours access.log
2日間間隔でローテート
$ cronolog --period=2days access.log
2週間間隔でローテート
$ cronolog --period=2weeks access.log
2ヶ月間隔でローテート
$ cronolog --period=2months access.log
cronolog で出来ないこと
120分間隔でローテート
$ cronolog --period=120minutes access.log
※60分を超える時間は指定できない。
120秒間隔でローテート
$ cronolog --period=120seconds access.log
※60秒を超える時間は指定できない
7分間隔でローテート
$ cronolog --period=7minutes access.log
※60分で割り切れない時間は扱えない
nginx の設定
/var/log/nginx/access.log
を mkfifo でパイプにして、実際のログは /var/log/nginx/access.log.%Y-%m-%d.%H.%M
に出力するようにする。
/etc/init.d/nginx
:
:
cronolog="/usr/sbin/cronolog"
logdir="/var/log/nginx"
:
:
cronolog_start() {
if ! [ -p $logdir/access.log ]; then
rm -f $logdir/access.log
mkfifo $logdir/access.log
fi
/bin/sh -c "/bin/cat $logdir/access.log | $cronolog --period=30minutes $logdir/access.log.%Y-%m-%d.%H.%M &"
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
cronolog_start || exit 7 ← これを追記
:
:
}
アクセスログ
アクセスログはこんな感じになります。
Author And Source
この問題について(cronolog で nginx のアクセスログをローテート), 我々は、より多くの情報をここで見つけました https://qiita.com/ogin_s57/items/1884c5adae1bdcb44947著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .