Ответ
ELK Stack (ныне часто называемый Elastic Stack) — это популярный набор open-source инструментов для централизованного сбора, хранения, поиска, анализа и визуализации логов и других данных в режиме реального времени.
Основные компоненты:
- Elasticsearch: Распределенная поисковая и аналитическая NoSQL-база данных на основе инвертированного индекса. Отвечает за хранение, индексацию и быстрый поиск данных.
- Logstash: Серверный конвейер обработки данных. Принимает данные из множества источников, трансформирует их (парсинг, фильтрация, обогащение) и отправляет в «сто́ры» (например, в Elasticsearch).
- Kibana: Веб-интерфейс для визуализации и анализа данных из Elasticsearch. Позволяет создавать дашборды, графики, таблицы и выполнять поисковые запросы.
Типичный пайплайн обработки логов:
- Приложение пишет логи в файл или stdout.
- Filebeat (легковесный сборщик данных) отправляет логи в Logstash.
- Logstash парсит строки логов в структурированные JSON-документы с помощью фильтров (например,
grok). - Обработанные данные отправляются в Elasticsearch для индексации.
- Пользователь анализирует данные через Kibana.
Пример фильтра Grok в Logstash:
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} [%{DATA:thread}] %{DATA:class} - %{GREEDYDATA:log_message}" }
}
date {
match => [ "timestamp", "ISO8601" ]
target => "@timestamp"
}
}
Сценарии использования: Мониторинг приложений и инфраструктуры, расследование инцидентов, бизнес-аналитика, поиск по данным.
Современная экосистема: Часто включает Beats (легкие агенты для сбора данных) и APM (Application Performance Monitoring). Альтернативы: Grafana Loki, Splunk, Datadog.