Files
grafana-for-dev/readme.md
2024-02-05 14:46:29 +07:00

61 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Grafana + loki logging stack
Стек docker-compose для упрощённого сбора и просмотра логов контейнеров с grafana loki.
### Installing
1. Скопировать [.env.example](/.env.example) в `.env`
#### With grafana agent
1. Добавить в `COMPOSE_PROFILES` значение `agent` в файле [.env](/.env)
2. Запустить docker-compose-стэк:
```shell
docker compose up -d
```
#### With docker plugin
1. Установить [лог-драйвер grafana loki для docker](https://grafana.com/docs/loki/latest/clients/docker-driver/)
```shell
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
```
По факту, данный драйвер работает аналогично стандартному драйверу `json-file`, который позволяет просматривать логи стандартной командой `docker logs`, но при этом дополнительно пытается отправить логи в инстанс `loki`.
2. Активировать лог-драйвер для контейнера
К примеру, можно определить данный конфиг в искомом `docker-compose`-стеке:
```yaml
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"
```
а затем просто подключить к конкретному контейнеру:
```yaml
services:
my-service:
<<: *loki-log-config
```
3. Убрать профиль `agent` из значения `COMPOSE_PROFILES` в файле [.env](/.env)
4. Запустить стек `grafana` + `loki`
```shell
docker compose up -d
```
### Difference between driver and promtail
Использование драйвера - [рекомендованный способ доставки логов в loki](https://grafana.com/docs/loki/latest/clients/promtail/configuration/#example-docker-config). К тому же, он имеет очень много предопределённых лейблов для фильтрации контейнеров в `grafana`. Но его необходимо вручную ставить на всех машинах, на которых необходимо настроить подобный сбор логов.