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 уже существовали)
This commit is contained in:
Sergey Antropoff
2026-04-26 00:22:06 +03:00
parent 1080e6a792
commit eccc1c2a01
45 changed files with 5838 additions and 1670 deletions

82
addons/loki/README.md Normal file
View File

@@ -0,0 +1,82 @@
# 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
```