Files
K3S/addons/loki/README.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

88 lines
3.0 KiB
Markdown
Raw Permalink 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.

# 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)