Grafana + loki logging stack
Стек docker-compose для упрощённого сбора и просмотра логов контейнеров с grafana loki.
Installing
- Скопировать .env.example в
.env
With grafana agent
- Добавить в
COMPOSE_PROFILESзначениеagentв файле .env - Запустить docker-compose-стэк:
docker compose up -d
With docker plugin
-
Установить лог-драйвер 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+lokidocker compose up -d
Difference between driver and promtail
Использование драйвера - рекомендованный способ доставки логов в loki. К тому же, он имеет очень много предопределённых лейблов для фильтрации контейнеров в grafana. Но его необходимо вручную ставить на всех машинах, на которых необходимо настроить подобный сбор логов.