Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
88 lines
3.0 KiB
Markdown
88 lines
3.0 KiB
Markdown
# Loki
|
||
|
||
Система агрегации логов от Grafana. Хранит логи в filesystem или S3/MinIO. Grafana автоматически настраивается как datasource при `addon_prometheus_stack: true`. Для сбора логов нужен Promtail (`addon_promtail: true`).
|
||
|
||
## Быстрый старт
|
||
|
||
```yaml
|
||
# group_vars/all/addons.yml
|
||
addon_loki: true
|
||
addon_promtail: true # агент сбора логов
|
||
addon_prometheus_stack: true # Grafana datasource настраивается автоматически
|
||
```
|
||
|
||
```bash
|
||
make addon-loki
|
||
make addon-promtail
|
||
```
|
||
|
||
## Параметры
|
||
|
||
| Переменная | Умолч. | Описание |
|
||
|---|---|---|
|
||
| `loki_storage_type` | авто | filesystem \| s3 (авто при addon_minio) |
|
||
| `loki_storage_size` | `10Gi` | PVC для данных (filesystem режим) |
|
||
| `loki_retention_period` | `720h` | Срок хранения логов (30 дней) |
|
||
| `loki_replicas` | `1` | Количество реплик |
|
||
|
||
## Интеграция с MinIO
|
||
|
||
При `addon_minio: true` Loki автоматически переключается на S3-режим и использует MinIO:
|
||
|
||
```yaml
|
||
addon_loki: true
|
||
addon_minio: true # автоматически настроит S3 backend
|
||
```
|
||
|
||
Создаются бакеты: `loki-chunks`, `loki-ruler`, `loki-admin`.
|
||
|
||
## Grafana datasource
|
||
|
||
При `addon_prometheus_stack: true` Grafana автоматически получает Loki как datasource. В дашбордах Grafana → Explore → выбери Loki source.
|
||
|
||
## LogQL запросы в Grafana
|
||
|
||
```logql
|
||
# Все логи из namespace
|
||
{namespace="my-app"}
|
||
|
||
# Логи конкретного пода
|
||
{pod="my-app-xyz-abc"}
|
||
|
||
# Фильтр по тексту
|
||
{namespace="ingress-nginx"} |= "error"
|
||
|
||
# Regex фильтр
|
||
{namespace="my-app"} |~ "ERROR|WARN"
|
||
|
||
# Парсинг JSON логов
|
||
{namespace="my-app"} | json | level="error"
|
||
|
||
# Метрики из логов (rate ошибок)
|
||
rate({namespace="my-app"} |= "error" [5m])
|
||
|
||
# Top N сервисов по количеству ошибок
|
||
topk(5, sum by (app) (rate({namespace="my-app"} |= "error" [5m])))
|
||
```
|
||
|
||
## Прямое подключение из приложений
|
||
|
||
```yaml
|
||
# В конфигурации приложения:
|
||
loki_url: "http://loki.loki.svc.cluster.local:3100/loki/api/v1/push"
|
||
```
|
||
|
||
## Диагностика
|
||
|
||
```bash
|
||
kubectl logs -n loki statefulset/loki -f
|
||
kubectl get pods -n loki
|
||
# Проверить что Promtail отправляет логи:
|
||
kubectl logs -n promtail daemonset/promtail -f
|
||
```
|
||
## Официальные ресурсы
|
||
|
||
- Официальный сайт: [https://grafana.com/oss/loki/](https://grafana.com/oss/loki/)
|
||
- Официальная документация: [https://grafana.com/docs/loki/latest/](https://grafana.com/docs/loki/latest/)
|
||
- Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/grafana/loki](https://artifacthub.io/packages/helm/grafana/loki)
|