弹性搜索多个发布主机

时间:2015-04-28 05:33:24

标签: elasticsearch docker cluster-computing

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

像这样:

ES Cluster Setup

我希望通过172.16.1.1x IP发生群集自动发现,并且外部源(如logstash,fluentd或couchbase)将使用192.168.1.10 IP连接到群集。

这可能吗?如何配置

注意: 目前我正在运行ES作为docker容器,所以在network.publish_host我正在使用主机的IP(172.16.1.1x)并且自动发现表现良好。 我可以使用任何一个172.16.1.1x IP连接到集群,但我想使用192.168.1.10连接到集群。

提前致谢

1 个答案:

答案 0 :(得分:1)

您需要将full_name = ["prabhu chaitanya","raghu varma", "satish venkey"] 更改为192.168.1.10。这意味着您只能从外部连接到群集。

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

network.bind_host

详细了解如何使用nginx proxy here

在这种情况下,您需要将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; } 分别设置为172.16.1.10,172.16.1.11和172.16.1.12,或者将network.bind_host设置为172.16.1.10,172.16.1.11和172.16.1.12。使用nginx还可以帮助您轻松保护群集。

logstash等外部工具可以使用http://192.168.1.10:yourNginxPort

连接到群集