Ответ
ELK — это популярный стек технологий с открытым исходным кодом для централизованного сбора, хранения, поиска и визуализации логов и данных в реальном времени. Он состоит из трех основных компонентов:
- Elasticsearch — распределенный поисковый и аналитический движок на базе Apache Lucene. Он хранит и индексирует данные, обеспечивая быстрый полнотекстовый поиск и агрегации.
- Logstash — серверный конвейер обработки данных. Он принимает, преобразует (парсит, фильтрует, обогащает) и отправляет данные в Elasticsearch.
- Kibana — веб-интерфейс для визуализации и анализа данных из Elasticsearch. Позволяет строить дашборды, графики и выполнять поиск.
Пример конфигурации Logstash для обработки логов приложения:
input {
file {
path => "/var/log/myapp/app.log"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:log_level} %{GREEDYDATA:message}" }
}
date {
match => [ "timestamp", "ISO8601" ]
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "app-logs-%{+YYYY.MM.dd}"
}
}
Основное применение в DevOps: мониторинг инфраструктуры и приложений, отладка инцидентов, анализ безопасности (SIEM) и бизнес-аналитика. Современный стек часто расширяется до Elastic Stack с добавлением Beats (легких агентов для сбора данных).