ru en

Внедрение системы сбора статистики - Elastic Stack

Содержание

  1. Система сбора статистики

  2. Что нам дает ELK?

  3. Elastic Stack применение REST API

  4. Установка и настройка ES

  5. Пример внедрения Elastic Stack

  6. Вывод



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

В качестве примера рассмотрим веб-портал, собирающий информацию об активности пользователей, к примеру:

  • - сколько пользователей просмотрели обучающие материалы,
  • - какие материалы были просмотрены,
  • - какова активность пользователей,
  • - с каких устройств и браузеров пользователи заходят на сайт.

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

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


Что нам дает ELK?

Итак, перечислим основные задачи, которые необходимо решить:

  • 1. Добавление больших объемов информации без существенной нагрузки на БД.
  • 2. Поиск и анализ по большому количеству критериев.
  • 3. Сбор статистики и дальнейший ее показ в удобном виде.

Elasticsearch – популярная поисковая система в области Big Data, масштабируемое нереляционное хранилище данных с открытым исходным кодом, аналитическая NoSQL-СУБД с широким набором функций полнотекстового поиска.

ES является ядром ELK-стека (Elastic Stack), в состав которого, помимо Elasticsearch, входят следующие продукты:

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

Kibana – веб-интерфейс для Elasticsearch, чтобы взаимодействовать с данными, которые хранятся в его индексах ES через динамические панели мониторинга, таблицы, графики и диаграммы, которые отображают изменения в ES-запросах в реальном времени;

FileBeat – агент на серверах для отправки различных типов оперативных данных в ES.

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

Elasticsearch - основное ядро всей системы, реализующий функции базы данных, поиск и анализ данных. Быстрый и гибкий поиск обеспечивается за счет анализаторов текста, нечеткого поиска. Немаловажно отметить, что наличие REST API позволяет модифицировать, добавлять, просматривать, удалять данные, а также осуществлять интеграцию со сторонними сервисами.

Главная особенность Elasticsearch - отсутствие четкой структуры для хранения данных, в отличие от традиционной реляционной СУБД, где данные хранятся в строго структурированном виде с конкретными типами и размерами.

Kibana - система визуализации ES.

Filebeat - основная задача - сбор и хранение логов

Metricbeat - осуществляет сбор статистики нагрузки CPU и памяти (глобально и по отдельным процессам), с дальнейшей передачей Elasticsearch

X-Pack - функционал, связанный с обеспечением безопасности ES и разграничением прав пользователей.


Elastic Stack - применение REST API

Elasticsearch имеет многофункциональный REST API, работающий на протоколе HTTP, что позволяет без проблем интегрировать ES с любым сторонним сервисом.

Рассмотрим реализацию задачи по интеграции веб-сервиса на Битриксе:

  • Имеется образовательный портал с большим количеством пользователей (от 10 000).
  • Необходимо собирать статистику поведения пользователей для дальнейшего анализа: количество посещений, с каких устройств и браузеров заходят пользователи, сколько было просмотрено видеоматериалов, сколько в среднем по времени просматривается материалы, какие ресурсы сайта пользуются популярностью и т. д.

Схема интеграции портала показана на рисунке ниже:

Как видно на рисунке, интеграция ES Stack с сторонним веб-ресурсом достаточно проста: необходимо всего лишь организовать сбор статистики на самом сайте и дальше просто обычными HTTP запросами отправляем наши данные на сервер с Elasticsearch, который принимает входящие данные для дальнейшего анализа.


Установка и настройка ES

  • Elastic Stack достаточно прост в установке и включает в себя следующие шаги:
  • Установка и настройка Elasticsearch.
  • Установка и настройка Kibana.
  • Установка и настройка Logstash.
  • Установка и настройка Metricbeat.
  • Установка и настройка X-Pack.

Пример внедрения Elastic Stack

Итак, после установки Elastic Stack мы можем работать с системой (главный экран):

На рисунке ниже приведены основные параметры, по которым собирается статистика:

  • Запрос контроля присутствия;
  • Статистика по нажатым кнопкам;
  • Количество пользователей, посетивших трансляцию с обучающим материалом;
  • Посещение пользователями страниц сайта.

Ниже, на рисунках приведен пример визуализации основных отслеживаемых параметров.

Статистика активности пользователей:

Статистика по нажатым кнопкам на трансляциях с обучающим материалом:

Количество зарегистрированных и активных пользователей:

Количество пользователей, просматривающих обучающие материалы:

Статистика по пользователям, посещавших страницу с обучающим материалом:

При помощи модуля Metricbeat можно посмотреть статистику нагрузки CPU и памяти.


Вывод

Как мы видим Elasticsearch - это мощная поисковая система, способная решать самые разные задачи. Немаловажно отметить, что внедрение ELK Stack не требует как больших финансовых так и временных затрат.

Система легко устанавливается, легко настраивается и при необходимости масштабируется.


Оставить заявку