mirror of
https://github.com/Dannecron/grafana-for-dev.git
synced 2025-12-26 00:02:35 +03:00
70 lines
2.8 KiB
Markdown
70 lines
2.8 KiB
Markdown
## Grafana + loki logging stack
|
||
|
||
Стек docker-compose для упрощённого сбора и просмотра логов контейнеров с grafana loki.
|
||
|
||
### Installing
|
||
|
||
1. Скопировать [.env.example](/.env.example) в `.env`
|
||
|
||
#### With promtail
|
||
|
||
1. Добавить новый лейбл к контейнеру, чьи логи необходимо отсылать в loki
|
||
|
||
Например, достаточно просто добавить новый лейбл в `docker-compose`-файл искомого стека:
|
||
```yaml
|
||
services:
|
||
my-service:
|
||
labels:
|
||
- "loki.log=true"
|
||
```
|
||
|
||
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. Убрать профиль `promtail` из значения `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`. Но его необходимо вручную ставить на всех машинах, на которых необходимо настроить подобный сбор логов.
|