3 товарища в поиске и аналитике Big Data: Elasticsearch, Logstash и Kibana

Автор Категория , ,
3 товарища в поиске и аналитике Big Data: Elasticsearch, Logstash и Kibana

В этой статье рассмотрим ELK-инфраструктуру: разберем, зачем поисковый движок Elasticsearch использует сборщик логов Logstash и при чем здесь визуальный интерфейс Kibana. Также поговорим, в каких Big Data проектах используются эти системы и для чего.

Зачем вам Elasticsearch: полнотекстовый поиск по Big Data

Чтобы определить, почему деньги пропали с банковского счета или кто именно из сотрудников слил персональные данные клиентов в сеть и найти причины прочих инцидентов в корпоративном масштабе, нужна полная картина произошедшего. Составить ее поможет анализ системных логов – журналов, где зафиксированы все события, случившиеся в системе за конкретный промежуток времени [1]. Сегодня наиболее популярным инструментом для построения решений по мониторингу корпоративной инфраструктуры считается ELK – Elasticsearch, Logstash и Kibana. Изначально эти 3 продукта с открытым исходным кодом развивались отдельно друг от друга, но в 2015 году стали принадлежать одной компании Elastic. Сегодня Elasticsearch, Logsatsh и Kibana используются вместе для задач сбора, хранения и анализа данных [2].

Мощные возможности ELK-инфраструктуры позволяют не только анализировать системные логи в рамках задачи администрирования корпоративного ИТ-ландшафта. Также эта Big Data система отлично подходит для решения следующих бизнес-задач [3]:

  • агрегация товаров с множества интернет-магазинов, фильтрация и поиск разных свойств продукции;
  • агрегация данных из различных систем, вычисление и отображение показателей для комплексного анализа бизнес-процессов;
  • просмотр и анализ различной неструктурированной статистической информации;
  • автоматизированная обработка анкет и опросников.

Далее рассмотрим подробнее, из чего состоит ELK-система и как она устроена.

Что внутри ELK-системы: архитектура и принципы работы

Инфраструктура ELK включает следующие компоненты [2]:

  • Elasticsearch (ES) – масштабируемая утилита полнотекстового поиска и аналитики, которая позволяет быстро в режиме реального времени хранить, искать и анализировать большие объемы данных. Как правило, ES используется в качестве NoSQL-базы данных для приложений со сложными функциями поиска. Elasticsearch основана на библиотеке Apache Lucene, предназначенной для индексирования и поиска информации в любом типе документов. В масштабных Big Data системах несколько копий Elasticsearch объединяются в кластер [4].
  • Logstash — средство сбора, преобразования и сохранения в общем хранилище событий из файлов, баз данных, логов и других источников в реальном времени.  Logsatsh позволяет модифицировать полученные данные с помощью фильтров: разбить строку на поля, обогатить или их, агрегировать несколько строк, преобразовать их в JSON-документы и пр. Обработанные данные Logsatsh отправляет в системы-потребители. 
  • Kibana – визуальный инструмент для Elasticsearch, чтобы взаимодействовать с данными, которые хранятся в индексах ES. Веб-интерфейс Kibana позволяет быстро создавать и обмениваться динамическими панелями мониторинга, включая таблицы, графики и диаграммы, которые отображают изменения в ES-запросах в реальном времени. Примечательно, что изначально Kibana была ориентирована на работу с Logstash, а не на Elasticsearch. Однако, с интеграцией 3-х систем в единую ELK-платформу, Kibana стала работать непосредственно с ES [4].
  • FileBeat – агент на серверах для отправки различных типов оперативных данных в Elasticsearch.

В рамках единой ELK-платформы все вышеперечисленные компоненты взаимодействуют следующим образом [5]:

  • Logstash представляет собой конвейер обработки данных (data pipeline) на стороне сервера, который одновременно получает данные из нескольких источников, включая FileBeat. Здесь выполняется первичное преобразование, фильтрация, агрегация или парсинг логов, а затем обработанные данные отправляется в Elasticsearch.
  • Elasticsearch играет роль ядра всей системы, сочетая функции базы данных, поискового и аналитического движков. Быстрый и гибкий поиск обеспечивается за счет анализаторов текста, нечеткого поиска, поддержки восточных языков (корейский, китайский, японский). Наличие REST API позволяет добавлять, просматривать, модифицировать и удалять данные [3].
  • Kibana позволяет визуализировать данные ES, а также администрировать базу данных.
ELK, Elasticsearch, Logstash, Kibana
Принцип работы ELK-инфраструктуры: как взаимодействуют Elasticsearch, Logstash и Kibana

Завтра мы рассмотрим главные достоинства и недостатки ELK-инфраструктуры. А как эффективно использовать их для сбора и анализа больших данных в реальных проектах, вы узнаете на практических курсах по администрированию и эксплуатации Big Data систем в нашем лицензированном учебном центре повышения квалификации и обучения руководителей и ИТ-специалистов (разработчиков, архитекторов, инженеров и аналитиков) в Москве.

Источники

  1. https://www.softlab.ru/blog/technologies/5816/
  2. https://ru.bmstu.wiki/Elastic_Logstash
  3. https://system-admins.ru/elk-o-chem-i-zachem/
  4. http://samag.ru/archive/article/3575