Ко всем статьям

Observability в Kubernetes — Prometheus, Loki и Grafana без боли

Почему в K8s ломаются старые подходы к мониторингу, минимальный стек Prometheus, стратегии логов (Fluent Bit / Loki / EFK) и чек-лист старта.

Поделиться в Telegram
Содержание

Observability в Kubernetes — Prometheus, Loki и Grafana без боли

Поды живут минуты, ноды «танцуют», логи умирают вместе с контейнером. Без нормальной observability вы слепы.


Почему в K8s сложнее

  • Эфемерность — логи в файле внутри контейнера = потеря при рестарте.
  • Динамика — HPA, деплои, CrashLoop.
  • Масштаб — десятки нод, сотни подов, тысячи метрик.

Метрики: Prometheus-стек

Минимум:

  • Prometheus Server
  • Node Exporter (DaemonSet)
  • kube-state-metrics
  • Alertmanager
  • Grafana

Практика:

  1. Мониторьте всё критичное: ноды, поды, ключевые приложения.
  2. Используйте ServiceMonitor / PodMonitor (declarative scrape).
  3. Алерты на устойчивое состояние («не Ready > 3 мин»), не на каждый spike.
  4. Долгое хранение — Thanos / VictoriaMetrics.
  5. Импортируйте готовые Grafana-дашборды, не рисуйте с нуля.

Быстрый старт: kube-prometheus-stack через Helm.


Логи: только stdout/stderr

Три стратегии сбора:

  1. DaemonSet-агент (Fluent Bit) — дефолт для большинства.
  2. Sidecar — если нужна предобработка или приложение пишет в файл.
  3. SDK из приложения — редко, усложняет код.

Стеки:

Стек

Плюсы

PLG (Promtail/Fluent Bit + Loki + Grafana)

Проще, дешевле, один UI с метриками

EFK (Fluent Bit/Fluentd + ES + Kibana)

Мощный полнотекстовый поиск

Обязательно:

  • JSON-логи;
  • обогащение pod / namespace / labels;
  • TTL хранения.

Магия интеграции

Цель: из алерта в причину за 2 клика.

  1. Grafana = SPOG (Prometheus + Loki).
  2. Общие labels (pod, app) для drill-down.
  3. Loki Ruler — алерты на panic: / FATAL.

Чек-лист на вечер

  1. Поставить kube-prometheus-stack.
  2. Fluent Bit DaemonSet → Loki (или ES).
  3. 5–10 критичных алертов, не 500 шумных.
  4. Импорт дашбордов кластера.

Лучше простая рабочая система, чем недоделанный монстр.