Стек docker-compose для упрощённого сбора и просмотра логов контейнеров с grafana loki.
- Скопировать .env.example в
.env
- Добавить в
COMPOSE_PROFILES
значениеagent
в файле .env - Запустить docker-compose-стэк:
docker compose up -d
-
Установить лог-драйвер grafana loki для docker
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
По факту, данный драйвер работает аналогично стандартному драйверу
json-file
, который позволяет просматривать логи стандартной командойdocker logs
, но при этом дополнительно пытается отправить логи в инстансloki
. -
Активировать лог-драйвер для контейнера
К примеру, можно определить данный конфиг в искомом
docker-compose
-стеке:x-loki-log-config: &loki-log-config logging: driver: loki options: loki-url: "http://loki.docker.localhost/loki/api/v1/push" loki-retries: 5 loki-batch-size: 400 max-size: "50m" max-file: "10"
а затем просто подключить к конкретному контейнеру:
services: my-service: <<: *loki-log-config
-
Убрать профиль
agent
из значенияCOMPOSE_PROFILES
в файле .env -
Запустить стек
grafana
+loki
docker compose up -d
Использование драйвера - рекомендованный способ доставки логов в loki. К тому же, он имеет очень много предопределённых лейблов для фильтрации контейнеров в grafana
. Но его необходимо вручную ставить на всех машинах, на которых необходимо настроить подобный сбор логов.