How do I enable log rotation for log files e.g. access.log.
Is this built in ?
Docs only say "This allows the logs to be rotated and processed by an external program, such as logrotate"
How do I enable log rotation for log files e.g. access.log.
Is this built in ?
Docs only say "This allows the logs to be rotated and processed by an external program, such as logrotate"
If you are running Traefik in a Docker container then you can do something like this:
Check that logrotate is installed on the Docker host:
logrotate --version
Create file in /etc/logrotate.d/
:
vi /etc/logrotate.d/traefik
Put the following script, do not forget to fill with the container name.
/var/log/traefik/*.log {
size 10M
rotate 5
missingok
notifempty
postrotate
docker kill --signal="USR1" <container-name>
endscript
}
Run!
logrotate /etc/logrotate.conf --debug
logrotate /etc/logrotate.conf
It seems like there's no logrotation built-in so i enabled logrotation on the Host that traefik_access.log
is mounted to.
In order for this to work when traefik is running in a docker container, you must volume mount the directory containing the log file (/opt/traefik/logs
), not the log file itself (/traefik_access.log
).
volumes:
- /opt/traefik/logs:/logs
My logrotate-config for traefik 1.7.4 running in a container with volume mount to "/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
}
Log Rotation
Traefik will close and reopen its log files, assuming they're configured, on receipt of a
USR1
signal. This allows the logs to be rotated and processed by an external program, such aslogrotate
.
https://docs.traefik.io/v1.6/configuration/logs/#log-rotation