Elastic Stack

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:21, 16 сентября 2018.
Elasticsearch BV
Industry Разработка программного обеспечения
Headquarters Амстердам
Products Elasticsearch, Logstash, Kibana, Beats
Services Elasticsearch commercial solutions
Website elastic.co
Elasticsearch
Elasticsearch logo.png
Разработчики: Шай Банон
Выпущена: 8 February 2010 года; 10 years ago (2010-02-08)
Постоянный выпуск: 6.4.0 / 23 August 2018 года; 23 months ago (2018-08-23)
Состояние разработки: Активный
Написана на: Java
Операционная система: Cross-platform
Тип ПО: Поиск и индекс
Лицензия: Apache License 2.0
Веб-сайт elastic.co/products/elasticsearch

Elastic Stack — ранее Elastic X-Pack — позволяет надежно извлекать данные из любого источника в любом формате, а также искать, анализировать и визуализировать данные в режиме реального времени. Elastic Stack включает в себя следующие решения компании Elastic: Kibana, Elasticsearch, Beats, ECE, Logstash.

Комплект Elastic Stack

Elasticsearch

Elasticsearch — поисковая система, основанная на Lucene. Elasticsearch обеспечивает распределенную полнотекстовую поисковую систему с поддержкой мультивендера с веб-интерфейсом HTTP. Elasticsearch разработан на Java и выпущен как проект с открытым исходным кодом в соответствии с условиями лицензии Apache. Официальные клиенты доступны в Java, .NET (C #), PHP, Python, Apache Groovy, Ruby и многих других языках. Согласно рейтингу DB-Engines (2010 год), Elasticsearch является самой популярной среди подобных поисковой системой; за ней следует Apache Solr, также основанный на Lucene.

Elasticsearch разрабатывается наряду с механизмом сбора данных и регистрации журналов Logstash, а также платформой аналитики и визуализации под названием Kibana. Эти три продукта предназначены для использования в качестве интегрированного решения, называемого "Elastic Stack" (ранее «ELK-стек»).

Elasticsearch может использоваться для поиска всех видов документов. Он обеспечивает масштабируемый поиск, имеет поиск в режиме реального времени и поддерживает многоуровневость. «Elasticsearch распределен, что означает, что индексы можно разделить на фрагменты, и каждый фрагмент может иметь ноль или более реплик. Каждый узел содержит один или несколько фрагментов и выступает в роли координатора для делегирования операций правильному фрагменту(ам). Маршрутизация выполняется автоматически». Связанные данные часто хранятся в одном и том же индексе, который состоит из одного или нескольких первичных фрагментов и нуля или более фрагментов реплик. После создания индекса количество первичных фрагментов не может быть изменено.

Elasticsearch использует Lucene и старается сделать все свои функции доступными через JSON и Java API. Поддерживает фасетирование и перколяцию, что может быть полезно для уведомления о соответствии новых документов зарегистрированным запросам.

Поиск ресторанов в Elasticsearch
Окно визуализатора событий Kibana
Панель Logstash
Панель Beats
Панель ECE
Другая функция называется «шлюз» и обеспечивает долгосрочную сохранность индекса; например, индекс может быть восстановлен из шлюза в случае сбоя сервера. Elasticsearch поддерживает запросы GET в реальном времени, что делает его подходящим в качестве хранилища данных NoSQL, но Elasticsearch не хватает распределенных транзакций.[Источник 1]

Kibana

Kibana — позволяет визуализировать данные Elasticsearch и удобно перемещаться по Elastic Stack. Ядро Kibana включает: гистограммы, линейные графики, круговые диаграммы и многое другое. Кроме того, имеется возможность использовать грамматику Vega для создания собственных визуализаций. Имеет слоган: «Изображение стоимостью в тысячу строк журнала».

Включенный в состав Kibana пакет Elastic Maps Service позволяет визуализировать геопространственные данные. Это позволяет, к примеру, получить наглядную информацию о том, из каких регионов страны запросы поступают наиболее часто или редко.

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

Данные Kibana можно конвертировать в PDF и CSV файлы, а также напрямую встраивать на сайты, используя ссылки.[Источник 2]

Logstash

Logstash — серверный «конвейер» обработки данных с открытым исходным кодом, который одновременно переносит данные из множества источников, преобразует их и отправляет в Elasticsearch. Когда данные перемещаются из источника в хранилище, фильтры Logstash анализируют каждое событие, определяют именованные поля для построения структуры и преобразуют их в единый формат для упрощения, ускоренного анализа и оценки бизнеса.

Данные часто разбросаны и разрознены во многих системах и во многих форматах. Logstash поддерживает множество команд, с помощью которых можно брать события из множества общих источников одновременно. Logstash совместим с пользовательскими журналами, метриками, веб-приложениями, хранилищами данных и различными службами AWS, все это в непрерывном потоковом режиме.[Источник 3]

Logstash динамически преобразует и подготавливает данные независимо от формата или сложности:

  • Вывести структуру из неструктурированных данных
  • Расшифровать геокоординаты с IP-адресов
  • Анонимизировать данные PII, полностью исключить чувствительные поля
  • Простота общей обработки не зависит от источника данных, формата или схемы.

В Logstash есть подключаемый фреймворк с более чем 200 плагинами. Это позволяет смешивать, сопоставлять и настраивать различные входы, фильтры и выходы для работы. Если из предложенного списка подходящего плагина не обнаруживается, то компания также предоставляет API, с помощью которого можно создать собственный плагин, удовлетворяющий функциональным требованиям.

Beats

Beats — платформа для одноцелевых отправителей данных. Они устанавливаются как легковесные агенты и отправляют данные из множества машин в Logstash или Elasticsearch. Filebeat и Metricbeat (составляющие Beats) включают внутренние модули, которые упрощают сбор, анализ и визуализацию общих форматов журналов, таких как NGINX и Apache, и системные показатели, такие как Redis и Docker. Таким образом, можно выполнить единственную команду и работать с ней.

Совместим с Docker и Kubernetes, что упрощает мониторинг контейнеров. Filebeat и Metricbeat собирают журналы и показатели контейнеров и изменяют каждый из них с использованием необходимых метаданных, прежде чем отправлять их в Elastic Stack. Краеугольным камнем Beats является libbeat — общая библиотека для пересылки данных. Если у пользователя имеется протокол, который ему нужно отслеживать, то это можно сделать с помощью функционала libbeat. Компания Elastic предоставляет необходимые для этого «строительные блоки». Также имеется список сообщества Beats, в котором имеются готовые отслеживания.[Источник 4]

ECE

ECE (Elastic Cloud Enterprise) — позволяет контролировать и управлять Elasticsearch и Kibana в любом масштабе, на любой инфраструктуре и при этом с единой консоли.

Позволяет производить масштабирование, обеспечение безопасности, обновление и резервное копирование всех решений Elastic с централизованной консоли. Имеется возможность выбора, где запускать Elasticsearch и Kibana: физическое оборудование, виртуальная среда, частное облако, частная зона в общедоступном облаке или просто облако общего доступа (например, Google, Azure, AWS).

Резервные копии кластеров, которые управляются ECE, периодически создаются и в автоматическом режиме, используя API-интерфейс моментальных снимков Elasticsearch. [Источник 5]

История

Шей Банон (Shay Banon) создал предшественник Elasticsearch, названный Compass, в 2004 году. Подумав о третьей версии Compass, он понял, что необходимо переписать большие части Compass для «создания масштабируемого поискового решения». Поэтому он создал «решение, построенное с нуля для распространения», и использовал общий интерфейс JSON через HTTP, подходящий для языков программирования, отличных от Java. Shay Banon выпустил первую версию Elasticsearch в феврале 2010 года.

Elasticsearch BV была основана в 2012 году для предоставления коммерческих услуг и продуктов вокруг Elasticsearch и сопутствующего программного обеспечения. В июне 2014 года компания объявила о привлечении 70 миллионов долларов в раунд финансирования серии C, всего через 18 месяцев после создания компании. Этот раунд возглавил New Enterprise Associates (NEA). Дополнительные спонсоры включают Benchmark Capital и Index Ventures. Этот раунд приносит общее финансирование до $104 млн.

В марте 2015 года компания Elasticsearch изменила свое название на Elastic.

В июне 2018 года Elastic подала заявку на первичное публичное предложение с оценочной оценкой от 1,5 до 3 миллиардов долларов. [Источник 6]

Возможности

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

Все функции Lucene системы доступны через прикладные интерфейсы на JSON и Java.

Другая особенность — так называемый «шлюз», обеспечивающий долгосрочное сохранение индекса; например, индекс может быть восстановлен из шлюза в случае сбоя сервера. Система поддерживает запросы GET в реальном времени. Система не поддерживает распределённые транзакции.[Источник 7]

Процесс установки Elasticsearch

Управляемые услуги

Несколько организаций предлагают Elasticsearch в качестве управляемой услуги (management service). Такие управляемые услуги предоставляют хостинг, развертывание, резервное копирование и другую поддержку.

Большинство управляемых услуг также включают поддержку Kibana.

Источники

  1. Elasticsearch // www.elastic.co: URL: https://www.elastic.co/products/elasticsearch (дата обращения: 12.09.2018)
  2. Kibana // www.elastic.co: URL: https://www.elastic.co/products/kibana (дата обращения: 12.09.2018)
  3. Logstash // www.elastic.co: URL: https://www.elastic.co/products/logstash (дата обращения: 12.09.2018)
  4. Beats // www.elastic.co: URL: https://www.elastic.co/products/beats (дата обращения: 12.09.2018)
  5. Elastic Cloud Enterprise // www.elastic.co: URL: https://www.elastic.co/products/ece (дата обращения: 12.09.2018)
  6. Elasticsearch history // en.wikipedia.org: URL: https://en.wikipedia.org/wiki/Elasticsearch (дата обращения: 12.09.2018)
  7. Elastic Stack // www.elastic.co: URL: https://www.elastic.co/products (дата обращения: 12.09.2018)

Ссылки