跨集群搜索
功能概述
跨集群搜索是通过本地集群向一个或多个远程集群发起搜索请求,可实现对存储在不同数据中心集群的日志数据进行筛选和分析。
其工作原理是在本地集群中配置一个或多个远程集群,并且仅连接到远程集群中有限数量的节点。每个远程集群都有一个名称和一个种子节点 seed nodes 的列表引用。这些种子节点 seed nodes 用于发现远程集群中作为网关节点 gateway nodes 的节点。本地集群中配置远程集群的每个节点都连接到一个或多个网关节点 gateway nodes,并使用它们将搜索请求发送到远程集群。
跨集群搜索更多的使用方法和说明,请参见 官方文档。
本小节主要介绍在多个集群间如何跨集群搜索。
操作步骤
步骤一:创建并添加远端集群
-
创建 2 个 远端 OpenSearch 集群,分别名为
opensearch-r1,opensearch-r2,详情参考创建 OpenSearch 集群。 -
记录远端集群的 OpenSearch 热节点 IP 地址分别为
172.22.2.47与172.22.2.51。 -
登录本地集群的 Dashboard。详情可参考如何登录 OpenSearch Dashboard。
-
Dev Tools 的 Console 页面,执行如下语句,添加远端集群信息。
PUT _cluster/settings { "persistent": { "search": { "remote": { "cluster_one": { "seeds": [ "172.22.2.47:9300" ] }, "cluster_two": { "seeds": [ "172.22.2.51:9300" ] } } } } }-
一个
seeds字段下填写远端集群的 OpenSearch 节点 IP 地址,可设置一个或多个,设置多个节点可确保搜索的高可用。 -
9300为 OpenSearch 节点之间的传输端口。无需修改。IP 地址根据实际情况进行修改。
-
步骤二:向远端集群存入文档
-
登录远端 OpenSearch 集群
opensearch-r1的 Dashboard。详情可参考如何登录 OpenSearch Dashboard。 -
Dev Tools 的 Console 页面,执行如下语句,创建索引并存入文档。
PUT /mydata/_doc/0 { "msg": "你好,世界!" } -
登录远端 OpenSearch 集群
opensearch-r2的 Dashboard。详情可参考如何登录 OpenSearch Dashboard。 -
Dev Tools 的 Console 页面,执行如下语句,创建索引并存入文档。
PUT /mydata/_doc/1 { "msg": "Hello, world!" }
步骤三:查询远端索引
-
登录本地集群的 Dashboard。详情可参考如何登录 OpenSearch Dashboard。
-
Dev Tools 的 Console 页面,执行如下语句,执行以下语句查询远端索引。
GET /cluster_one:mydata/_search GET /cluster_two:mydata/_search GET /cluster_one:mydata,cluster_two:mydata/_search -
示例回显结果如下,即查询成功。
"max_score" : 1.0, "hit" : [ { "_index" :"cluster_one:mydata", "_type" : "_doc", "_id" : "0", "_score" : 1.0, "_source" :{ "msg" : "你好,世界!" } }, { "_index" :"cluster_two:mydata", "_type" : "_doc", "_id" : "1", "_score" : 1.0, "_source" :{ "msg" : "Hello, world!" } }, ]