Вход
Регистрация

Elasticsearch – поиск для самых больших

Elasticsearch – поиск для самых больших

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

Требования к современным системам быстрого внутреннего поиска постоянно меняются и растут. Меняется и сама структура данных. Если раньше это были единообразные записи в таблицах БД, то теперь чаще речь идет об «озерах данных», содержащих неструктурированную информацию, объектных хранилищах S3 и т.д. 

Не так уж много существует поисковых решений, способных хорошо показать себя в подобной среде, особенно если дело касается поиска среди многих и многих петабайт. Одной из самых популярных в области Big Data поисковых систем такого рода является, безусловно, Elasticsearch.

Первая версия поискового движка увидела свет в 2010 году. В 2012 году создатель Elasticsearch Шай Бейнон (Shay Banon) зарегистрировал одноименную компанию, задачей которой стала коммерциализация изначально открытого решения. Позднее она была переименована в Elastic.

В настоящее время возможностями Elasticsearch пользуются множество всемирно известных компаний, среди которых GitHub, Netflix, Uber, Slack, Microsoft и пр. Так, к примеру, для организации поиска по своим бездонным хранилищам Netflix постоянно использует 700-800 узлов Elasticsearch, объединенных в 100 кластеров. Uber обрабатывает по тысяче поисковых запросов в секунду и более, а GitHub индексирует более 8 млн репозиториев, обслуживая более 4 млн пользователей.

Принципы работы Elasticsearch

В основе Elasticsearch лежит написанный на Java поисковый движок, использующий свободную библиотеку скоростного полнотекстового поиска Lucene и поддерживающий JSON REST API. К ключевым достоинствам Elasticsearch, помимо высочайшей производительности и возможности практически безграничного горизонтального масштабирования, можно отнести автоматическую индексацию новых объектов, которые становятся доступными сразу после загрузки в БД в соответствии с концепцией NoSQL. 

Кроме того, поисковая система оснащена широким набором настраиваемых фильтров, позволяющим реализовать мультиарендность и использовать нечеткий поиск. Также Elasticsearch снабжен анализаторами, в автоматическом режиме выполняющими токенизацию текста (разбиение на элементарные элементы – слова, знаки препинания и пр.), лемматизацию, стемминг и другие преобразования.

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

В случае необходимости, которая в крупных проектах возникает почти всегда, несколько копий Elasticsearch могут быть объединены в кластер. Группа таких кластеров может хранить реплицированные копии сегментов индекса, за счет чего достигается высокая отказоустойчивость решения. 

В достаточно большом хранилище данных число развернутых кластеров Elasticsearch может измеряться сотнями. При этом каждый из узлов кластера умеет делегировать операции поиска правильному сегменту индекса, попутно осуществляя маршрутизацию и перебалансировку данных.

Также по теме

Elastic Stack

Важно отметить, что в своем типичном воплощении Elasticsearch не используется в отрыве от других продуктов Elastic – Logstash, Kibana и FileBeat. Вместе они образуют комплексное решение, получившее общее название Elastic Stack.

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

В качестве источников данных для этого инструмента могут служить социальные сети, новостные агрегаторы, внутренние данные систем электронной коммерции, CRM, финансовые показатели, телеметрия мобильных устройств, сенсорные сети IoT, HTTP-запросы и ответы на них, журналы Apache или Windows, а также многое другое.

Широкий ассортимент фильтров Logstash помогает извлекать ценные выводы из данных при помощи преобразований и анализа. Построенные на основе регулярных выражений шаблоны фильтров могут быть объединены в последовательности. Также анализ данных облегчает набор плагинов для Logstash, позволяющих преобразовать содержимое журналов в любой удобный формат.

Kibana – веб-инструмент визуализации, позволяющий привести поток событий от Logstash в человекочитаемый вид для анализа. При этом Kibana не взаимодействует с Logstash напрямую, а использует в качестве источника данных уже обработанные индексы Elasticsearch. С помощью Kibana можно создавать разнообразные динамические панели мониторинга, таблицы, графики и диаграммы, демонстрирующие обстановку во входящих источниках событий в реальном времени.

FileBeat – легковесный серверный агент, с помощью которого можно организовать отправку логов серверов в Logstash. Этот элемент стека не является обязательным, однако зачастую оказывается весьма полезен в инфраструктурах определенных типов.

Особенности лицензирования

Все элементы Elastic Stack доступны для изучения и использования в виде исходных кодов в репозитории GitHub. До недавнего времени они распространялись по лицензии Apache 2.0, однако в январе 2021 года Elastic объявила о переходе на лицензию SSPL (Server Side Public License), накладывающую некоторые ограничения на коммерческое использование. 

Теперь эксплуатанты Elastic Stack могут продолжать пользоваться им безвозмездно только в том случае, если все остальные компоненты, вовлеченные в работу сервиса, также будут публиковаться в виде открытого исходного кода. 

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

В то же время, основное коммерческое предложение Elastic состоит вовсе не в этом. Различные варианты лицензий, такие как Gold, Platinum и Enterprise, включают в себя многочисленные дополнительные инструменты, направленные на расширение функциональности Elastic Stack.

·      Gold включает в себя механизмы авторизации через Active Directory/LDAP, дополнительные инструменты внутреннего аудита, расширенные возможности службы оповещений и, разумеется, техническую поддержку в рабочие часы.

·      Platinum в дополнение к вышеперечисленному предлагает встроенные инструменты машинного обучения, поддержку ODBC/JDBC, настройки гранулярного доступа вплоть до отдельных документов, кросс-кластерную репликацию и ряд других возможностей, включая круглосуточную техподдержку. На сегодняшний день это самый востребованный тип лицензий на Elastic Stack.

·      Enterprise, помимо возможностей Platinum, включает в себя решение Elastic Cloud Enterprise, оркестратор Elastic Cloud on Kubernetes, инструмент киберзащиты конечных устройств Endgame, а также поддержку неограниченного количества проектов на базе Elastic.

ПОЛУЧИТЕ КОНСУЛЬТАЦИЮ ЭКСПЕРТА!

Никита Комиссаров, руководитель направления Средства разработки


Самое читаемое

156 | Записи вебинаровКак IT-поддержке повысить эффективность с помощью менеджмента знаний и подготовиться к внедрению GenAI 147 | Новости Сиссофт«Системный софт» и Okdesk заключили партнёрское соглашение 140 | Новости вендоровВышел релиз платформы Modus BI 3.11 119 | Новости СиссофтС 15 марта «Системный софт» будет продавать SSL сертификаты сроком действия 199 дней 115 | Новости Сиссофт«Системный софт» стал партнером по внедрению taskITnow — российской системы управления проектами 84 | Новости вендоровВышло обновление редактора презентаций Slider Ai 1.15.0 76 | ВебинарыКак Postgres Pro помогает работать с данными, управлять бэкапами и соблюдать требования ФСТЭК. 11.03.2026 11:00 (МСК) 66 | Новости вендоровНовая модель PT NGFW для защиты дата-центров и высоконагруженных корпоративных сетей 60 | Записи вебинаровКак снизить информационный шум в мониторинге: от алертов к инцидентам с помощью ИИ. 53 | Записи вебинаровОт хаоса к контролю: управление корпоративным парком Apple c Ринго. 46 | Записи вебинаровКак работать с объемными BIM-моделями в nanoCAD BIM Строительство без потери производительности
1342 | ВебинарыКак снизить информационный шум в мониторинге: от алертов к инцидентам с помощью ИИ. 25.02.26 11:00 МСК 1328 | ВебинарыКак работать с объемными BIM-моделями в nanoCAD BIM Строительство без потери производительности. 26.02.26. 11:00 МСК 1009 | Средства разработкиAmplicode для Spring-разработки: как сократить рутину, снизить риски и ускорить команды без потери качества 713 | Новости вендоров«Лаборатория Касперского» представила обновлённую SIEM-систему KUMA 4.2 614 | Новости вендоровНовая модель шлюза безопасности ViPNet Coordinator HW 4 585 | Средства разработкиИИ в QA: почему первые результаты часто разочаровывают 572 | Новости вендоровUserGate и Индид представили совместное решение для безопасного удалённого доступа 561 | ВебинарыОт хаоса к контролю: управление корпоративным парком Apple c Ринго. 19.02.26 11:00 МСК 489 | Новости вендоровPositive Technologies выпустила обновление продукта PT Container Security 408 | Новости вендоровКонсорциум «Группа Астра», Haulmont и Axiom JDK готовит к выпуску OpenIDE Pro 372 | Новости вендоровF6 представила сервис активного сканирования Attack Surface Management TRY 156 | Записи вебинаровКак IT-поддержке повысить эффективность с помощью менеджмента знаний и подготовиться к внедрению GenAI 147 | Новости Сиссофт«Системный софт» и Okdesk заключили партнёрское соглашение 140 | Новости вендоровВышел релиз платформы Modus BI 3.11 119 | Новости СиссофтС 15 марта «Системный софт» будет продавать SSL сертификаты сроком действия 199 дней 115 | Новости Сиссофт«Системный софт» стал партнером по внедрению taskITnow — российской системы управления проектами