раздел 40
Elasticsearch и ELK
Поиск и логи на Elasticsearch с нуля. Почему LIKE не годится для поиска, как устроен инвертированный индекс, документы, маппинг и REST API, запросы match, term и bool, релевантность BM25, анализаторы и русский стемминг, агрегации, пагинация, подсветка и подсказки на каталоге блюд «Гонца». Вторая часть про наблюдаемость: Filebeat, Logstash с grok, структурированные логи, Kibana и KQL, ILM, шаблоны индексов, алертинг и разбор настоящего инцидента по логам, Kubernetes, OpenSearch и Loki.
Не получилось изменить список. Попробуй ещё раз.
Без входа у каждого урока видно начало. Войди, чтобы читать целиком, отмечать пройденное и решать задачи. войти
«Elasticsearch и ELK» покупается один раз и остаётся навсегда: 500 ₽. Оплата пока не подключена, доступ открывается промокодом. ввести промокод
Уроки раздела
- Проблема поиска: почему LIKE в SQL не работает
- Что такое Elasticsearch и стек ELK
- Инвертированный индекс: сердце поиска
- Документы, индексы и маппинг
- REST API и формат запросов
- Индексация документов: PUT, POST и bulk
- match против term: анализируемые и точные поля
- bool-запросы: must, should, must_not, filter
- Как читать ответ _search
- Релевантность: scoring, TF-IDF и BM25
- Анализаторы и токенизация
- Стемминг, стоп-слова и языки
- Агрегации: аналитика поверх поиска
- Сортировка и пагинация: from/size и search_after
- Подсветка, fuzzy-поиск и автодополнение
- Шарды, реплики и кластер
- Kibana и применения Elasticsearch
- ES против обычной БД и ClickHouse
- Типичные ошибки: text/keyword, mapping explosion, тяжёлые агрегации
- Логи на сотне серверов: в чём проблема
- Логи, метрики и трейсы: три столпа observability
- Что такое ELK и Elastic Stack
- Пять этапов конвейера логов
- Elasticsearch как хранилище логов: индексы по времени
- Семейство Beats: Filebeat и Metricbeat
- Filebeat подробно: входы и модули
- Pipeline Logstash: input, filter, output
- Парсинг логов с grok
- Обогащение событий: mutate, date, geoip, drop
- Структурированное логирование: JSON вместо grok
- Discover и язык запросов KQL
- Дашборды и агрегации логов
- Data Views и index patterns
- ILM: горячие, тёплые и холодные данные
- Шаблоны индексов: автоматическая настройка
- Алертинг по логам
- Разбор инцидента по логам
- Производительность и масштаб
- Безопасность стека логирования
- Реальный пример: сбор логов веб-приложения
- Логи в Kubernetes: DaemonSet и стек EFK
- OpenSearch: форк стека
- Альтернативы: Loki, Grafana и когда что
- Типичные ошибки логирования
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Зачем нужен поисковый движок
- Инвертированный индекс: сердце поискаСловарь терминов и списки документов, как ищется слово и фраза, почему поиск быстрый, а обновление дороже.урок 3 · Инвертированный индекс: сердце поискаопираются: урок 4
- Проблема поиска: почему LIKE в SQL не работаетLIKE с процентами читает всю таблицу, не понимает падежей, опечаток и релевантности; что ждут от поиска пользователи.урок 1 · Проблема поиска: почему LIKE в SQL не работаетопираются: урок 2
- Что такое Elasticsearch и стек ELKПоисковый и аналитический движок на Lucene, документы JSON по REST, где его применяют и что такое Elastic Stack.урок 2 · Что такое Elasticsearch и стек ELKопираются: урок 3
Документы, индексы и REST API
- Документы, индексы и маппингДокумент JSON, индекс как коллекция, типы полей text, keyword, числа и даты, динамический и явный маппинг.урок 4 · Документы, индексы и маппингопираются: урок 5
- Индексация документов: PUT, POST и bulkPUT с id и POST с автоматическим id, версии, обновление и удаление, _bulk, refresh и почти реальное время.урок 6 · Индексация документов: PUT, POST и bulkопираются: урок 7
- REST API и формат запросовМетоды и пути, консоль Kibana Dev Tools, curl, тело запроса JSON, коды ответов и формат ошибок.урок 5 · REST API и формат запросовопираются: урок 6
Основы поиска
- Как читать ответ _searchtook, hits.total, max_score, _score и _source, track_total_hits, shards в ответе.урок 9 · Как читать ответ _searchопираются: урок 10
- bool-запросы: must, should, must_not, filterКомбинация условий, контекст запроса и фильтра, minimum_should_match, кэш фильтров.урок 8 · bool-запросы: must, should, must_not, filterопираются: урок 9
- match против term: анализируемые и точные поляmatch анализирует запрос, term ищет термин как есть, почему term по text не находит, поле keyword.урок 7 · match против term: анализируемые и точные поляопираются: урок 8
Релевантность и анализ текста
- Анализаторы и токенизацияФильтры символов, токенизатор, фильтры токенов, _analyze, анализатор при индексации и при поиске.урок 11 · Анализаторы и токенизацияопираются: урок 12
- Релевантность: scoring, TF-IDF и BM25Частота термина, редкость, длина поля, формула BM25 и explain.урок 10 · Релевантность: scoring, TF-IDF и BM25опираются: урок 11
- Стемминг, стоп-слова и языкиАнализатор russian и english, стеммер, стоп-слова, синонимы, почему пицца и пиццы находятся вместе.урок 12 · Стемминг, стоп-слова и языкиопираются: урок 13
Продвинутый поиск и аналитика
- Агрегации: аналитика поверх поискаterms, range, histogram, метрики avg и cardinality, вложенные агрегации и фасеты каталога.урок 13 · Агрегации: аналитика поверх поискаопираются: урок 14
- Подсветка, fuzzy-поиск и автодополнениеhighlight, нечёткий поиск по расстоянию Левенштейна, completion-подсказки при наборе.урок 15 · Подсветка, fuzzy-поиск и автодополнениеопираются: урок 16
- Сортировка и пагинация: from/size и search_afterСортировка по полю и _score, глубокая пагинация и её цена, search_after и курсоры.урок 14 · Сортировка и пагинация: from/size и search_afterопираются: урок 15
Масштабирование и эксплуатация
- Типичные ошибки: text/keyword, mapping explosion, тяжёлые агрегацииНеверный тип поля, динамический маппинг на мусоре, глубокая пагинация, тяжёлые агрегации, ES как основная база.урок 19 · Типичные ошибки: text/keyword, mapping explosion, тяжёлые агрегацииопираются: урок 20
- Шарды, реплики и кластерУзлы, первичные шарды и реплики, маршрутизация документа, статусы green, yellow и red.урок 16 · Шарды, реплики и кластеропираются: урок 17
- ES против обычной БД и ClickHouseЧто хранить в PostgreSQL, что в Elasticsearch, что в ClickHouse, синхронизация данных.урок 18 · ES против обычной БД и ClickHouseопираются: урок 19
- Kibana и применения ElasticsearchDev Tools, Discover и дашборды, поиск по сайту, логи, метрики, безопасность.урок 17 · Kibana и применения Elasticsearchопираются: урок 18
Зачем централизованное логирование
- Логи на сотне серверов: в чём проблемаgrep по ssh не масштабируется, логи теряются с контейнерами, нужен один поиск по всем сервисам.урок 20 · Логи на сотне серверов: в чём проблемаопираются: урок 21
- Логи, метрики и трейсы: три столпа observabilityЧто отвечает на вопрос «что случилось», «сколько» и «где медленно», как они связаны trace.id.урок 21 · Логи, метрики и трейсы: три столпа observabilityопираются: урок 22
- Что такое ELK и Elastic StackElasticsearch, Logstash, Kibana и Beats, кто за что отвечает, лицензии и OpenSearch.урок 22 · Что такое ELK и Elastic Stackопираются: урок 23
Архитектура пайплайна логов
- Пять этапов конвейера логовСбор, доставка, обработка, хранение и анализ, буфер между ними и что ломается на каждом этапе.урок 23 · Пять этапов конвейера логовопираются: урок 24
- Elasticsearch как хранилище логов: индексы по времениИндекс на день, data streams и backing-индексы, ECS-поля, почему логи только дописываются.урок 24 · Elasticsearch как хранилище логов: индексы по времениопираются: урок 25
Beats: сбор данных с источников
- Семейство Beats: Filebeat и MetricbeatЛёгкие агенты на серверах, Filebeat для файлов, Metricbeat для метрик, Elastic Agent.урок 25 · Семейство Beats: Filebeat и Metricbeatопираются: урок 26
- Filebeat подробно: входы и модулиfilestream, пути, многострочные события, ndjson, процессоры, модуль nginx, выход в Logstash.урок 26 · Filebeat подробно: входы и модулиопираются: урок 27
Logstash: обработка потока событий
- Парсинг логов с grokШаблоны grok, COMBINEDAPACHELOG, свои шаблоны, _grokparsefailure, dissect как быстрая альтернатива.урок 28 · Парсинг логов с grokопираются: урок 29
- Pipeline Logstash: input, filter, outputКонфиг из трёх секций, событие и поля, условия, rubydebug, несколько выходов.урок 27 · Pipeline Logstash: input, filter, outputопираются: урок 28
Обогащение и структурированное логирование
- Обогащение событий: mutate, date, geoip, dropВремя события из лога, переименование и типы полей, город по IP, отбрасывание шума.урок 29 · Обогащение событий: mutate, date, geoip, dropопираются: урок 30
- Структурированное логирование: JSON вместо grokJSON-логи из приложения, фильтр json и ndjson в Filebeat, поля ECS, trace.id в каждой строке.урок 30 · Структурированное логирование: JSON вместо grokопираются: урок 31
Kibana: поиск и визуализация логов
- Дашборды и агрегации логовОшибки по минутам, топ эндпоинтов, перцентили задержки, Lens и date_histogram под капотом.урок 32 · Дашборды и агрегации логовопираются: урок 33
- Data Views и index patternsКакие индексы видит Kibana, шаблон logs-*, поле времени, runtime-поля.урок 33 · Data Views и index patternsопираются: урок 34
- Discover и язык запросов KQLПоиск по времени, поля и значения, KQL: поле: значение, and, or, not, диапазоны, звёздочки.урок 31 · Discover и язык запросов KQLопираются: урок 32
Жизненный цикл, шаблоны и алертинг
- Алертинг по логамПравила по порогу и по запросу, частота проверки, коннекторы, шум и усталость от алертов.урок 36 · Алертинг по логамопираются: урок 37
- Шаблоны индексов: автоматическая настройкаindex template и component template, маппинг и настройки новых индексов, приоритеты.урок 35 · Шаблоны индексов: автоматическая настройкаопираются: урок 36
- ILM: горячие, тёплые и холодные данныеФазы hot, warm, cold и delete, rollover по размеру и возрасту, политика для логов «Гонца».урок 34 · ILM: горячие, тёплые и холодные данныеопираются: урок 35
Эксплуатация: инциденты, масштаб, безопасность
- Безопасность стека логированияTLS, пользователи и роли, API-ключи, персональные данные в логах и их маскирование.урок 39 · Безопасность стека логированияопираются: урок 40
- Производительность и масштабРазмер шардов, число шардов на узел, bulk-индексация, refresh_interval, горячие и тёплые узлы.урок 38 · Производительность и масштабопираются: урок 39
- Разбор инцидента по логамТаймлайн, от симптома к причине через trace.id, разбор платежей «Гонца» 30 июня.урок 37 · Разбор инцидента по логамопираются: урок 38
- Реальный пример: сбор логов веб-приложенияКонвейер от nginx и сервисов «Гонца» до дашборда: Filebeat, Logstash, шаблон, ILM и Kibana.урок 40 · Реальный пример: сбор логов веб-приложенияопираются: урок 41
Kubernetes, OpenSearch и альтернативы
- Альтернативы: Loki, Grafana и когда чтоLoki индексирует метки, а не текст, ClickHouse для логов, облачные сервисы, как выбирать.урок 43 · Альтернативы: Loki, Grafana и когда чтоопираются: урок 44
- Логи в Kubernetes: DaemonSet и стек EFKstdout контейнеров, Filebeat или Fluent Bit как DaemonSet, метаданные подов, стек EFK.урок 41 · Логи в Kubernetes: DaemonSet и стек EFKопираются: урок 42
- Типичные ошибки логированияЛоги без структуры и уровня, пароли в логах, отладочный шум, индекс без ILM, алерты на всё.урок 44 · Типичные ошибки логирования
- OpenSearch: форк стекаПочему появился форк, совместимость API, OpenSearch Dashboards, где его встречают.урок 42 · OpenSearch: форк стекаопираются: урок 43