Kibana как настроить дашборд

Создание Dashboard в Kibana для мониторинга логов

Привет, меня зовут Евгений, я тимлид B2B-направления в Ситимобил. Одной из задач нашей команды является поддержка интеграций по заказу такси от партнеров, и для обеспечения стабильного сервиса мы всегда должны понимать, что происходит в наших микросервисах. И для этого надо постоянно следить за логами.

В Ситимобил для работы с логами мы используем ELK-стек (ElasticSearch, Logstash, Kibana), и объём приходящих туда данных огромен. Найти в этой массе запросов проблемы, которые могут появиться после деплоя нового кода, довольно сложно. И для их наглядного выявления в Kibana есть раздел Dashboard.

На Хабре есть довольно много статей с примерами, как настроить ELK-стек для получения и хранения данных, но о создании Dashboard актуальных материалов нет. Поэтому я хочу показать, как в Kibana создавать визуальное представление данных на основе приходящих логов.

Настройка

Чтобы было нагляднее, я создал Docker-образ с ELK и Filebeat. И поместил в контейнер небольшую программу на Go, которая для нашего примера будет генерировать тестовые логи. Детально описывать конфигурирование ELK не буду, на Хабре достаточно написано об этом.

Клонируем репозиторий с конфигурацией docker-compose и настройками ELK, и запускаем его командой docker-compose up . Намеренно не добавляю ключ -d , чтобы видеть процесс работы ELK-стека.

Если всё настроено правильно, то в логах мы увидим запись (возможно, не сразу, процесс запуска контейнера со всем стеком может занимать несколько минут):

По адресу localhost:5061 должна открыться Kibana.

Единственное, что нам нужно настроить, это создать Index Pattern для Kibana с информацией о том, какие данные надо отображать. Для этого выполним curl-запрос или сделаем ряд действий в графическом интерфейсе.

$ curl -XPOST -D- ‘http://localhost:5601/api/saved_objects/index-pattern’ \
-H ‘Content-Type: application/json’ \
-H ‘kbn-xsrf: true’ \
-d ‘<"attributes":<"title":"logstash-*","timeFieldName":"@timestamp">>’

Для настройки выбираем в левом меню раздел Discover, и попадаем на страницу создания Index pattern.

Нажав на кнопку «Create index pattern», попадаем на страницу создания индекса. В поле «Index pattern name» вводим «logstash-*». Если всё настроено правильно, ниже Kibana покажет попавшие под правило индексы.

На следующей странице выбираем ключевое поле с временной отметкой, в нашем случае это @timestamp .

В результате появится страница настроек индекса, но сейчас дополнительных действий от нас не требуется.

Теперь мы можем снова перейти в раздел Discover, где увидим записи логов.

Dashboard

В левом меню нажимаем на раздел создания Dashboard и попадаем на соответствующую страницу.

Нажимаем на «Create new dashboard» и попадаем на страницу добавления объектов в Dashboard.

Некоторые доступные объекты имеют метки B и E — это означает, что формат экспериментальный или в стадии бета-тестирования. Со временем формат может поменяться или совсем исчезнуть из Kibana.

Читайте также:  Как правильно настроить подключение hdmi

Vertical Bar

Для примера «Vertical Bar» создадим гистограмму соотношения успешных и неуспешных статусов ответа нашего сервиса. По окончании настроек получим следующий график:

К успешным мы будем относить все запросы со статусом ответа = 400.

Для создания графика «Vertical Bar» нам необходимо выбрать источник данных. Выбираем Index Pattern, который создали ранее.

По умолчанию, после выбора источника данных появится один сплошной график. Настроим его.

В блоке «Buckets» нажмем кнопку «Add», выберем «X-asis» и настроим ось Х. Отложим по ней временные отметки поступления записей в лог. В поле «Aggregation» выбираем «Date Histogram», а в «Field» выбираем «@timestamp», указывающий на временное поле. «Minimum interval» оставим в состоянии «Auto», и он будет автоматически подстраиваться под наше отображение.

Нажав на кнопку «Update», мы увидим график с количеством запросов каждые 30 секунд.

Теперь настроим столбцы по оси Y. Сейчас у нас отображается общее число запросов в выбранный интервал времени.

Изменим значение «Aggregation» на «Sum Bucket», который позволит нам совместить данные по успешным и неуспешным запросам. В блоке Bucket -> Aggregation выбираем агрегацию по «Filters» и задаём фильтрацию по «statusCode >= 400». А в поле «Custom label» указываем наше название показателя для более понятного отображения в легенде на графике и в общем списке.

Нажав кнопку «Update» под блоком настроек, получим график с проблемными запросами.

Если нажать на круг около легенды, то появится окно, в котором можно поменять цвет столбцов.

Теперь добавим на график данные об успешных запросах. В разделе «Metrics» нажимаем кнопку «Add» и выбираем «Y-axis».

Источник

Визуализация данных с помощью Kibana

Kibana 4 – это платформа для визуализации и анализа данных, основанная на Elasticsearch.

Данное руководство покажет, как использовать Kibana: работать с интерфейсом, визуализировать логи, собранные с помощью стека ELK, создавать дашборды, искать данные etc.

Требования

  • Установленный и настроенный стек ELK (подробные инструкции можно найти в статье Установка стека ELK в Ubuntu 14.04).
  • Стек должен собирать данные логов доступа Nginx и системного лога (подробнее об этом здесь).

Краткий обзор интерфейса Kibana

Интерфейс Kibana содержит четыре основных раздела:

  • Discover (просмотр доступных данных)
  • Visualize (визуализация собранных данных)
  • Dashboard (управление дашбордами)
  • Settings (настройки).

Рассмотрим каждый раздел подробнее.

Раздел Discover

При первом подключении к Kibana 4 вы попадёте на страницу Discover, которая по умолчанию отображает список последних собранных логов. Здесь вы можете отфильтровать сообщения логов (в том числе по времени) и найти нужные данные.

Страница Discover содержит следующие элементы:

  • Строка поиска: находится непосредственно под главным меню навигации, позволяет выполнить поиск по собранным сообщениям логов.
  • Фильтр по времени (Time Filter): находится в правом верхнем углу. Используйте эту функцию для фильтрации логов на основе различных относительных и абсолютных временных диапазонов.
  • Список полей: находится слева, сразу под строкой поиска. Здесь можно выбирать поля для визуализации.
  • Гистограмма: график, который находится в центре страницы под строкой поиска. По умолчанию в нём отображается количество всех логов в зависимости от времени (ось х).
  • Просмотр логов: список под гистограммой, который содержит сообщения логов и данные, отфильтрованные по полям. В случае если поле не установлено, сообщение отображается полностью.
Читайте также:  Настроит мой модем билайна

Изучите эту страницу и её функции самостоятельно:

  1. Выберите поле в списке слева.
  2. Введите запрос в строку поиска (например, попробуйте вывести логи доступа nginx).

Если вы не получили никакого результата, убедитесь, что вы ввели правильный поисковый запрос.

Сообщения логов зависят от настройки Logstash и Logstash Forwarder. Если вы собираете сообщения логов, но не фильтруете данные по полям, сообщения будет сложнее запрашивать, так как вы не сможете запросить определенные поля.

Синтаксис поиска

Поисковая строка позволяет быстро найти необходимый набор сообщений. Синтаксис поиска достаточно прост и поддерживает логические операторы, шаблоны и фильтры полей. Например, чтобы найти логи доступа Nginx, которые были созданы пользователями Google Chrome, нужно ввести:

type: «nginx-access»
agent: «chrome»

Также поиск можно выполнять по хостам, диапазонам IP-адресов и другим данным, которые содержатся в логах.

Вы можете сохранять поисковые запросы, которые часто используете. Для этого нажмите Save Search (кнопка справа от поисковой строки) и выберите Save.

Чтобы открыть сохранённый поиск, нажмите Load Saved Search. Позже эти данные можно использовать для визуализации.

Попробуйте сохранить запрос type: “nginx-access” и создать его визуализацию.

Раздел Visualize

На странице интерфейса Visualize вы можете создавать, редактировать и просматривать пользовательские визуализации. Kibana предлагает несколько видов визуализации: вертикальные и секторные диаграммы, отображение данных на карте, таблицы данных. Визуализацией можно поделиться с другими пользователями, которые имеют доступ к Kibana.

Если вы используете визуализацию Kibana впервые, перезапустите список полей.

Примечание: Об этом и других настройках можно прочитать в разделе о странице Settings данного руководства.

Создание вертикальной диаграммы

Чтобы создать визуализацию, откройте страницу Visualize.

Выберите тип визуализации. Например, чтобы создать вертикальную диаграмму, нужно выбрать Vertical bar chart.

Теперь нужно выбрать источник поиска. Вы можете создать новый или использовать сохраненный поиск. Если вы создали поиск type nginx access, как предлагалось ранее, используйте его.

Сначала появится график для предварительного просмотра. Если поисковой запрос обнаружил логи, вертикальная диаграмма будет состоять только из оси Y, которая отображает количество логов.

Вы можете расширить диаграмму с помощью меню слева, buckets. К примеру, вы можете добавить ось X, затем открыть выпадающее меню Aggregation, выбрать Date Histogram и нажать Apply. После этого в диаграмме появятся новые вертикали: количество логов распределится по оси Х, которая отображает время.

Попробуйте выполнить следующее:

  • Кликните Add Sub Aggregation и выберите тип Split Bars.
  • Откройте выпадающее меню Sub Aggregation и выберите Significant Term.
  • Откройте выпадающее меню Field и выберите clientip.raw.
  • В поле Size введите 10.
  • Нажмите Apply, чтобы сгенерировать новый график.

Если отображаемые логи сгенерированы несколькими IP-адресами (т.е., ваш сайт посетил не один пользователь), вы увидите, что каждая вертикаль в графике разделена на несколько разноцветных сегментов. Каждый такой сегмент отображает количество логов, сгенерированных тем или иным IP-адресом. Максимальное количество сегментов – 10 (указано в Size).

Читайте также:  Ваз 2114 не работает приборная панель датчик температуры

Чтобы сохранить визуализацию, нажмите Save Visualization в верхнем меню, выберите название и нажмите Save.

Создание других визуализаций

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

К примеру, вы можете создать круговую диаграмму из пяти самых распространённых типов логов. Для этого:

  • Откройте Visualize и выберите Pie chart.
  • В строку поиска введите запрос “” (чтобы вывести все логи).
  • В меню buckets выберите *Split Slices**.
  • В выпадающем меню Aggregation выберите Significant Terms.
  • В выпадающем меню Field выберите type.raw.
  • В поле Size введите 5.
  • Чтобы отобразить диаграмму, нажмите Apply.

Примечание: Количество сегментов в круговой диаграмме может быть меньше, если запрашиваемых данных недостаточно для построения всех сегментов (например, если типов логов у вас всего 2).

Раздел Dashboard

Страница Dashboard позволяет создавать, изменять и просматривать пользовательские дашборды. Дашборды объединяют несколько визуализаций в одну страницу и могут фильтровать их. Дашборды помогают получить полный обзор логов и сравнить несколько визуализаций.

Создание дашборда

Чтобы создать дашборд, перейдите в раздел Dashboard.

Для создания дашборда необходимо иметь хотя бы две диаграммы. Если ранее вы не создавали дашбордов и на данный момент у вас недостаточно диаграмм, на экране появится почти пустая страница и надпись:

Ready to get started?

Если у вас достаточно данных для создания дашборда, нажмите New Dashboard (справа от строки поиска).

Чтобы создать дашборд, нажмите Add Visualization и добавьте созданные ранее диаграммы.

Когда диаграммы появятся на экране, вы сможете поменять их местами или изменить их размеры с помощью мыши.

Чтобы сохранить дашборд, кликните Save Dashboard, выберите имя для дашборда и нажмите Save.

Работа с дашбордами

Вы можете фильтровать данные в дашборде, изменив фильтр времени или кликая на элементы визуализации.

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

Чтобы отфильтровать данные, нужно нажать кнопку Apply Now. Все фильтры работают так же, как на странице Discover, но в дашборде они применяются только к определённому набору данных.

Раздел Settings

Страница Settings позволяет изменять настройки Kibana.

Перезагрузка списка полей

Добавляя в Logstash новое поле (например, фильтр для нового типа логов), вы должны перезапустить список полей, чтобы в нем появились новые поля.

Также список полей необходимо перезагрузить в случае, если вы не можете найти отфильтрованные поля в Kibana (они хранятся в кэше временно).

Чтобы обновить список полей:

  • Откройте Settings и кликните logstash- (под Index Patterns).
  • Нажмите жёлтую кнопку Reload Field List и кликните OK.

Редактирование сохранённых объектов

Раздел Objects позволяет редактировать, просматривать и удалять сохранённые дашборды, поиски и диаграммы.

Чтобы открыть эту страницу, выберите Settings → Objects. Здесь вы можете управлять созданными ранее объектами.

Источник

Оцените статью