Найти тему
ИТ разнообразно

Журналы Docker Compose: Руководство и лучшие практики. Часть 2.

Оглавление

Краткое изложение ключевых концепций журналов Docker Compose

В таблице ниже обобщены ключевые концепции журналов Docker Compose, на которых будет основана эта статья.

Концепция: docker-compose logs

Описание: docker-compose logs — это команда Docker, используемая для просмотра журналов контейнера для определенных служб системы.

Концепция: драйверы ведения журнала

Описание: Docker поддерживает несколько драйверов ведения журналов, которые определяют, как собираются и хранятся журналы вашего контейнера.

Концепция: стратегии ведения журналов

Описание: в Docker существуют два режима доставки журналов: блокирующий и неблокирующий.

Концепция: отладка с помощью журналов

Описание: команда docker logs позволяет вам проверять определённые контейнеры и просматривать журналы, которые могут дать представление о проблеме, с которой сталкивается ваше приложение.

Концепция: хранение журналов

Описание: поддержание работоспособности системы требует чёткого понимания расположения журналов и соблюдения руководящих принципов политики жизненного цикла.

Драйверы журналирования Docker

Драйверы журналирования — это плагины, которые обрабатывают журналы контейнеров в Docker. Они определяют, как журналы собираются, обрабатываются и хранятся для контейнера. Каждый драйвер предоставляет различные особенности и предназначен для работы с различными службами и платформами ведения журналов.

Драйвер журналирования по умолчанию в Docker Compose — это драйвер json-file. Этот драйвер хранит журналы в виде файлов JSON на хост-компьютере, на котором работает контейнер. Однако Docker поддерживает несколько других драйверов ведения журналов, которые можно настроить в вашей конфигурации Docker Compose.

Чтобы настроить Docker Compose на использование отдельных драйверов ведения журнала, укажите нужный драйвер в файле docker-compose.yml, используя параметр конфигурации ведения журнала для каждой службы. Вот пример:

version: '3'
services:
web:
image: my-web-app
logging:
driver: gelf
options:
gelf-address: "udp://logstash-host:12201"
tag: "my-web-app"
db:
image: my-db
logging:
driver: fluentd
options:
fluentd-address: "fluentd-host:24224"
tag: "my-db"

В этом примере веб-служба настроена на отправку журналов на сервер Logstash в стеке ELK с помощью драйвера регистрации gelf. В качестве опции gelf-address установлен адрес сервера Logstash, который настроен на прослушивание входных данных GELF на порту 12201 (необходимо настроить Logstash соответствующим образом).

Служба базы данных настроена на отправку журналов на сервер Fluentd с помощью драйвера регистрации fluentd. Для параметра fluentd-address задан адрес сервера Fluentd, который прослушивает порт 24224 (порт Fluentd по умолчанию).

Перед использованием этой конфигурации убедитесь, что у вас настроен и правильно сконфигурирован стек ELK и серверы Fluentd для приёма журналов из ваших контейнеров Docker.

Продолжение следует...

Перевод с некоторыми авторскими правками.

Автор оригинала: Squadcast.