ELK Stack
Тема дорожной карты · Observability
ELK Stack — Elasticsearch, Logstash и Kibana — одна из наиболее широко развёрнутых в отрасли платформ централизованного логирования и наблюдаемости. Logstash (или более лёгкий агент Filebeat) собирает, разбирает и доставляет логи из приложений и инфраструктуры в Elasticsearch, где они индексируются и хранятся для полнотекстового поиска и агрегации. Kibana предоставляет веб-интерфейс для исследования логов, построения дашбордов и настройки алертов, что делает ELK Stack полноценным решением для аналитики логов. Конвейер обычно настраивается через logstash.conf (или filebeat.yml) для разбора структурированных логов, обогащения событий метаданными и маршрутизации в нужный индекс Elasticsearch. ELK Stack был расширен до «Elastic Stack» с добавлением Beats (лёгких агентов-шипперов) и Elastic APM для распределённой трассировки, что расширило охват наблюдаемости за пределы логов.
Как это работает
ELK Stack захватывает дискретные события с контекстом. Современное логирование = структурированный 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.
Типичные ошибки
Ловушки ELK Stack: логирование на DEBUG в production (взрыв объёма + цена); логирование кредитных карт/токенов (PII-утечка в storage); нет ротации локальных логов (/var/log забивается + крэшит хост); нет структурированных полей = только grep-расследование; log retention навсегда (стоимость storage растёт).