Весь stdout контейнеров докер бережливо сохраняет в файлики. По-дефолту эти логи никак не ротируются и копятся до тех пор, пока…
В продолжение прошлой статьи рассмотрим пример настройки ротации логов контейнеров на примере CentOs 7. В моём случае stdout и stderr контейнеров никакой ценности не имеют, а все значимые события пишутся либо в примонтированные директории, либо в Apache Kafka. В ротации логов внутри самих контейнеров не вижу смысла.
Для начала создадим файл:
nano /etc/logrotate.d/docker-containers
И заполним примерно таким содержимым:
/var/lib/docker/containers/*/*.log { rotate 7 daily size 50M compress missingok notifempty copytruncate dateext }
Затем принудительно проротируем логи.
logrotate -f /etc/logrotate.conf
Пожалуй, самая важная директива в данном конфиге — это copytruncate. Обязательна для логов докер-контейнеров. Создаёт копию оригинального log-файла, после чего обнуляет оригинальный, т.е. сам файл не удаляется.
Дополнительные материалы:
1 Comment
morf100s · 2020-06-29 at 17:02
Мне кажется, что директивы:
daily
size 50M
несовместимы между собой