Проблема: почему старый мониторинг больше не работает
Я веду инфраструктуру в production уже 8 лет. Ещё два года назад мы жили по схеме: «поставил Prometheus, настроил алерты на CPU и память — и спи спокойно». В 2026 году такой подход убивает. Микросервисы плодятся, Kubernetes кластеры растут, а логи генерируются терабайтами в день. Когда упал наш core-сервис, мы 40 минут искали причину в дашбордах. Аллегория с поиском иголки в стоге сена — это ещё мягко сказано.
Мы потратили три месяца на перестройку системы наблюдаемости. Внедрили OpenTelemetry, eBPF и AI-анализ логов. Результат: MTTR (среднее время восстановления) упал с 45 минут до 8. В этой статье я расскажу, что реально работает в 2026 году, а что — хайп.
Решение: три кита observability 2026
1. OpenTelemetry — стандарт де-факто
OpenTelemetry (OTel) в 2026 году — это не «ещё одна тулза», а индустриальный стандарт. Мы перевели все сервисы на OTel SDK. Почему? Одно агентское решение для метрик, трейсов и логов. Раньше мы использовали три разных инструмента: Prometheus для метрик, Jaeger для трейсов, ELK для логов. С OTel — единый collector, который отправляет данные в любой backend.
Конфиг OpenTelemetry Collector (основной фрагмент):
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
batch:
timeout: 1s
send_batch_size: 1024
exporters:
prometheus:
endpoint: "0.0.0.0:8889"
otlp:
endpoint: "tempo:4317"
tls:
insecure: true
loki:
endpoint: "http://loki:3100/loki/api/v1/push"
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [prometheus]
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
logs:
receivers: [otlp]
processors: [batch]
exporters: [loki]
Этот конфиг собирает данные из всех сервисов через OTLP (OpenTelemetry Protocol), батчит их и отправляет в Prometheus (метрики), Tempo (трейсы) и Loki (логи). Всё в одном месте. Настройка заняла у нас два дня на 15 микросервисов.
Дашборд в Grafana (ключевые панели):
- RED-метрики (Rate, Errors, Duration) для каждого сервиса — вижу, что падает latency, сразу понимаю, какой эндпоинт
- Trace waterfall — кликаю на высокий latency и вижу полный путь запроса через 6 сервисов
- Logs in context — рядом с трейсом всплывают логи этой конкретной транзакции
Результат: когда у нас упал payment-service, я за 2 минуты по трейсу увидел, что проблема в Redis — а не в самом сервисе. Раньше на это ушло бы 20 минут.
2. eBPF — мониторинг без инвазивности
eBPF (extended Berkeley Packet Filter) — технология, которая позволяет запускать песочные программы в ядре Linux. Звучит страшно, на практике — гениально. Мы используем eBPF для мониторинга сети и производительности без установки агентов в каждый контейнер.
Мы внедрили Cilium (на базе eBPF) для сетевой наблюдаемости. В production кластере Kubernetes (300 нод) мы увидели:
- TCP retransmits между сервисами — нашли 4 приложения с плохой настройкой keepalive
- DNS latency — один сервис делал 5000 DNS-запросов в секунду, хотя кешировал
- File system latency — нашли диск, который работал в 3 раза медленнее нормы
Конфиг Cilium для eBPF-метрик:
apiVersion: cilium.io/v2
kind: CiliumClusterwideNetworkPolicy
metadata:
name: observability
spec:
endpointSelector:
matchLabels: {}
egress:
- toPorts:
- ports:
- port: "80"
protocol: TCP
rules:
http:
- method: "GET"
path: "/api/.*"
Этот политик логирует все HTTP-запросы между сервисами. Данные отправляются в Hubble (интерфейс Cilium) и далее в Prometheus. Без eBPF пришлось бы ставить sidecar-прокси на каждый под — это ресурсоёмко.
Дашборд в Grafana (Hubble + Prometheus):
- Service-to-service latency — матрица задержек между всеми сервисами
- Packet drop rate — вижу, где теряются пакеты (обычно на ingress-контроллере)
- Top talkers — какие сервисы генерируют больше всего трафика
Пример: после деплоя нового релиза я увидел резкий рост TCP retransmits между cart-service и inventory-service. Оказалось, разработчики убрали connection pooling. Откатили за 5 минут.
3. AI-анализ логов — больше не нужно читать всё
Логов в нашем кластере — 2 ТБ в день. Человек не может анализировать такой объём. Мы внедрили Loki + AI-плагин для автоматического анализа. Идея: модель (на базе transformer-архитектуры) учится на исторических логах и находит аномалии.
Как работает:
- Loki собирает логи из всех сервисов через OTel
- AI-агент (мы используем Grafana ML + собственный fine-tuned BERT) каждые 5 минут сканирует новые логи
- Если находит паттерн, который отклоняется от нормы (например, в 10 раз больше ошибок 500), — создаёт alert в PagerDuty
Пример конфига Loki (log stream):
scrape_configs:
- job_name: kubernetes-pods
kubernetes_sd_configs:
- role: pod
pipeline_stages:
- cri: {}
- regex:
expression: "(?P<level>ERROR
|WARN|INFO)"
- metrics:
level_count:
type: Counter
description: "Log level count"
prefix: "loki_"
match:
- level: ERROR
- level: WARN
action: inc
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app]
target_label: app
Дашборд в Grafana (Loki + AI):
- Log volume by service — вижу, какой сервис спамит логами (обычно это debug-логи в production)
- Anomaly score — график, где AI помечает аномальные интервалы красным
- Top error patterns — кластеризация ошибок по тексту (например, «connection refused» — 120 раз за час)
Результат: недавно AI заметил, что в одном сервисе ошибка «context deadline exceeded» выросла в 5 раз за 10 минут. Мы получили alert до того, как пользователи начали жаловаться. В логах нашли, что таймаут на HTTP-клиенте был 1 секунда, а сервис-зависимость отвечала за 3 секунды. Увеличили таймаут — проблема решена.
Результаты внедрения
| Метрика | До | После |
|---|---|---|
| MTTR | 45 мин | 8 мин |
| Время на поиск причины инцидента | 20 мин | 3 мин |
| Количество false-positive алертов | 30% | 5% |
| Объём хранимых логов | 2 ТБ/день | 800 ГБ/день (фильтрация AI) |
Экономия: мы сократили время on-call инженеров на 60%. Раньше каждый инцидент — это час разбора логов. Теперь AI подсказывает, где копать.
Вывод: что внедрять DevOps-инженерам в 2026 году
Мой топ-3 трендов, которые реально работают:
1. OpenTelemetry — стандарт. Если вы ещё не на OTel, вы отстаёте. Один collector, один формат данных, любая система хранения.
2. eBPF — для сетевой наблюдаемости. Без агентов, без оверхеда, видно всё на уровне ядра.
3. AI-анализ логов — не хайп, а необходимость. Терабайты логов человек не осилит. Модель находит аномалии быстрее и точнее.
Совет: не пытайтесь внедрить всё сразу. Начните с OpenTelemetry — переведите хотя бы один сервис. Добавьте eBPF для сети. А потом включите AI-анализ. Так вы не сломаете production и получите быстрые победы.
Если хотите глубже разобраться в построении production-системы observability — на asibiont.com есть полноценный курс по этой теме. Там разбираем SLI/SLO, alerting, blackbox мониторинг и on-call практики. Всё на реальных конфигах и дашбордах — как в этой статье, но с полным pipeline от сбора данных до postmortem.
Заключение
Observability в 2026 — это не про «смотреть дашборды». Это про автоматизацию поиска причин. OpenTelemetry даёт единый формат данных, eBPF — visibility без overhead, AI — анализ без человека. Внедряйте эти инструменты сейчас, чтобы через год не догонять конкурентов. Начните с одного сервиса и одного конфига — остальное приложится.
Комментарии