Перекрестный кластерный поиск в OpenSearch

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

Кросс-кластерный поиск позволяет выполнять единые поисковые запросы по всем настроенным кластерам, при этом пользователи могут настраивать несколько удаленных кластеров, расположенных в различных географических точках и у различных провайдеров. Отправьте поисковый запрос с локального кластера и получите ответы от всех подключенных удаленных кластеров.

Кросс-кластерный поиск в OpenSearch

В OpenSearch кросс-кластерный поиск позволяет любому узлу кластера осуществлять поиск в других кластерах. Кросс-кластерный поиск из коробки поддерживается плагином безопасности.

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

Как показано в приведенном ниже примере: конфигурация файла roles.yml, пользователи должны иметь такое разрешение для индекса indices:admin/shards/search_shards, поскольку оно необходимо для кросс-кластерного поиска в OpenSearch, кроме того, для запроса индексов на удаленных кластерах необходимы разрешения READ или SEARCH. В OpenSearch пользователи имеют возможность создавать роли с помощью OpenSearch Dashboards, REST API или roles.yml.

Если пользователям не требуется создавать новых зарезервированных или скрытых пользователей, настоятельно рекомендуется использовать OpenSearch Dashboards или REST API для создания новых пользователей, ролей и сопоставлений ролей. Файлы .yml предназначены для первоначальной настройки, а не для дальнейшего использования. Для добавления предыдущей роли из инструментальных панелей OpenSearch необходимо выбрать пункт Security, Roles и Create Role. Затем присвойте роли имя artificialintelligence и укажите шаблон индекса, по которому будет производиться поиск. Добавьте права на запись и indices:admin/shards/search_shards. Затем выберите пункт submit.

Пример кросс-кластерного поиска в OpenSearch

В данном примере в качестве удаленного кластера с портом 9250 использовался кластер_two, а в качестве координирующего кластера с портом 9200 - кластер_one. Задача состоит в поиске индекса искусственного интеллекта на удаленном кластере.

Сначала добавим IP-адрес и имя удаленного кластера (с портом 9300) для каждого seed-узла. При наличии одного начального узла сделайте следующее:

В приведенном примере cluster_two будет добавлен в качестве удаленного кластера к cluster_one.
Теперь приведенная ниже команда выполнит поиск по индексу artificialintelligence в кластере two с использованием пользователя admin:

Из приведенного выше поиска возвращаются следующие результаты, поскольку в индексе есть только один документ, имеющий в поле заголовка значение "Data mining".

Примечания для кросс-кластерного поиска в OpenSearch

  • Пользователи должны существовать в обоих кластерах, но роль и сопоставление требуются только в удаленном кластере; в этом сценарии координирующий кластер управляет аутентификацией, а удаленный - авторизацией.
  • Оптимальной практикой является использование API или панелей управления для добавления новых пользователей/ролей.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий