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

@@ -54,6 +54,7 @@ DOCKER_RUN := docker run --rm -it \
addon-argocd addon-longhorn addon-kubernetes-dashboard \
addon-postgresql addon-mysql addon-databasus \
addon-minio addon-velero addon-crowdsec \
addon-loki addon-promtail addon-tempo addon-pushgateway \
add-node remove-node \
add-etcd-node remove-etcd-node \
etcd-backup etcd-restore etcd-list-snapshots \
@@ -333,6 +334,23 @@ addon-crowdsec: _check_env _check_image ## Установить CrowdSec — о
@printf "$(CYAN)Устанавливаю CrowdSec...$(NC)\n"
$(DOCKER_RUN) addon crowdsec $(ARGS)
# ── Observability (logging / tracing / metrics) ───────────────────────────────
addon-loki: _check_env _check_image ## Установить Loki — агрегация логов (ARGS="-e loki_storage_type=s3" для MinIO)
@printf "$(CYAN)Устанавливаю Loki...$(NC)\n"
$(DOCKER_RUN) addon loki $(ARGS)
addon-promtail: _check_env _check_image ## Установить Promtail — агент сбора логов → Loki
@printf "$(CYAN)Устанавливаю Promtail...$(NC)\n"
$(DOCKER_RUN) addon promtail $(ARGS)
addon-tempo: _check_env _check_image ## Установить Tempo — distributed tracing (OTLP/Jaeger/Zipkin)
@printf "$(CYAN)Устанавливаю Tempo...$(NC)\n"
$(DOCKER_RUN) addon tempo $(ARGS)
addon-pushgateway: _check_env _check_image ## Установить Prometheus Pushgateway — метрики batch-задач и скриптов
@printf "$(CYAN)Устанавливаю Pushgateway...$(NC)\n"
$(DOCKER_RUN) addon pushgateway $(ARGS)
# Generic цель — любой аддон из addons/<name>/playbook.yml
addon-%: _check_env _check_image
@if [ ! -f "addons/$*/playbook.yml" ]; then \