ELK Stack (теперь Elastic Stack) — комбинация трёх инструментов от Elastic N.V.: Elasticsearch (поисковый движок для хранения логов), Logstash (конвейер сбора данных) и Kibana (веб-интерфейс для визуализации). Применяется для централизованного анализа логов серверов, приложений и сетевого оборудования.
Как работает
Logstash принимает данные из источников (syslog, файлы, Kafka, JDBC), трансформирует через фильтры (grok для парсинга regex, mutate, geoip для обогащения IP геоданными) и отправляет в Elasticsearch. Filebeat — легковесная альтернатива Logstash для пересылки файлов логов.
Elasticsearch хранит документы в индексах с временной метаткой. Запрос на поиск всех ошибок за последний час: GET /logs-*/_search с JSON-запросом. Индексы автоматически ротируются по времени (ILM — Index Lifecycle Management): горячие (7 дней), тёплые (30 дней), холодные (365 дней).
Kibana: дашборды с графиками, таблицами, картами. Discover — поиск по логам. Alerts — автоматические оповещения при превышении порогов.
История
Elasticsearch создан Шаем Банноном (Shay Banon) в 2010 году на базе Apache Lucene (2001). Logstash — 2011 год. Kibana — 2013 год. Elastic N.V. IPO в 2018 году (NYSE: ESTC). В 2021 году Elastic сменил лицензию с Apache 2.0 на SSPL, что вызвало форк OpenSearch от AWS.
Компоненты
- Elasticsearch: хранение, полнотекстовый поиск, REST API.
- Logstash: конвейер данных, плагины input/filter/output.
- Kibana: визуализация, SIEM, APM.
- Filebeat/Metricbeat: лёгкие агенты для пересылки данных.
- OpenSearch: форк от AWS под Apache 2.0 лицензией.
Связь с хостингом
ELK Stack развёртывают на отдельных серверах или в Kubernetes для анализа логов нескольких VPS. Минимальные требования Elasticsearch — 4 ГБ ОЗУ. Elastic Cloud (managed SaaS) — альтернатива без администрирования. Сбор метрик через Metricbeat дополняет логи количественными данными.
Ключевые отличия от похожих терминов
Grafana Loki — легковесное хранилище логов, не индексирует содержимое, дешевле. Netdata — метрики в реальном времени, не логи. Splunk — платный аналог ELK с enterprise-функциями. Graylog — альтернатива с фокусом на structured logging.
Компоненты ELK Stack
Elasticsearch — распределённый полнотекстовый поиск и хранение (Java, на базе Apache Lucene). Logstash — сбор, парсинг и трансформация логов. Kibana — веб-интерфейс для визуализации и запросов. Beats (Filebeat, Metricbeat, Packetbeat) — лёгкие агенты сбора данных.
Архитектура развёртывания
Filebeat на серверах → Logstash (парсинг grok, обогащение) → Elasticsearch (индексирование) → Kibana (дашборды). Для небольших установок: Filebeat → Elasticsearch без Logstash. Elasticsearch кластер: минимум 3 узла для HA (quorum для master election).
ELK в хостинге
Централизованный сбор логов Nginx, PHP-FPM, MySQL. Полнотекстовый поиск по логам ошибок. Security use case: обнаружение аномалий. Требования: Elasticsearch 8 — минимум 4 ГБ RAM для одного узла. OpenSearch (AWS, open source форк) — более доступная альтернатива.
Elasticsearch Index Management
ILM (Index Lifecycle Management): автоматическое управление индексами. Hot → Warm → Cold → Delete по времени или размеру. Data Streams для логов с временными метками. Curator — внешний инструмент для управления индексами (устаревает в пользу ILM). Snapshot Repository для архивных данных.