Гайды

ELK: Elasticsearch, Logstash и Kibana

Индексы и ILM, пайплайны Logstash, Kibana, типовой поток с Filebeat и безопасность стека.

~11 мин чтения

ELK: Elasticsearch, Logstash и Kibana

ELK (Elasticsearch, Logstash, Kibana) — исторический стек: сбор → обработка → хранение → поиск/визуализация логов. Сейчас часто Elastic Agent / Filebeat → Elasticsearch → Kibana, а Logstash — когда нужны тяжёлые фильтры до ES. Детали агентов — Logstash и Filebeat; интерфейс Kibana — Визуализация логов в Kibana.


1. Elasticsearch

Распределённое поисковое хранилище документов (JSON). Индексы шардированы; ILM (Index Lifecycle Management) — hot/warm/cold/delete.


2. Logstash

Pipeline: inputfilter (grok, mutate, geoip) → output. JVM, высокая гибкость, цена по CPU/RAM.


3. Kibana

UI для Discover, Dashboards, Alerting, APM (если лицензия/stack).


4. Типовой поток

  1. Приложение пишет JSON в stdout → контейнер/агент.
  2. Filebeat шлёт в Elasticsearch или в Logstash.
  3. Ingest pipeline в ES может заменить часть Logstash.

5. Ёмкость и стоимость

Логи дорогие в объёме: семплирование, фильтрация шума на edge, короткий retention hot + архив в S3/Object Storage.


6. Безопасность

TLS между компонентами, роли пользователей в Elastic Security, не открывать 9200 в мир.


7. Кластер и состояние индексов

Green / yellow / red: yellow при репликах на одной ноде или при missing primary — планируйте минимум 2 узла для production с репликами. Shard sizing: слишком мелкие шарды — overhead; слишком крупные — долгий rebalance. Целевой размер шарда десятки GB — ориентир, зависящий от запросов.


8. Elastic Agent vs Beats

Fleet-managed Elastic Agent упрощает политики и обновления; классический Filebeat/Metricbeat остаётся валиден для минималистичных сценариев. Не смешивайте два агента на одном хосте без необходимости.


9. Поиск и запросы

ES|QL (Elastic SQL-подобный язык) и KQL в Kibana снижают порог для аналитиков; для программных отчётов остаётся Query DSL. При тяжёлых агрегациях включайте track_total_hits: false и scroll/search_after вместо глубокой пагинации from/size.


10. Типичные инциденты

Circuit breaker по heap и rejections в логах — признак нехватки ресурсов или «широких» запросов без фильтра по времени. Watermarks диска — планируйте ILM и удаление старых индексов до красного кластера. Кросс-кластерный поиск — см. Kibana (раздел про remote clusters / CCS).


11. Чек-лист

  • Шаблон индекса / data stream и mapping (избегать dynamic mapping hell).
  • Алерты по error rate, не только по «диску полон».
  • Версии стека одинаковой мажорной линии.
  • Snapshot lifecycle (SLM) в отдельный репозиторий для восстановления.
  • Квоты и circuit breaker JVM/heap под нагрузку поиска.

Дальше: OpenTelemetry · тег «Логирование»