Краткое изложение ключевых концепций журналов 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.
Продолжение следует...
Перевод с некоторыми авторскими правками.