elasticsearch - Elasticsearch 多个发布主机

标签 elasticsearch docker cluster-computing

是否可以为群集发现和外部连接设置不同的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/

相关文章:

python - Mpi4py代码不会停止运行

ruby-on-rails - 如何测试轮胎indexed_json结果?

elasticsearch - 将输出设置为文件时,Filebeat无法启动

java - 从 txt 文件发送电子邮件的 JBoss 集群服务

即使节点处于就绪状态,Kubernetes pod 也不会启动

docker - dotnet 核心限制内存使用

javascript - Elasticsearch JS - 变量 [x] 未定义

Elasticsearch 快照无法在 DFS 挂载驱动器上完成

docker -/var/jenkins_home/workspace/John-Test@tmp/durable-2e590c15/script.sh:第1行:docker:未找到

Docker 撰写错误 - "wait-for-it.sh: no such file or directory"