Dashboardi loomine Kibanas logide jälgimiseks

Dashboardi loomine Kibanas logide jälgimiseks

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

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

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

Seadistamine

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

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

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

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

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

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

Dashboardi loomine Kibanas logide jälgimiseks
Dashboardi loomine Kibanas logide jälgimiseks
Единственное, что нам нужно настроить, это создать 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"}}'

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

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

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

Dashboardi loomine Kibanas logide jälgimiseks
В результате появится страница настроек индекса, но сейчас дополнительных действий от нас не требуется.

Dashboardi loomine Kibanas logide jälgimiseks

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

Dashboardi loomine Kibanas logide jälgimiseks

Armatuurlauale

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

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

Dashboardi loomine Kibanas logide jälgimiseks
Нажимаем на кнопку «Create new», и система предложит выбрать вид отображения данных. В Kibana их большое количество, но мы рассмотрим создание графического представления «Vertical Bar» и табличного «Data Table». Остальные виды представления настраиваются похожим образом. 
Dashboardi loomine Kibanas logide jälgimiseks
Некоторые доступные объекты имеют метки B и E — это означает, что формат экспериментальный или в стадии бета-тестирования. Со временем формат может поменяться или совсем исчезнуть из Kibana.

Vertikaalne baar

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

Dashboardi loomine Kibanas logide jälgimiseks
К успешным мы будем относить все запросы со статусом ответа < 400, а к проблемным — >= 400.

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

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

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

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

Dashboardi loomine Kibanas logide jälgimiseks
Теперь настроим столбцы по оси Y. Сейчас у нас отображается общее число запросов в выбранный интервал времени.

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

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

Dashboardi loomine Kibanas logide jälgimiseks
Если нажать на круг около легенды, то появится окно, в котором можно поменять цвет столбцов.

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

Dashboardi loomine Kibanas logide jälgimiseks
В созданной метрике делаем такие же настройки, как и для ошибочных запросов. Только в фильтре указываем «statusCode < 400».

Dashboardi loomine Kibanas logide jälgimiseks
Изменив цвет нового столбца, получим отображение соотношения проблемных и успешных запросов.

Dashboardi loomine Kibanas logide jälgimiseks
Нажав в верхней части экрана кнопку «Save» и указав название, мы увидим на Dashboard первый график.

Dashboardi loomine Kibanas logide jälgimiseks

Andmete tabel

Теперь рассмотрим табличное представление «Data Table». Создадим таблицу со списком всех URL, к которым были запросы, и число этих запросов. Как и в примере с Vertical Bar, сначала выбираем источник данных.

Dashboardi loomine Kibanas logide jälgimiseks
После этого на экране отобразится таблица с одной колонкой, которая показывает общее число запросов за выбранный интервал времени.

Dashboardi loomine Kibanas logide jälgimiseks
Мы будем изменять только блок «Buckets». Нажимаем кнопку «Add» и выбираем «Split rows».

Dashboardi loomine Kibanas logide jälgimiseks
В поле «Aggregation» выбираем «Terms». А в появившемся поле «Field» выбираем «url.keyword».

Dashboardi loomine Kibanas logide jälgimiseks
Указав в поле «Custom label» значение «Url» и нажав «Update», мы получим желаемую таблицу с числом запросов по каждому из URL за выбранный промежуток времени.

Dashboardi loomine Kibanas logide jälgimiseks
В верхней части экрана снова нажмём кнопку «Save» и укажем название таблицы, например Urls. Вернемся назад на Dashboard и увидим оба созданных отображения.

Dashboardi loomine Kibanas logide jälgimiseks

Работа с Dashboard

Создавая Dashboard, в настройках объектов отображения мы устанавливали только основные параметры вида. Нет смысла указывать в объектах данные для фильтров, например, «диапазон дат», «фильтрацию по useragent», «фильтрацию по стране запроса» и т.д. Гораздо удобнее указывать желаемый временной промежуток или задавать необходимую фильтрацию в панели запросов, которая находится над объектами.

Dashboardi loomine Kibanas logide jälgimiseks
Добавленные на этой панели фильтры применятся ко всему Dashboard, и все объекты отображения перестроятся в соответствии с актуальными отфильтрованными данными.

Kokkuvõte

Kibana — мощный инструмент, позволяющий визуализировать любые данные в удобном виде. Я постарался показать настройку двух основных видов отображения. Но и другие виды настраиваются похожим образом. А обилие настроек, которые я оставил «за кадром», позволят вам очень гибко настраивать графики под свои потребности.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster