如何为日志文件启用日志轮换,例如的access.log。
这是内置的吗?
文档只说“这允许日志被外部程序旋转和处理,例如logrotate”
答案 0 :(得分:4)
如果您在 Docker 容器中运行 Traefik ,则可以执行以下操作:
检查是否已安装logrotate
logrotate --version
在/etc/logrotate.d /
中创建文件vi /etc/logrotate.d/traefik
输入以下脚本,不要忘记填写容器名称。
/var/log/traefik/*.log {
size 10M
rotate 5
missingok
notifempty
postrotate
docker kill --signal="USR1" <container-name>
endscript
}
运行!
logrotate /etc/logrotate.conf --debug
logrotate /etc/logrotate.conf
答案 1 :(得分:2)
记录轮播
Traefik将在收到
)旋转和处理USR1
信号后关闭并重新打开其日志文件(假设已配置)。这允许日志由外部程序(例如logrotate
。
https://docs.traefik.io/v1.6/configuration/logs/#log-rotation
答案 2 :(得分:0)
似乎没有内置的logrotation,所以我在主机上启用了access.log的挂载。
我在运行于容器中的traefik 1.7.4的logrotate-config,其中卷装入“/ opt / traefik / logs”:
/opt/traefik/logs/*.log {
daily
rotate 30
missingok
notifempty
compress
dateext
dateformat .%Y-%m-%d
create 0644 root root
postrotate
docker kill --signal="USR1" $(docker ps | grep traefik | awk '{print $1}')
endscript
}