Гайды
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: input → filter (grok, mutate, geoip) → output. JVM, высокая гибкость, цена по CPU/RAM.
3. Kibana
UI для Discover, Dashboards, Alerting, APM (если лицензия/stack).
4. Типовой поток
- Приложение пишет JSON в stdout → контейнер/агент.
- Filebeat шлёт в Elasticsearch или в Logstash.
- 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 · тег «Логирование»