kibana连接elasticsearch集群做负载均衡

时间:2021-10-30 21:37:56

问题背景

在ELK架构中,kibana一般配置连接elasticsearch的时候,配置文件中的写法一般如下:

……
# The URL of the Elasticsearch instance to use for all your queries.
elasticsearch.url: "http://192.168.1.1:9200"
……

那么假如我的elasticsearch是一个集群模式,有多个elasticsearch节点(以下简称es),kibana想连多台es节点,那怎么处理呢?

到目前为止(官方目前最新版本是6.4),官方的意思是:暂不支持连接多个es节点,也就是上面的配置文件中,只能填写一个地址。

解决办法

虽然格式上不支持的填写多个es节点地址,但是官方也给出了另外一种方案:搭建一个只用来“协调”的es节点,让这个节点加入到es集群中,然后kibana连接这个“协调”节点,这个“协调”节点,不参加主节点选举,也不存储数据,只是用来处理传入的HTTP请求,并将操作重定向到集群中的其他es节点,然后收集并返回结果。这个“协调”节点本质上也起了一个负载均衡的作用。

详见官方文档:

https://www.elastic.co/guide/en/kibana/6.4/production.html#load-balancing