弹性search多个发布主机

是否可以为群集发现和外部连接设置不同的IP?

喜欢这个:

ES群集设置

我想要通过172.16.1.1x IP进行集群自动发现,而外部源(如logstash,fluentd或couchbase)将使用192.168.1.10 IP连接到集群。

这可能吗? 如何configuration这个

注:目前我运行的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。 这意味着您只能从外部连接到您的群集。

但是更好的方法是像使用nginx一样使用代理,并为3个节点提供负载平衡。 您可以在服务器“192.168.1.10”处部署nginx,并使用您的节点作为负载平衡的上游服务器。

 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代理 。

在这种情况下,您需要分别将network.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连接到集群