如何为traefik启用logrotation?

时间:2018-03-23 13:08:25

标签: traefik

如何为日志文件启用日志轮换,例如的access.log。

这是内置的吗?

文档只说“这允许日志被外部程序旋转和处理,例如logrotate”

3 个答案:

答案 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
 }