В продолжение прошлой статьи рассмотрим пример настройки ротации логов контейнеров на примере 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-файла, после чего обнуляет оригинальный, т.е. сам файл не удаляется.
Дополнительные материалы: