为什么我们需要设置发布地址[network.host]值

时间:2016-09-06 13:17:06

标签: elasticsearch ip-address distributed

如果未在此属性中设置框的IP地址,则无法发现弹性搜索: network.host

为什么它只能绑定到盒子的ip地址(就像在应用程序服务器中一样,就像其他应用程序一样)。 为什么甚至有绑定到特定IP地址的规定?

3 个答案:

答案 0 :(得分:1)

此更改已在2.0中引入,如breaking changes > network changes文档中所述:

  

此更改会阻止Elasticsearch尝试连接到网络上的其他节点,除非您明确告知它这样做。迁移到生产时,您应该配置network.host参数

当时ES人员还发布了blog article来解释此更改的根本原因,即主要是为了防止您的节点意外绑定到网络上可用的其他群集。

答案 1 :(得分:1)

重要的关键属性是network.publish_host。您可以通过network.host间接配置它。发布主机是节点向其他节点通告的地址,作为加入群集时要到达的地址。因此,它需要是可以从其他节点访问的东西。例如。 127.0.0.1不适用于此;同样,负载均衡地址也不会起作用。

另见documentation for these properties

许多服务器具有多个网络接口,并且在此更改之前存在一个常见问题,即Elasticsearch为发布主机选择了错误的一个,然后无法集群,因为节点最终向彼此通告了错误的地址。由于Elasticsearch无法知道正确的界面,因此您必须告诉它。

答案 2 :(得分:0)

要在本地网络上运行单个节点,我将这些添加到我的网络中 不发表评论或评论 elasticsearch.yml

http.port: 9201
http.bind_host: 192.168.1.172 #works

http.port: 9201
http.publish_host: 192.168.1.172 #by itself does not work
http.host: 192.168.1.172 #works alone