Учебник ELK Stack для начинающих
Когда серверов десятки, а сервисов сотни, разбираться в инцидентах по логам через ssh и grep на каждой машине становится невозможно. Этот учебник про централизованное логирование на ELK Stack (он же Elastic Stack): как собрать логи со всех источников в одно место, превратить сырые строки в структурированные поля, искать по ним за секунды и строить дашборды.
Мы разберём весь конвейер: источник → сбор Beats → обработка Logstash → хранение в Elasticsearch → визуализация в Kibana. Отдельно — grok-парсинг, структурированные JSON-логи, ILM для управления жизненным циклом данных, алертинг, логирование в Kubernetes (EFK) и честное сравнение с альтернативами вроде Loki. Курс рассчитан на тех, кто уже знает основы Elasticsearch и понимает разницу между метриками и логами — здесь фокус именно на логировании.
Курс «ELK Stack: логирование и анализ» состоит из 9 разделов и 25 уроков: Зачем централизованное логирование, Архитектура пайплайна логов, Beats: сбор данных с источников, Logstash: обработка потока событий, Обогащение и структурированное логирование, Kibana: поиск и визуализация логов, Жизненный цикл, шаблоны и алертинг, Эксплуатация: инциденты, масштаб, безопасность и Kubernetes, OpenSearch и альтернативы. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Зачем централизованное логирование
- Логи на сотне серверов: в чём проблема
Почему grep по SSH не масштабируется, что такое централизованное логирование и какие проблемы оно решает в распределённых системах.
- Логи, метрики и трейсы: три столпа observability
Чем логи отличаются от метрик и трейсов, когда что использовать и почему логи незаменимы для разбора деталей инцидента.
- Что такое ELK и Elastic Stack
Из чего состоит Elastic Stack: Elasticsearch, Logstash, Kibana и Beats. Роль каждого компонента и как аббревиатура ELK выросла в ELK+B.
- Логи на сотне серверов: в чём проблема
2 Архитектура пайплайна логов
- Пять этапов конвейера логов
Источник, сбор, обработка, хранение и визуализация: разбор каждого этапа пайплайна логов в ELK и того, что на нём происходит с данными.
- Elasticsearch как хранилище логов: индексы по времени
Почему логи в Elasticsearch хранят в индексах по времени, как работают data streams, rollover и зачем это нужно для удаления старых данных.
- Пять этапов конвейера логов
3 Beats: сбор данных с источников
- Семейство Beats: Filebeat и Metricbeat
Обзор семейства Beats, libbeat как общая основа, роли Filebeat и Metricbeat и почему сборщики делают одну задачу, но хорошо.
- Filebeat подробно: входы и модули
Конфигурация Filebeat: входы filestream и container, harvester, мультилайн для стектрейсов и готовые модули для nginx, system и других сервисов.
- Семейство Beats: Filebeat и Metricbeat
4 Logstash: обработка потока событий
- Pipeline Logstash: input, filter, output
Три секции pipeline Logstash, как событие проходит через input, цепочку filter и output, и как устроена обработка под капотом.
- Парсинг логов с grok
Фильтр grok в Logstash: как превратить строку лога в поля с помощью именованных шаблонов, готовые паттерны и отладка grok в Kibana.
- Pipeline Logstash: input, filter, output
5 Обогащение и структурированное логирование
- Обогащение событий: mutate, date, geoip, drop
Ключевые фильтры обогащения Logstash: mutate для правки полей, date для времени события, geoip для геолокации и drop для отсева шума.
- Структурированное логирование: JSON вместо grok
Почему писать логи сразу в JSON лучше, чем парсить текст grok'ом: устойчивость к смене формата, скорость и единый стандарт полей ECS.
- Обогащение событий: mutate, date, geoip, drop
6 Kibana: поиск и визуализация логов
- Discover и язык запросов KQL
Discover в Kibana для исследования логов и язык KQL: фильтрация по полям, диапазоны, логические операторы и быстрый поиск по инциденту.
- Дашборды и агрегации логов
Построение дашбордов логов в Kibana: агрегации по ошибкам, топ-источники, графики во времени и сборка панели мониторинга инцидентов.
- Data Views и index patterns
Что такое Data View (index pattern) в Kibana, зачем он нужен, как шаблон с маской объединяет индексы по времени и выбор поля времени.
- Discover и язык запросов KQL
7 Жизненный цикл, шаблоны и алертинг
- ILM: горячие, тёплые и холодные данные
Index Lifecycle Management в Elasticsearch: фазы hot, warm, cold, delete, автоматическое старение логов и экономия на хранении.
- Шаблоны индексов: автоматическая настройка
Index templates в Elasticsearch: как маппинг, настройки шардов и привязка ILM применяются автоматически к новым индексам логов по маске.
- Алертинг по логам
Оповещения по логам в Kibana: правила на всплеск ошибок, пороги и условия, каналы доставки и отличие алертов по логам от метрик.
- ILM: горячие, тёплые и холодные данные
8 Эксплуатация: инциденты, масштаб, безопасность
- Разбор инцидента по логам
Пошаговая методика расследования инцидента по логам в ELK: от алерта к trace_id, сужение времени, корреляция сервисов и поиск корневой причины.
- Производительность и масштаб
Большие объёмы логов в ELK: оценка throughput, правильный размер шардов, число реплик, горизонтальное масштабирование и контроль стоимости.
- Безопасность стека логирования
Безопасность ELK: аутентификация и роли в Elasticsearch, шифрование TLS, разграничение доступа к логам и защита от утечки чувствительных данных в логах.
- Реальный пример: сбор логов веб-приложения
Сквозной практический пример: собираем логи nginx и backend веб-приложения в ELK от Filebeat до дашборда и алерта, шаг за шагом.
- Разбор инцидента по логам
9 Kubernetes, OpenSearch и альтернативы
- Логи в Kubernetes: DaemonSet и стек EFK
Сбор логов в Kubernetes: почему поды эфемерны, паттерн DaemonSet для сбора с узлов и стек EFK с Fluentd или Fluent Bit вместо Logstash.
- OpenSearch: форк стека
Что такое OpenSearch: почему появился форк Elasticsearch и Kibana, отличия лицензий, совместимость и как выбирать между ELK и OpenSearch.
- Альтернативы: Loki, Grafana и когда что
Сравнение ELK с Loki+Grafana: подход с индексацией только меток против полного индекса, стоимость, скорость и критерии выбора стека логирования.
- Типичные ошибки логирования
Главные грабли логирования в ELK: взрыв полей (mapping explosion), отсутствие ротации и ILM, переизбыток логов и потеря структуры — и как их избежать.
- Логи в Kubernetes: DaemonSet и стек EFK