DockerのnginxとRedisでホストにマウントしたログをログローテーション
AWS Workspaces
Amazon Linux2
nginx 1.16.1
Redis 5.0.7
blacklabelops/logrotate
mkdir -p log/nginx
mkdir -p log/redis
chmod 777 log/redis
docker run -d \
--name nginx \
-p 81:80 \
-v $(pwd)/log/nginx:/var/log/nginx \
nginx:1.16.1
docker run -d \
--name redis \
-p 6379:6379 \
-v $(pwd)/log/redis:/var/log/redis \
redis:5.0.7 bash -c "mkdir -p /var/log/redis && touch /var/log/redis/redis.log && redis-server --logfile /var/log/redis/redis.log"
docker run -d \
--name logrotate \
-v $(pwd)/log/nginx:/var/log/nginx \
-v $(pwd)/log/redis:/var/log/redis \
-e "LOGS_DIRECTORIES=/var/log/nginx/*.log /var/log/redis/*.log" \
-e "LOGROTATE_COMPRESSION=compress" \
-e "LOGROTATE_INTERVAL=hourly" \
-e "LOGROTATE_CRONSCHEDULE=*/1 * * * * *" \
-e "LOGROTATE_SIZE=10K" \
-e "LOGROTATE_COPIES=3" \
-e "LOGROTATE_DATEFORMAT=%Y%m%d%H%M%S" \
blacklabelops/logrotate
ログローテーション動作確認
nginxはブラウザでアクセスの繰り返し
Redisはdocker restart redisの繰り返し
ls log/nginx
access.log
access.log20191212171100
access.log20191212170255.gz
error.log
error.log20191212171056
error.log20191212170254.gz
ls log/redis
redis.log
redis.log20191212171228
redis.log20191212170728.gz
logrotateのDockerコンテナ内に作成されていたファイル
copytruncateを使っています。
ファイルをrenameではなくcopyして、元のファイルの「内容」を
消すというものです。
コピー→削除の間に若干のタイムラグがあるので頻繁に書き込みが
行われている場合にはデータの欠損が発生する可能性があります。
usr/bin/logrotate.d/logrotate.conf
# deactivate mail
nomail
# move the log files to another directory?
/var/log/nginx/access.log {
su root root
rotate 3
missingok
compress
delaycompress
copytruncate
hourly
size 10K
dateext
dateformat %Y%m%d%H%M%S
}
/var/log/nginx/error.log {
su root root
rotate 3
missingok
compress
delaycompress
copytruncate
hourly
size 10K
dateext
dateformat %Y%m%d%H%M%S
}
/var/log/redis/redis.log {
su root root
rotate 3
missingok
compress
delaycompress
copytruncate
hourly
size 10K
dateext
dateformat %Y%m%d%H%M%S
}
Author And Source
この問題について(DockerのnginxとRedisでホストにマウントしたログをログローテーション), 我々は、より多くの情報をここで見つけました https://qiita.com/rururu_kenken/items/d80ed3e7022d52297507著者帰属:元の著者の情報は、元の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 .