為了提升安全性,阿里云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" } } ] } }