為了提升安全性,Elasticsearch執行個體間的網路預設是隔離的,因此使用跨叢集搜尋功能時,需要先打通兩個執行個體的網路。本文介紹如何通過配置執行個體網路互連來使用跨叢集搜尋功能。
前提條件
已建立待互連的源和目標Elasticsearch執行個體,且待互連的兩個執行個體需要滿足以下條件。具體操作,請參見建立Elasticsearch執行個體。
歸屬於相同帳號。
版本相同。
重要Elasticsearch 8.x、7.16版本執行個體和部分7.10、6.7版本執行個體不支援配置網路互連,實際以控制台為準。
部署在同一個專用網路中。
同為單可用性區域執行個體,或同為多可用性區域執行個體。
在同一網路架構下。
2020年10月,Elasticsearch對網路架構進行了調整。2020年10月之前為舊網路架構,2020年10月及之後為新網路架構。
對於華北3(張家口)和海外地區,由於網路架構調整時間不確定,因此需要提交工單,聯絡Elasticsearch支援人員,校正網路是否可以互連。
新網路架構下的執行個體不支援與舊網路架構下的執行個體進行跨叢集reindex、跨叢集搜尋、跨叢集複製等執行個體互連操作。
操作步驟
步驟一:配置執行個體間網路互連
- 登入Elasticsearch控制台。
- 在左側導覽列,單擊Elasticsearch執行個體。
- 進入目標執行個體。
- 在頂部功能表列處,選擇資源群組和地區。
- 在Elasticsearch執行個體中單擊目標執行個體ID。
在左側導覽列,選擇 。
在叢集網路設定地區,單擊配置執行個體網路互連右側的修改。
在修改配置頁面,單擊添加執行個體。
在添加執行個體對話方塊中,選擇待互連的遠程執行個體。
重要RAM使用者需要ListInstance許可權才能擷取相應阿里雲帳號下的所有執行個體。詳細資料,請參見Elasticsearch授權資源。
配置執行個體間網路互連後,在遠程執行個體的配置執行個體網路互連頁面,也可以看到當前執行個體。即網路打通操作是雙向的,如果A執行個體配置了與B執行個體的網路互連,則B執行個體的網路也與A執行個體進行了打通。
單擊確認。
添加成功後,可在修改配置頁面查看與當前執行個體打通的執行個體列表。
說明添加互連執行個體後,如果不再使用,可單擊移除,移除該互連執行個體。
步驟二:配置跨叢集搜尋
在實際業務中,配置完執行個體網路互連後,您需要繼續配置跨叢集搜尋,才能在當前執行個體中搜尋遠程執行個體的資料。
在遠程Elasticsearch執行個體中,準備測試資料。
說明此步驟的作用是方便您驗證跨叢集搜尋功能,如果您的遠程執行個體中已有待測試的資料,可忽略此步驟。
登入遠程Elasticsearch執行個體的Kibana控制台,根據頁面提示進入Kibana首頁。
登入Kibana控制台的具體操作,請參見登入Kibana控制台。說明 本文以Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請以實際介面為準。在左側導覽列,單擊Dev Tools。
在Console中,執行以下命令,在遠程執行個體中建立索引和文檔,並插入資料。
本文的命令樣本如下:
建立索引
PUT /twitter { "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } } }
建立文檔並插入資料
POST twitter/_doc/ { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }
在當前Elasticsearch執行個體中,配置跨叢集搜尋,並驗證是否配置成功。
參見步驟一,登入當前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地址。
執行以下命令,驗證跨叢集搜尋是否配置成功。
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" } } ] } }