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 в веб-сервисе Альфа-банка
А в интернет-магазине отечественного обувного ритейлера 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/
5. https://www.securitylab.ru/news/497613.php
6. http://dddpaul.github.io/blog/presentations/Elasticsearch-1.pdf