我正在尝试使用主机上的traefik docker对访问日志进行logrotate。 logrotate运行时,会创建一个新的日志文件,很好,但始终为零,就像未重新安装docker卷一样。在traefik docker上,访问日志仍继续增长。 logrotate访问日志的窍门是什么? thx
我的/etc/logrotate.d/traefik
/var/www/traefik_access.log {
size 10K
rotate 30
missingok
notifempty
compress
dateext
dateformat .%Y-%m-%d
create 0644 www-data www-data
postrotate
docker kill --signal="USR1" traefik
endscript
}
我的docker-compose.yml:
version: '3'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: always
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/traefik.toml
- ./acme.json:/acme.json
- ./traefik_access.log:/access.log
networks:
- web
我的文件
-rw-r--r-- 1 www-data www-data 1818 août 7 11:30 traefik_access.log.2019-08-07.gz
-rw-r--r-- 1 www-data www-data 0 août 7 11:30 traefik_access.log
您有什么解决方案吗?
我面对'traefik:chevrotin'的同样问题。开始时,日志已正确链接。但是发布“ logrotate”后,只有主机日志文件被旋转,并且与容器日志文件的链接断开。然后,容器日志文件不断增加,但是主机日志保持为空。
docker-compose.yml
traefik:
image: traefik:chevrotin
command:
- "--log.filePath=/logs/traefik.log"
volumes:
- "/var/log/traefik.log:/logs/traefik.log"
Logrotate conf:
/var/log/traefik.log
{
size 1k
compress
create 0644 root root
missingok
notifempty
rotate 5
postrotate
docker kill --signal="USR1" traefik
endscript
}
Traefik接收到USR1信号,但日志链接断开的问题仍然存在。
{"level":"info","msg":"Closing and re-opening log files for rotation: user defined signal 1"