Як налаштувати обертання журналу для контейнера Docker

Всім нам потрібні журнали!

Іноді робота з Docker викликає у мене відчуття, ніби я працюю з чорною скринькою. Особливо, коли я граю із зображеннями Docker від спільноти, і це не так, як я очікував. У багатьох випадках читання журналів займає значну частину часу під час налагодження.

Ця стаття стосується налаштування обертання журналу для контейнерів Docker.

Драйвер реєстрації за замовчуванням

Ми можемо налаштувати різні драйвери реєстрації для контейнерів. За замовчуванням stdout і stderr контейнера записуються у файл JSON, що знаходиться в /var/lib/docker/containers/[container-id]/[container-id]-json.log . Якщо залишити його без нагляду, він може зайняти велику кількість дискового простору, як показано нижче.

Видалити журнал вручну

Якщо цей файл журналу JSON займає значну кількість диска, ми можемо очистити його за допомогою наступної команди.

Ми могли б налаштувати cronjob для регулярного очищення цих файлів журналів JSON. Але на довгострокову перспективу було б краще встановити ротацію журналу.

Налаштування обертання журналу

Налаштуйте драйвер журналювання за замовчуванням

Це можна зробити, додавши наступні значення в /etc/docker/daemon.json . Створіть цей файл, якщо він не існує.

JSON-файл драйвер протоколювання має ще кілька варіантів, і ми можемо навіть змінити для інших водіїв лісозаготівельних , таких як системний журнал . Для отримання додаткової інформації, будь ласка, зверніться до Docker Docs - Налаштування драйверів реєстрації.

Виконайте такі команди, щоб перезавантажити оновлений daemon.json . Нова конфігурація застосовуватиметься до всіх новостворених контейнерів після перезапуску.

Налаштуйте драйвер журналювання для контейнера

Конфігурацію також можна виконати на рівні контейнера, якщо ви не хочете застосовувати її глобально.

Команда запуску докера

Ми можемо вказати драйвер журналу та параметри в команді docker run . Наприклад:

Використання docker-compose

Драйвер реєстрації та параметри також можна налаштувати за допомогою docker-compose. Наприклад:

Перевірте, чи працює установка.

Резюме

Хоча налаштування за замовчуванням працюють нормально, ви ніколи не знаєте, коли журнали контейнерів займають весь простір на диску. Цього можна уникнути за допомогою кількох кроків, обговорених вище. Крім цього, журнали є важливим активом. Вони не тільки корисні, коли щось піде не так, але вони також містять багато прихованої цінності. Тому ніколи не відпускайте колоди.

Якщо ви шукаєте рішення SAAS для управління журналами , подумайте про використання Боцмана. Ми допоможемо вам керувати усіма журналами та контролювати ваші сервери Docker. ?

- Спочатку опубліковано в блозі Боцмана.