Есть ли у вас опыт работы с ELK-стеком (Elastic Stack)?

«Есть ли у вас опыт работы с ELK-стеком (Elastic Stack)?» — вопрос из категории Мониторинг и логирование, который задают на 28% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, у меня есть опыт развертывания, настройки и поддержки Elastic Stack (ранее ELK) для централизованного сбора, обработки и визуализации логов в DevOps-практиках.

Мой опыт включает:

  • Развертывание и настройка кластера Elasticsearch: настройка шардов и реплик, управление индексами с помощью шаблонов (index templates), настройка политик жизненного цикла (ILM) для ротации и удаления старых данных.
  • Конфигурация Logstash как pipeline для обработки: написание конфигураций с использованием фильтров Grok для парсинга структурированных и неструктурированных логов (Nginx, прикладные логи, syslog).
  • Визуализация в Kibana: создание дашбордов для мониторинга метрик приложений и инфраструктуры, построение запросов с помощью KQL (Kibana Query Language).
  • Использование легковесных сборщиков: настройка Filebeat для отправки логов напрямую в Elasticsearch или через Logstash, что снижает нагрузку на узлы обработки.

Пример конфигурации Logstash для парсинга логов Nginx:

input {
  beats {
    port => 5044
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => "@timestamp"
  }
  geoip {
    source => "clientip"
  }
  useragent {
    source => "agent"
    target => "user_agent"
  }
}

output {
  elasticsearch {
    hosts => ["es-cluster:9200"]
    index => "nginx-logs-%{+YYYY.MM.dd}"
  }
}

Также я работал с мониторингом здоровья кластера через API Elasticsearch и интеграцией стека в CI/CD для логирования сборок и деплоев.