Что такое стек ELK?

«Что такое стек ELK?» — вопрос из категории DevOps, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ELK — это популярный стек технологий с открытым исходным кодом для централизованного сбора, хранения, поиска и визуализации логов и данных в реальном времени. Он состоит из трех основных компонентов:

  1. Elasticsearch — распределенный поисковый и аналитический движок на базе Apache Lucene. Он хранит и индексирует данные, обеспечивая быстрый полнотекстовый поиск и агрегации.
  2. Logstash — серверный конвейер обработки данных. Он принимает, преобразует (парсит, фильтрует, обогащает) и отправляет данные в Elasticsearch.
  3. 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 (легких агентов для сбора данных).