Ответ
Стек ELK (Elasticsearch, Logstash, Kibana), теперь часто расширяемый до Elastic Stack (с добавлением Beats), используется для централизованного сбора, обработки, хранения, поиска и визуализации логов и метрик в распределённых системах.
Роли компонентов:
- Beats (Filebeat, Metricbeat): Лековесные агенты для сбора данных с серверов.
- Logstash: Серверный процессор для трансформации, обогащения и маршрутизации данных.
- Elasticsearch: Поисковый движок и хранилище для индексирования и анализа данных.
- Kibana: Веб-интерфейс для визуализации (дашборды, графики) и интерактивного поиска.
Типичные задачи:
- Агрегация логов: Сбор логов со всех сервисов и серверов в одно место.
- Мониторинг и алертинг: Поиск ошибок, отслеживание метрик производительности (response time, error rate), настройка уведомлений.
- Расследование инцидентов: Быстрый полнотекстовый поиск по структурированным и неструктурированным логам.
- Анализ бизнес-метрик: Построение дашбордов для отображения ключевых показателей (KPI).
Пример конвейера:
- Filebeat читает лог-файл приложения.
- Logstash парсит строку лога в JSON, добавляет поля (
service_name,host_ip).# Конфигурация Logstash фильтра filter { grok { match => { "message" => "%{TIMESTAMP:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}" } } } - Данные сохраняются в Elasticsearch.
- В Kibana создаётся дашборд с графиком количества ошибок по уровням (ERROR, WARN) в реальном времени.
Альтернативы: Grafana Loki (для логов), Prometheus (для метрик), Splunk, коммерческие SaaS-решения (Datadog, New Relic).