是否可以为群集发现和外部连接设置不同的IP
像这样:
我希望通过172.16.1.1x IP进行群集自动发现,并且外部日志源(例如logstash,fluentd或benchbase)将使用192.168.1.10 IP连接到群集。
这可能吗?如何配置
注意:
当前,我将ES作为docker容器运行,因此在network.publish_host
中,我使用的是主机计算机的IP(172.16.1.1x),并且自动发现效果很好。
我可以使用任何172.16.1.1x IP连接到群集,但是我想使用192.168.1.10连接到群集。
提前致谢
最佳答案
您需要将network.bind_host
更改为192.168.1.10。这意味着在外部,您只能从此IP连接到群集。
但是更好的方法是像使用nginx一样具有代理,并为3个节点提供负载平衡。您可以将nginx部署在服务器“192.168.1.10”上,并将您的节点用作负载平衡的上游服务器。
upstream elasticsearch {
server 172.16.1.10:9200 weight=1;
server 172.16.1.11:9200 weight=1;
server 172.16.1.12:9200 weight=1;
keepalive 15;
}
阅读有关使用nginx proxy here的更多信息。
在这种情况下,您需要将
network.bind_host
分别设置为172.16.1.10、172.16.1.11和172.16.1.12,或者将network.host
分别设置为172.16.1.10、172.16.1.11和172.16.1.12。使用nginx还将帮助您轻松保护集群。像logstash这样的外部工具可以使用http://192.168.1.10:yourNginxPort连接到集群
关于elasticsearch - Elasticsearch 多个发布主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29911071/