5 ключевых достоинств и 3 главных недостатка ELK-стека: разбираемся с Elasticsearch, Logstash и Kibana на реальных Big Data кейсах

Автор Категория , ,
5 ключевых достоинств и 3 главных недостатка ELK-стека: разбираемся с Elasticsearch, Logstash и Kibana на реальных Big Data кейсах

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

Чем хороши Elasticsearch с Logsatsh и Kibana в Big Data: 5 главных преимуществ

Основными достоинствами ELK-стека считаются следующие [1]:

  • Масштабируемость – кластер Elasticsearch (ES) расширяется «на лету» добавлением новых серверов. При этом распределение нагрузки по узлам происходит автоматически.
  • Отказоустойчивость — в случае сбоя кластерных узлов данные не потеряются, а будут перераспределены, и поисковая система сама продолжит работу. Операционная стабильность достигается ведением логов на каждое изменение данных в хранилище сразу на нескольких узлах кластера.
  • Гибкость поисковых фильтров, включая нечеткий поиск, возможности работы с восточными языками (китайский, японский, корейский) и мультиарендность, когда в рамках одного объекта ES можно динамически организовать несколько различных поисковых систем. Благодаря наличию встроенных анализаторов текста Elasticsearch автоматически выполняет токенизацию, лемматизацию, стемминг и прочие преобразования текста для решения NLP-задач, связанных с поиском данных.
  • Управляемость ES по HTTP с помощью JSON-запросов за счет REST API и визуального веб-интерфейса Kibana.
  • Универсальность – Logsatsh в потоковом режиме работает одновременно со множеством разных источников данных (СУБД, файлы, системные логи, веб-приложения и пр.), фильтруя и преобразуя их для отправки в хранилище ES. А NoSQL-природа Elasticsearch (отсутствие схемы) позволяет загружать в него JSON-объекты, которые автоматически индексируются и добавляются в базу поиска. Это позволяет ускорить прототипирование поисковых Big Data решений.

Что не так с ELK-системами и при чем тут ClickHouse: ограничения и альтернативы

При том, что ELK позволяет быстро выполнять полнотекстовый поиск и анализировать неструктурированные данные в режиме real-time, эта Big Data система обладает следующими недостатками:

  • высокое потребление ресурсов (CPU и RAM) из-за использования JVM – Elasticsearch и Logstash написаны на Java [2]. На практике это может привести к недостаточной производительности на высоких нагрузках [3]. Впрочем, показатели скорости – это субъективный вопрос. Иногда 0,5 секунды на фильтрацию и поиск – это отличный результат, например, как для интернет-магазина Kari, кейс которого рассмотрен далее [4].
  • сложность QueryDSL – внутреннего языка запросов к базе ES [4];
  • проблемы с информационной безопасностью – Elasticsearch не имеет никакой встроенной системы авторизации и ограничения прав доступа. После установки движок по умолчанию связывается с портом 9200 на все доступные интерфейсы, что открывает доступ к базе данных [1]. Поэтому БД необходимо обязательно защищать паролем. Именно с этим связана одна из крупных утечек информации, случившаяся в 2019 году в банковской сфере. В открытом доступе был обнаружен кластер Elasticsearch американской компании Ascencion, на котором была расположена база данных объемом 51 ГБ с 24 млн банковских документов, включая записи о займах и ипотечных кредитах клиентов крупных банков и финансовых организаций (CitiFinancial, Wells Fargo, CapitalOne и др). Также в сеть утекли персональные данные клиентов: полные имена, сферы деятельности, даты рождения, адреса, телефоны, номера социального страхования и банковских счетов, а также информация о кредитах [5].

С учетом этих ограничений на практике ELK можно заменить более безопасным и быстрым решением для анализа структурированных данных, если нет необходимости в полнотекстовом поиске по разным форматам. Например, именно такое решение приняла компания Cloudflare, выбрав ClickHouse в качестве СУБД для хранения и быстрой аналитики структурированных логов [2].

Кто использует Elasticsearch: практические примеры

Впрочем, если требуется полнотекстовый поиск по данных разных форматов, Elasticsearch – отличный инструмент. В частности, именно его применяет Альфа-Банк в рамках сервиса «Выписка по счету» в личном кабинете клиента для организации полнотекстового поиска по транзакциям [6]. Здесь важно отметить, что ES используется именно для гибкого поиска по тексту, а не как средство обеспечения транзакций – ELK Stack не поддерживает транзакции, т.к. Elasticsearch является NoSQL-СУБД.

Elasticsearch, ELK
Пример использования Elasticsearch в веб-сервисе Альфа-банка

А в интернет-магазине отечественного обувного ритейлера Kari Elasticsearch и Kibana интегрированы с 1С:Битрикс и MySQL, чтобы интерактивно формировать представления товаров и торговых предложения по сайту для разных городов. Таким образом, здесь задействуется возможность полнотекстового поиска по разным языкам [4].

Разумеется, эти пример далеко не единственные пользователи ELK-стека. Например, Elasticsearch активно применяется в Facebook, Mozilla, Wikimedia, GitHub, Netflix, ЦЕРН и множестве других Big Data компаний по всему миру для гибкого полнотекстового поиска по большим данным [1].

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

Источники

  1. https://ru.bmstu.wiki/Elastic_Elasticsearch
  2. https://habr.com/ru/company/ua-hosting/blog/483112/
  3. https://habr.com/ru/company/tssolution/blog/480570/
  4. https://vc.ru/flood/28694-kak-uvelichit-proizvoditelnost-sayta-v-neskolko-raz-s-pomoshchyu-elasticsearch
  5. https://www.securitylab.ru/news/497613.php
  6. http://dddpaul.github.io/blog/presentations/Elasticsearch-1.pdf