全部產品
Search
文件中心

Elasticsearch:v2叢集間通過配置執行個體網路互連實現跨叢集搜尋

更新時間:Nov 26, 2025

為了提升安全性,Elasticsearch(ES)執行個體間的網路預設是隔離的,因此使用跨叢集搜尋功能時,需要先打通兩個執行個體的網路。本文介紹如何通過配置執行個體網路互連來使用跨叢集搜尋功能。

適用範圍

兩個ES叢集之間實現跨叢集搜尋,首先要實現叢集間網路互連,需要滿足以下條件:

  • 兩個叢集的管控部署架構均為v2基礎管控架構,且處於同一VPC。

    ES 叢集存在三種管控部署模式,分別為基礎管控(v1架構)、基礎管控(v2架構)和雲原生新管控(v3架構),通過叢集基本資料頁查看叢集架構。

    image

  • 叢集為6.7.0及以上版本。

  • 同時開啟OpenStore和IndexingService服務的叢集和其他類型叢集不支援跨叢集搜尋。

  • 互連叢集數量限制:所有互連叢集即sum(叢集的角色個數 * 叢集的可用性區域個數)≤ 20

    樣本說明:A叢集需同時連通B、C叢集,每個叢集含3種角色(Master/協調/資料)、每個叢集部署在3個可用性區域。

    計算總和:(3角色 × 3可用性區域) × 3叢集 = 27 > 20 → 超出限制,A無法同時連通B和C。

操作步驟

步驟一:配置執行個體間網路互連

  1. 登入Elasticsearch控制台

  2. 在左側導覽列,單擊Elasticsearch執行個體

  3. 進入目標執行個體。

    1. 在頂部功能表列處,選擇資源群組和地區。

    2. Elasticsearch執行個體中單擊目標執行個體ID。

  4. 在左側導覽列,選擇 配置與管理 > 安全配置

  5. 叢集網路設定地區,單擊右側的配置執行個體網路互連右側的修改

  6. 修改配置頁面,單擊添加執行個體

  7. 添加執行個體對話方塊中,選擇待互連的遠程執行個體。

    重要
    • RAM使用者需要ListInstance許可權才能擷取相應阿里雲帳號下的所有執行個體。詳細資料,請參見Elasticsearch授權資源

    • 配置執行個體間網路互連後,在遠程執行個體的配置執行個體網路互連頁面,也可以看到當前執行個體。即網路打通操作是雙向的,如果A執行個體配置了與B執行個體的網路互連,則B執行個體的網路也與A執行個體進行了打通。

  8. 單擊確認

    添加成功後,可在修改配置頁面查看與當前執行個體打通的執行個體列表。

    說明

    添加互連執行個體後,如果不再使用,可單擊移除,移除該互連執行個體。

步驟二:配置跨叢集搜尋

在實際業務中,配置完執行個體網路互連後,您需要繼續配置跨叢集搜尋,才能在當前執行個體中搜尋遠程執行個體的資料。

  1. 在遠程Elasticsearch執行個體中,準備測試資料。

    說明

    此步驟的作用是方便您驗證跨叢集搜尋功能,如果您的遠程執行個體中已有待測試的資料,可忽略此步驟。

    1. 登入遠程Elasticsearch執行個體的Kibana控制台,根據頁面提示進入Kibana首頁。

      登入Kibana控制台的具體操作,請參見登入Kibana控制台

      說明

      本文以Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請以實際介面為準。

    2. 在左側導覽列,單擊Dev Tools

    3. Console中,執行以下命令,在遠程執行個體中建立索引和文檔,並插入資料。

      本文的命令樣本如下:

      1. 建立索引

        PUT /twitter
        {
            "settings" : {
                "index" : {
                    "number_of_shards" : 3, 
                    "number_of_replicas" : 2 
                }
            }
        }
      2. 建立文檔並插入資料

        POST twitter/_doc/
        {
            "user" : "kimchy",
            "post_date" : "2009-11-15T14:12:12",
            "message" : "trying out Elasticsearch"
        }
  2. 在當前Elasticsearch執行個體中,配置跨叢集搜尋,並驗證是否配置成功。

    1. 參見步驟一,登入當前Elasticsearch執行個體的Kibana控制台,執行以下命令,在當前執行個體中配置跨叢集搜尋。

      以下為Elasticsearch 6.7版本的配置樣本,其他版本與此類似。詳細資料,請參見Elasticsearch 7.x版本跨叢集搜尋Elasticsearch 6.3版本跨叢集搜尋Elasticsearch 5.5版本跨叢集搜尋

      使用節點IP地址配置跨叢集搜尋樣本如下:

      PUT _cluster/settings
      {
        "persistent": {
          "cluster": {
            "remote": {
              "cluster_one": {
                "seeds": [
                  "10.8.xx.xx:9300",
                  "10.8.xx.xx:9300",
                  "10.8.xx.xx:9300"
                ]
              }
            }
          }
        }
      }

      節點IP地址可在執行個體的基本資料頁面的節點可視化地區擷取,詳細資料請參見查看叢集狀態和節點資訊

      重要
      • 不支援使用網域名稱方式配置跨叢集搜尋。

      • 如果在當前Elasticsearch執行個體中,配置了遠程Elasticsearch執行個體的節點IP地址(跨叢集搜尋),則只可在當前執行個體中查詢遠程執行個體的索引資料,無法在遠程執行個體中執行類似命令反向訪問。如果需要反向訪問,需要在遠程執行個體中配置當前執行個體的節點IP地址。

    2. 執行以下命令,驗證跨叢集搜尋是否配置成功。

      POST /cluster_one:twitter/_doc/_search
      {
        "query": {
          "match_all": {}
        }
      }

      驗證成功後,返回如下結果。

      {
        "took" : 78,
        "timed_out" : false,
        "_shards" : {
          "total" : 3,
          "successful" : 3,
          "skipped" : 0,
          "failed" : 0
        },
        "_clusters" : {
          "total" : 1,
          "successful" : 1,
          "skipped" : 0
        },
        "hits" : {
          "total" : 1,
          "max_score" : 1.0,
          "hits" : [
            {
              "_index" : "cluster_one:twitter",
              "_type" : "_doc",
              "_id" : "qudxxxxxxxxxx_7ie6J",
              "_score" : 1.0,
              "_source" : {
                "user" : "kimchy",
                "post_date" : "2009-11-15T14:12:12",
                "message" : "trying out Elasticsearch"
              }
            }
          ]
        }
      }