如果 Elasticsearch 集群有多个节点,分发 Kibana 节点之间请求的最简单的方法就是在 Kibana 机器上运行一个 Elasticsearch 协调(Coordinating only node) 的节点。Elasticsearch 协调节点本质上是智能负载均衡器,也是集群的一部分,如果有需要,这些节点会处理传入 HTTP 请求,重定向操作给集群中其它节点,收集并返回结果。更多详细信息,请参考 节点 部分。
使用本地客户端节点负载均衡 Kibana 请求:
-
在安装 Kibana 的机器上安装 Elasticsearch。
-
配置节点为协调节点。在配置文件
elasticsearch.yml
中,设置node.data
、node.master
和node.ingest
为false
:# 3. You want this node to be neither master nor data node nor ingest node, but # to act as a "search load balancer" (fetching data from nodes, # aggregating results, etc.) # node.master: false node.data: false node.ingest: false
-
设置客户端节点接入 Elasticsearch 集群。在配置文件
elasticsearch.yml
中,通过cluster.name
选项设定集群名字。cluster.name: "my_cluster"
-
检查
elasticsearch.yml
中的 transport 和 HTTP 主机配置:network.host
和transport.host
。transport.host
需要为集群中其它成员网络可达,network.host
是访问 Kibana 的 HTTP 网络连接(默认为 localhost:9200 )。network.host: localhost http.port: 9200 # by default transport.host refers to network.host transport.host: <external ip> transport.tcp.port: 9300 - 9400
-
请确认 Kibana 设置为指向本地客户端节点。在配置文件
kibana.yml
中,elasticsearch.url
应设为localhost:9200
。# The Elasticsearch instance to use for all your queries. elasticsearch.url: "http://localhost:9200"