Централизованный сбор

Тема дорожной карты · Observability

Централизованное логирование — это практика агрегации потоков логов из всех сервисов и компонентов инфраструктуры в единый, доступный для поиска репозиторий. Без централизованного логирования инженеры вынуждены подключаться по SSH к отдельным хостам для чтения логов, что делает наблюдаемость в распределённых системах практически невозможной. Системы централизованного логирования, такие как ELK Stack (Elasticsearch, Logstash, Kibana), Grafana Loki и Datadog, принимают логи от агентов — Filebeat, Fluentd или Promtail, — после чего индексируют и хранят их для запроса. Централизованное логирование обеспечивает мощную кросс-сервисную корреляцию: например, поиск всех событий лога с определённым request_id среди десятков микросервисов выполняется за миллисекунды. Политики хранения логов, стратегии индексирования и частоты сэмплирования должны быть тщательно настроены (например, в logstash.conf или loki-config.yaml) для соблюдения баланса между охватом наблюдаемости и ограничениями по хранению и затратам.

Как это работает

Централизованный сбор захватывает дискретные события с контекстом. Современное логирование = структурированный JSON ({"level":"error","trace_id":"...","msg":"DB connection failed","db":"users","attempt":3}). Шлите через vector / fluent-bit / promtail в log-store (Loki — label-indexed, Elasticsearch — full-text, ClickHouse — аналитика). Sample на источнике для high-volume потоков. Всегда включайте trace_id + service + version + level + timestamp.

Когда применять

Structured JSON логирование — с первого дня; console.log и printf — tech debt с момента > 1 сервиса. Loki — для cost-effective storage (порядки дешевле Elasticsearch на том же объёме), когда full-text search не критичен. Сокращайте объём логов — high-cardinality логи дороги везде. trace_id в каждый лог; ключ join к traces.

Типичные ошибки

Ловушки Централизованный сбор: логирование на DEBUG в production (взрыв объёма + цена); логирование кредитных карт/токенов (PII-утечка в storage); нет ротации локальных логов (/var/log забивается + крэшит хост); нет структурированных полей = только grep-расследование; log retention навсегда (стоимость storage растёт).

Связанные понятия

Полезные ресурсы