如果是docker启动的kibana,elasticsearch.hosts这儿怎么配多个地址?

帮帮忙。

我看你在别人下面评论:

如果是docker启动的kibana,elasticsearch.hosts这儿怎么配多个地址?

docker run --name kibana -d --restart=always -p 5601:5601 \ -e ELASTICSEARCH_HOSTS=http://es1:9200,http://es2:9200,http://es3:9200 \ -e I18N_LOCALE=zh_CN \ -v /etc/localtime:/etc/localtime:ro \ elastic/kibana:7.5.1 这样会报错expected value of type [array] but got [string] 加了中括号双引号也不行

这个问题,你最后是怎么解决的?感谢

  1. 一般的连接如果是多个地址是用list,可以尝试下:
    ELASTICSEARCH_HOSTS=[http://es1:9200,http://es2:9200,http://es3:9200]
    
  2. 如果上述方法不行,可以选择集群中的任意一个node节点地址,局限性是当这台节点异常则无法使用
  3. 简单一点的对集群三个节点做负载均衡,提供LB的访问地址,后端监控规则根据端口可达性做健康检测,假设1不可达,则将其中负载中剔除;或者根据 es访问地址/_cat/nodes 获取节点信息,对其进行处理来剔除或恢复负载。