feat: добавить аддоны Loki, Promtail, Tempo, Pushgateway

Loki (grafana/loki 6.7.3):
- Монолитный режим (singleBinary) — оптимально для малых кластеров
- Хранение: filesystem по умолчанию, автоматически S3 если addon_minio=true
  (создаёт бакеты chunks/ruler/admin в MinIO через Job)
- Retention 30 дней, отключён self-monitoring (без Grafana Agent Operator)
- ServiceMonitor + Grafana datasource ConfigMap при addon_prometheus_stack=true
- Datasource включает derivedFields → Tempo если addon_tempo=true

Promtail (grafana/promtail 6.16.4):
- DaemonSet на всех нодах (tolerations: Exists)
- Отправляет логи в Loki по http://loki.loki.svc.cluster.local:3100
- ServiceMonitor при addon_prometheus_stack=true

Tempo (grafana/tempo 1.10.3):
- Монолитный режим с PVC для трейсов
- Receivers: OTLP gRPC/HTTP, Jaeger, опционально Zipkin
- Grafana datasource ConfigMap при addon_prometheus_stack=true
  (tracesToLogsV2 → Loki если addon_loki=true, serviceMap → Prometheus)
- ServiceMonitor при addon_prometheus_stack=true

Pushgateway (prometheus-community/prometheus-pushgateway 2.14.0):
- Устанавливается в monitoring namespace (рядом с Prometheus)
- ServiceMonitor при addon_prometheus_stack=true
- Опциональные persistence и ingress
This commit is contained in:
Sergey Antropoff
2026-04-25 11:37:23 +03:00
parent dbc21150b2
commit b8e15fae45
17 changed files with 717 additions and 0 deletions

View File

@@ -21,6 +21,10 @@ addon_databasus: false # Databasus (резервное копиро
addon_minio: false # MinIO (S3-совместимое объектное хранилище)
addon_velero: false # Velero (резервное копирование кластера и PVC)
addon_crowdsec: false # CrowdSec (обнаружение вторжений)
addon_loki: false # Loki (агрегация логов)
addon_promtail: false # Promtail (агент сбора логов → Loki)
addon_tempo: false # Tempo (distributed tracing)
addon_pushgateway: false # Prometheus Pushgateway (метрики batch-задач)
# ─── NFS Server ───────────────────────────────────────────────────────────────
nfs_exports:
@@ -177,6 +181,31 @@ minio_api_ingress_host: "s3.example.com"
# crowdsec_collections: "crowdsecurity/linux crowdsecurity/nginx crowdsecurity/kubernetes"
# crowdsec_nginx_bouncer_enabled: false
# ─── Loki ─────────────────────────────────────────────────────────────────────
# loki_storage_type: "filesystem" # filesystem (авто: s3 если addon_minio: true)
# loki_storage_size: "10Gi"
# loki_retention_period: "720h" # 30 дней
# loki_ingress_enabled: false
# loki_ingress_host: "loki.example.com"
# ─── Promtail ─────────────────────────────────────────────────────────────────
# DaemonSet на всех нодах. Требует addon_loki: true (или внешний Loki).
# promtail_loki_url: "http://loki.loki.svc.cluster.local:3100/loki/api/v1/push"
# ─── Tempo ────────────────────────────────────────────────────────────────────
# Distributed tracing backend.
# tempo_storage_size: "10Gi"
# tempo_retention_period: "720h"
# tempo_receivers_otlp_enabled: true # порты 4317 (gRPC) и 4318 (HTTP)
# tempo_receivers_jaeger_enabled: true # порты 14268 (HTTP) и 14250 (gRPC)
# tempo_receivers_zipkin_enabled: false # порт 9411
# ─── Pushgateway ──────────────────────────────────────────────────────────────
# Для push-метрик из batch-задач, CI/CD, скриптов.
# pushgateway_ingress_enabled: false
# pushgateway_ingress_host: "pushgateway.example.com"
# pushgateway_persistence_enabled: false # сохранять метрики между рестартами
# ─── etcd backup ──────────────────────────────────────────────────────────────
etcd_backup_dir: "{{ k3s_data_dir }}/server/db/snapshots"
etcd_backup_retention: 5 # сколько снимков хранить