Kibana и применения Elasticsearch
Смотрим на Kibana как окно в данные и разбираем три главных сценария, ради которых ставят Elasticsearch.
Kibana — веб-интерфейс к Elasticsearch для исследования данных, построения дашбордов и выполнения запросов без написания кода.
Что умеет Kibana
Elasticsearch отвечает по API, но смотреть на сырой JSON неудобно. Kibana даёт визуальную надстройку:
- Discover — листать и фильтровать документы, искать по тексту в интерактиве;
- Dashboards — собирать графики, гистограммы, карты из агрегаций;
- Dev Tools — консоль, где можно слать те же запросы к ES, что мы писали через curl, с подсказками;
- визуализации — построенные поверх агрегаций (бакеты → оси, метрики → значения).
Для разработчика особенно ценны Dev Tools: это удобнее, чем curl, и помогает быстро отлаживать запросы.
Применение 1: анализ логов и наблюдаемость
Самый массовый сценарий. Логи со всех серверов стекаются в ES (через Beats/Logstash), а в Kibana видно: всплески ошибок, медленные запросы, аномалии — в реальном времени. Когда что-то падает в проде, инженеры идут именно в Kibana искать первопричину. Полнотекстовый поиск по сообщениям ошибок + агрегации по времени и сервисам — идеальный инструмент для этого.
Применение 2: поиск по сайту и приложению
Поиск товаров в магазине, статей в базе знаний, объявлений на доске — классика. Здесь работают всё, что мы изучили: match с анализом, релевантность BM25, fuzzy для опечаток, highlight для сниппетов, автодополнение, фасеты (агрегации terms для фильтров «бренд», «цена», «категория»).
Применение 3: аналитика в реальном времени
Метрики, события, поведение пользователей: ES быстро агрегирует миллионы записей и отдаёт срезы. Дашборды бизнес-метрик, мониторинг продукта, security-аналитика (SIEM) — всё это строится на агрегациях поверх потока документов.
Как работает под капотом
Kibana — это отдельное веб-приложение, которое само не хранит данные: оно ходит в Elasticsearch по тому же REST API. Каждая визуализация под капотом — это поисковый запрос с агрегациями. Когда вы двигаете фильтр времени на дашборде, Kibana формирует новый запрос с range по полю даты и date_histogram и заново спрашивает ES. Поэтому «реальное время» здесь — это просто частые быстрые запросы к свежепроиндексированным данным.
Частые ошибки
- Считать Kibana хранилищем. Kibana ничего не хранит — все данные в Elasticsearch; снеси ES, и дашборды опустеют.
- Открывать Kibana наружу без защиты. Через неё видны все данные и доступны запросы — её нужно закрывать аутентификацией.
- Один гигантский индекс логов. Логи обычно бьют по времени (индекс на день/неделю) или ведут через data streams — так проще удалять старое и держать шарды разумного размера.
Итоги
- Kibana — визуальный интерфейс к ES: Discover, Dashboards, Dev Tools; данных сама не хранит.
- Три главных применения ES: анализ логов, поиск по сайту/приложению, аналитика в реальном времени.
- Любая визуализация Kibana — это запрос с агрегациями к Elasticsearch.