Files
K3S/addons/loki/README.md
Sergey Antropoff eccc1c2a01 docs: полная документация проекта — docs/ и README.md для каждого аддона
- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/
- docs/: 13 файлов — getting-started, architecture, configuration, addons,
  storage, security, cicd, observability, networking, operations,
  make-reference, molecule-testing, troubleshooting
- addons/*/README.md: 31 новый файл — описание, параметры, примеры кода
  для каждого из 34 аддонов (vault и external-secrets уже существовали)
2026-04-26 00:22:06 +03:00

2.6 KiB
Raw Blame History

Loki

Система агрегации логов от Grafana. Хранит логи в filesystem или S3/MinIO. Grafana автоматически настраивается как datasource при addon_prometheus_stack: true. Для сбора логов нужен Promtail (addon_promtail: true).

Быстрый старт

# group_vars/all/addons.yml
addon_loki: true
addon_promtail: true        # агент сбора логов
addon_prometheus_stack: true  # Grafana datasource настраивается автоматически
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:

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

# Все логи из 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])))

Прямое подключение из приложений

# В конфигурации приложения:
loki_url: "http://loki.loki.svc.cluster.local:3100/loki/api/v1/push"

Диагностика

kubectl logs -n loki statefulset/loki -f
kubectl get pods -n loki
# Проверить что Promtail отправляет логи:
kubectl logs -n promtail daemonset/promtail -f