Kibana: окно в Elasticsearch

Сегодня мы поговорим о последнем компоненте ELK стэка от Elastic — Kibana. Хотя Logstash отлично справляется обработкой логов и прочих потоков данных, а Elasticsearch поможет их сохранить, проиндексировать и запустить парочку поисковых запросов, ни у одного их них нету пользовательского интерфейса. А анализировать данные и искать закономерности из командной строки — удовольствие для любителей. Очень странных любителей…

И тут на помощь приходит Kibana.

Что такое Kibana

Kibana — это вэб-окно в данные Elasticsearch. Она поможет составить запросы, построить графики и дашборды, и даже покажет немного статистики. Вместе с плагином X-Pack в неё можно добавить инструменты мониторинга, уведомлений и пару других полезностей.

Как и с любым другим исключительно UI инструментом, рассказывать про каждую кнопку и картинку было бы странно, поэтому мы просто пройдёмся по основным фичам. Но сначала Kibana нужно как-то установить.

Установка

Как и все остальные компоненты ELK стэка, Kibana требует Java. Как только требование удовлетворено, процесс установки сводится к банальному скачай-и-распакуй. После этого можно запускать bin/kibana и гештальт, можно сказать, завершён.

Но! Без Elasticsearch, живущего неподалёку, Kibana удивительно бесполезна. Если Elasticsearch всё-таки есть рядом, его URL нужно положить в config/kibana.yml (опция  elasticsearch.url), и после этого Kibana будет полностью готова к трудовым подвигам.

Правда, есть чуть более простой способ получить работоспособную Кибану. Если

  1. запустить её и Elasticsearch в Docker контейнерах,
  2. назвать контейнер с Elasticsearch — elasticsearch, и
  3. положить их в одну сеть,

то они найдут друг друга и будут спокойно взаимодействовать. Все три условия может выполнить всего один docker-compose файл:

Запускаем его через docker-compose up, даём elasticsearch секунд 10-15 доделать свои дела, и можно радоваться Кибане по адресу 127.0.0.1:5601.

Добавляем тестовые данные

Ещё одна мини-проблема связанная с установкой — тестовые данные. Что ни говори, Kibana — инструмент для визуализации и работы с данными. Нет данных — нет визуализации. К большому счастью для нас в официальном гайде есть несколько тестовых датасетов и инструкция, как их устанавливать. Инструкция очень простая: скачать, распаковать, импортировать.

Индекс-паттерн

В хранении логов есть такая традиция — группировать их по датам и хранить в отдельных файлах. Logstash эту традицию поддерживает и потому будет писать логи в разные Elasticsearch индексы, например mylogs-2017-01-01, mylogs-2017-01-02, mylogs-2017-01-03, и т.д. Но для визуализации удобнее всё-таки работать с одним индексом, а не с коллекцией.

Для этого в Кибане есть такая штука как индекс-паттерн. Это всего лишь строка-шаблон, охватывающая несколько индексов. Например, шаблон для примера выше —  mylogs-*.

Kibana - индекс-паттерн

Как только мы его сохраним, mylogs-* можно будет использовать как самый обычный индекс.

Просмотр данных

Самый первый пункт основного меню Кибаны — «Discover» — одновременно и самое полезное место для ознакомления со своими данными. С ходу там будет и строка поиска, которая понимает Lucene язык запросов, и гистограмма распределения данных индекса по времени, и даже простейшая статистика по некоторым полям.

Kibana - просмотр данных

Синтаксис Lucene удивительно простой. * — это найти всё. 13 — это найти 13 по всем полям. response:404 AND request:*.css — найти все запросы к CSS файлам, которые ничего не нашли (404). Всё просто.

Ещё одно удобство состоит в том, что список полей слева очень даже интерактивный и старательно полезный. Он будет пытаться показать статистику по полям, если это имеет смысл, и предлагать нарисовать хоть какой-нибудь подходящий под тип данных график.

Kibana - статистика

Например, кнопка «visualize» для числовых данных покажет обычную гистограмму. Для географических же координат она постарается немного больше и сразу откроет карту.

Kibana - карта

Графики и прочие визуализации

В Kibana полно и других способов эти данные отобразить. От счётчиков и графиков, до кусков Markdown и облаков тегов. Большинство их них скрываются на странице «Visualize»:

Kibana - визуализации

Kibana - таблица

Ничего необычного в этих компонентах нет, но я бы отметил пару моментов. Во-первых, практически всё в компонентах можно кликнуть, и тогда выбранный элемент пойдёт прямиком поисковый запрос. Для какого-нибудь одинокого графика это вряд ли будет полезным, но для дашбордов вполне может пригодиться.

Во-вторых, тот же настроенный график можно сохранить, и потом переиспользовать в тех же дашбордах.

Дашборды

Страница дашбордов позволяет собрать сохранённые графики и прочие компоненты с данными в одном месте.

Kibana - дашборд

Возможность кликнуть практически на любом куске данных тут сохраняется, но теперь это превращается в полезный инструмент. Например, можно кликнуть по чему-нибудь в облаке тегов, например по US, и дашборд целиком будет показывать данные только по US.

К тому же строка поиска тут тоже есть, и выборку можно уточнить ещё больше:

Поиск по дашборду

Timelion

Timelion — очень интересная штука. Это инструмент для анализа временных рядов с собственым языком для выборки и манипуляции этих самых рядов. На практике при помощи этого языка можно сделать запрос в несколько индексов, пропустить результат через функцию, выбрать цвет и заголовки, и положить на один график. Есть короткий и вполне понятный блог пост, объясняющий зачем Timelion вообще существует.

Timelion

Итого

Kibana — это приятный инструмент для практической работы с данными, которые мы успели собрать в Elasticsearch. Она позволяет делать запросы, рисовать графики и даже пытается предугадать следующий шаг и показать статистику по полям, или ссылку на подходящий график или карту.

В отличие от Grafana, Кибана может работать только с Elasticsearch. Но так как она очень хорошо интегрируется с Elastic стэком целиком, то это, в принципе, не недостаток.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *