是否可以为群集发现和外部连接设置不同的IP
像这样:
我希望通过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连接到集群。
提前致谢
答案 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
连接到群集