Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for Elasticsearch
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к кластеру
    • Остановка и запуск кластера
    • Изменение настроек кластера
    • Изменение версии и редакции Elasticsearch
    • Настройка SAML-аутентификации
    • Настройка доступа к Object Storage
    • Управление хостами Elasticsearch
    • Управление плагинами Elasticsearch
    • Управление расширениями Elasticsearch
    • Управление пользователями Elasticsearch
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Мониторинг состояния кластера и хостов
  • Практические руководства
    • Все руководства
    • Миграция в Managed Service for Elasticsearch с помощью снапшотов
    • Миграция данных из стороннего кластера Elasticsearch с помощью Reindex API
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Роли хостов
    • Редакции Elasticsearch
    • Индексы
    • Поиск с помощью Elasticsearch
    • Классы хостов
    • Сеть в Managed Service for Elasticsearch
    • Квоты и лимиты
    • Типы дисков
    • Резервные копии
    • Шардирование и репликация
    • Поддержка словарей
    • Политика управления версиями Elasticsearch
    • Настройки Elasticsearch
    • Техническое обслуживание
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • AuthService
      • BackupService
      • ClusterService
      • ExtensionService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Auth
        • Overview
        • addProviders
        • deleteProvider
        • deleteProviders
        • getProvider
        • listProviders
        • updateProvider
        • updateProviders
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • backup
        • create
        • delete
        • deleteHosts
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • move
        • rescheduleMaintenance
        • restore
        • start
        • stop
        • streamLogs
        • update
      • Extension
        • Overview
        • create
        • delete
        • get
        • list
        • update
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • list
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
  1. Практические руководства
  2. Миграция данных из стороннего кластера Elasticsearch с помощью Reindex API

Миграция данных из стороннего кластера Elasticsearch с помощью Reindex API

Статья создана
Yandex Cloud
  • Перед началом работы
  • Настройте кластер-приемник
  • Запустите переиндексацию
  • Удалите неиспользуемые ресурсы

Кластеры Managed Service for Elasticsearch поддерживают механизм переиндексации — Reindex API. В качестве источника данных для переиндексации можно указать другой кластер Elasticsearch — такую переиндексацию называют удаленной. С ее помощью можно перенести существующие индексы, псевдонимы (aliases) или потоки данных из стороннего кластера-источника в кластер-приемник Managed Service for Elasticsearch.

Чтобы мигрировать данные из кластера-источника Elasticsearch в кластер-приемник Managed Service for Elasticsearch:

  1. Настройте кластер-приемник.
  2. Запустите переиндексацию.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работы

  1. Создайте кластер-приемник Managed Service for Elasticsearch любой подходящей конфигурации.

    Включите доступ к хостам кластера через публичные IP-адреса.

    Важно

    Версия Elasticsearch в кластере-приемнике должна быть не ниже чем в кластере-источнике.

  2. Убедитесь, что вы можете подключиться к кластеру-приемнику Managed Service for Elasticsearch с помощью Elasticsearch API и Kibana.

  3. Убедитесь, что у кластера-источника Elasticsearch есть доступ в интернет.

  4. Если кластер-источник использует для защиты соединения самоподписанный сертификат, добавьте его в качестве расширения к кластеру-приемнику.

  5. Создайте в кластере-источнике пользователя с ролями monitoring_user и viewer.

Настройте кластер-приемник

  1. Создайте роль с привилегиями create_index и write для всех индексов (*).

  2. Создайте пользователя и назначьте ему эту роль.

    Совет

    В кластерах Managed Service for Elasticsearch вы можете использовать Reindex API от имени пользователя admin, имеющего роль superuser, но безопаснее для каждой задачи создавать отдельных пользователей с ограниченными привилегиями. Подробнее см. в разделе Управление пользователями Elasticsearch.

  3. Измените настройки СУБД:

    • Reindex remote whitelist — укажите IP-адрес или FQDN кластера-источника, например:

      192.168.0.1:9200, example.com:9200
      
    • (опционально) Reindex SSL CA path — укажите локальный путь до загруженного сертификата /etc/elasticsearch/extensions/<имя расширения>/<имя сертификата>.

Запустите переиндексацию

  1. Получите список хостов кластера-приемника.

  2. Для запуска переиндексации выполните запрос к хосту с ролью Master node в кластере-приемнике:

    curl --user <имя пользователя в кластере-приемнике>:<пароль пользователя в кластере-приемнике> \
         --request POST "https://<IP-адрес или FQDN хоста Master node в кластере-приемнике>:9200/_reindex?pretty" \
         --header 'Content-Type: application/json' \
         --data '{
           "source": {
             "remote": {
               "host": "https://<IP адрес или FQDN хоста Master Node в кластере-источнике>:9200",
               "username": "<имя пользователя в кластере-источнике>",
               "password": "<пароль пользователя в кластере-источнике>"
             },
             "index": "<имя индекса, псевдонима или потока данных в кластере-источнике>"
           },
           "dest": {
             "index": "<имя индекса, псевдонима или потока данных в кластере-приемнике>"
           }
         }'
    

    Чтобы перенести несколько индексов, используйте цикл for:

    for index in <имена индексов, псевдонимов или потоков данных, разделенные пробелами>; do
      curl --user <имя пользователя в кластере-приемнике>:<пароль пользователя в кластере-приемнике> \
           --request POST "https://<IP-адрес или FQDN хоста Master Node в кластере-приемнике>:9200/_reindex?pretty" \
           --header 'Content-Type: application/json' \
           --data '{
             "source": {
               "remote": {
                 "host": "https://<IP адрес или FQDN хоста Master Node в кластере-источнике>:9200",
                 "username": "<имя пользователя в кластере-источнике>",
                 "password": "<пароль пользователя в кластере-источнике>"
               },
               "index": "'$index'"
             },
             "dest": {
               "index": "'$index'"
             }
           }'
    done
    

Удалите неиспользуемые ресурсы

Если созданные ресурсы вам больше не нужны, удалите их:

  • Если вы зарезервировали для доступа к кластеру публичные статические IP-адреса, освободите и удалите их.
  • Если для загрузки самоподписанного сертификата вы использовали бакет Yandex Object Storage, очистите и удалите его.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Настройте кластер-приемник
  • Запустите переиндексацию
  • Удалите неиспользуемые ресурсы