Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Настроить Elasticsearch ›Удаленные кластеры

Подключение к удаленным кластерам

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

У вас должна быть привилегия кластера manage, чтобы подключиться к удаленным кластерам.

Чтобы добавить удаленный кластер из Stack Management в Kibana:

  1. Выберите Удаленные кластеры из боковой навигации.
  2. Укажите URL-адрес конечной точки Elasticsearch или IP-адрес или имя хоста удаленного кластера, за которым следует порт транспорта (по умолчанию 9300). Например, cluster.es.eastus2.staging.azure.foundit.no:9400 или 192.168.1.1:9300.

В качестве альтернативы, используйте API для обновления настроек кластера, чтобы добавить удаленный кластер. Вы также можете использовать этот API для динамической настройки удаленных кластеров для каждого узла в локальном кластере. Чтобы настроить удаленные кластеры на отдельных узлах в локальном кластере, определите статические настройки в elasticsearch.yml для каждого узла.

После подключения удаленных кластеров, настройте роли и пользователей для удаленных кластеров.

Следующий запрос добавляет удаленный кластер с псевдонимом cluster_one. Этот псевдоним кластера является уникальным идентификатором, который представляет подключение к удаленному кластеру и используется для различения локальных и удаленных индексов.

PUT /_cluster/settings
{
  "persistent" : {
    "cluster" : {
      "remote" : {
        "cluster_one" : {    
          "seeds" : [
            "127.0.0.1:9300" 
          ]
        }
      }
    }
  }
}

Псевдоним кластера этого удаленного кластера — cluster_one.

Указывает имя хоста и порт транспорта узла-семени в удаленном кластере.

Вы можете использовать API для получения информации об удаленном кластере, чтобы проверить, успешно ли подключен локальный кластер к удаленному кластеру:

GET /_remote/info

Ответ API указывает, что локальный кластер подключен к удаленному кластеру с псевдонимом кластера cluster_one:

{
  "cluster_one" : {
    "seeds" : [
      "127.0.0.1:9300"
    ],
    "connected" : true,
    "num_nodes_connected" : 1,  
    "max_connections_per_cluster" : 3,
    "initial_connect_timeout" : "30s",
    "skip_unavailable" : false, 
    "mode" : "sniff"
  }
}

Количество узлов в удаленном кластере, к которому подключен локальный кластер.

Указывает, нужно ли пропустить удаленный кластер, если поиск выполняется через межкластерный поиск, но доступные узлы отсутствуют.

Динамическая настройка удаленных кластеров

Используйте API для обновления настроек кластера, чтобы динамически настроить удаленные параметры на каждом узле кластера. Следующий запрос добавляет три удаленных кластера: cluster_one, cluster_two и cluster_three.

Параметр seeds указывает имя хоста и порт транспорта (по умолчанию 9300) узла-семени в удаленном кластере.

Параметр mode определяет конфигурируемый режим соединения, который по умолчанию равен sniff. Поскольку cluster_one не указывает mode, используется значение по умолчанию. И cluster_two, и cluster_three явно используют разные режимы.

PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "cluster_one": {
          "seeds": [
            "127.0.0.1:9300"
          ]
        },
        "cluster_two": {
          "mode": "sniff",
          "seeds": [
            "127.0.0.1:9301"
          ],
          "transport.compress": true,
          "skip_unavailable": true
        },
        "cluster_three": {
          "mode": "proxy",
          "proxy_address": "127.0.0.1:9302"
        }
      }
    }
  }
}

Вы можете динамически обновить параметры для удаленного кластера после начальной конфигурации. Следующий запрос обновляет параметры сжатия для cluster_two, а также параметры сжатия и расписания ping для cluster_three.

При изменении параметров сжатия или расписания ping все существующие соединения узлов должны закрыться и снова открыться, что может привести к сбоям входящих запросов.

PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "cluster_two": {
          "transport.compress": false
        },
        "cluster_three": {
          "transport.compress": true,
          "transport.ping_schedule": "60s"
        }
      }
    }
  }
}

Вы можете удалить удаленный кластер из настроек кластера, передав значения null для каждой настройки удаленного кластера. Следующий запрос удаляет cluster_two из настроек кластера, оставив cluster_one и cluster_three без изменений:

PUT _cluster/settings
{
  "persistent": {
    "cluster": {
      "remote": {
        "cluster_two": {
          "mode": null,
          "seeds": null,
          "skip_unavailable": null,
          "transport.compress": null
        }
      }
    }
  }
}

Статическая настройка удаленных кластеров

Если вы указываете настройки в elasticsearch.yml, только узлы с этими настройками могут подключаться к удаленному кластеру и обрабатывать запросы удаленного кластера.

Параметры удаленных кластеров, указанные с помощью API для обновления настроек кластера, имеют приоритет над настройками, которые вы указываете в elasticsearch.yml для отдельных узлов.

В следующем примере cluster_one, cluster_two и cluster_three — произвольные псевдонимы кластеров, представляющие подключение к каждому кластеру. Эти имена впоследствии используются для различения локальных и удаленных индексов.

cluster:
    remote:
        cluster_one:
            seeds: 127.0.0.1:9300
        cluster_two:
            mode: sniff
            seeds: 127.0.0.1:9301
            transport.compress: true      
            skip_unavailable: true        
        cluster_three:
            mode: proxy
            proxy_address: 127.0.0.1:9302 

Сжатие явно включено для запросов к cluster_two.

Отключенные удаленные кластеры необязательны для cluster_two.

Адрес прокси-конечной точки, используемой для подключения к cluster_three.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/remote-clusters-connect.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API