ES跨集群搜索(CSS)

328 阅读2分钟

1、背景:

目前,公司服务的客户方基本都搭建了elk日志服务,且都位于内网环境,客户会在开放一些端口供外网访问,或者使用一些内网穿透的手段通过外网访问内网。内网环境都会有一个kibana。公司自己的服务也会搭建日志服务,且是在公网上。所以需求是通过配置在公网的kibana上访问所有客户的日志服务,通过一个kibana去配置不同的看板用于区分每个客户的日志。这样做的好处是可以不用记忆那么多客户的日志网址与相关用户认证,方便日志查询。

据调研,发现es提供了一个名为跨集群搜索(CSS)的功能,它的目的是解决集群水平扩展存在上限的问题,比如说我有一个索引,存在一个集群中,当我一开始指定的主分片数比较少时,集群可能在将来扩展就达到了一个极限,那索引会持续增大,我需要再搭建集群,将数据分散到第二个集群中去。此时解决了扩展的问题,但面临了查询的问题,查询一个索引的完整数据时,需要跨集群进行查询,恰巧es提供了这个功能。但是我这里不是这么使用的,我只是想使用一个kibana去向不同的集群查询数据,每个集群的数据是独立的,不是一个索引。

2、准备:

对于跨集群搜索也是基于es来做的,由于我们的集群都是有安全认证的,所以需要准备一份集群间通过9300端口通信的证书。让每个集群都使用相同的证书。证书生成参考es集群搭建

3、基于kibana配置跨集群搜索:

image.png

image.png 在如上图所示位置,添加一个远程集群配置,我使用了代理,就使用proxy,没用就不用打开。集群名称要唯一。

在创建看板(数据视图)时,要想看到远程集群的索引,则需要使用集群名称,比如集群名称为cluster1,上面有个索引,名为test,则索引模式中使用cluster1:test就可以匹配到该集群的索引。 image.png