如何更改Elasticsearch网络主机

9

我在我的虚拟机上安装了ES,它的操作系统是centos 7。它的network.host绑定到了本地主机。我可以通过9200端口浏览。

我的问题是我将网络主机更改为:0.0.0.0(这样我就可以从我的主机PC获取公共访问)。服务已经启动但端口没有监听。

我想从我的主机PC访问ES。
我应该如何更改network.host呢?


使用 netstat -ntlp 命令检查开放端口。检查 ES 日志。 - Manish R
看一下这个 https://dev59.com/wlsW5IYBdhLWcg3w7KtL#34461159?noredirect=1#comment77157976_34461159。 - Manish R
我已经尝试了,但是那并没有成功。端口没有监听这个,network.bind_host: 0 http.cors.allow-origin: "*" http.cors.enabled: true - vish
5个回答

32

我在 Elasticsearch 7.3.0 版本中遇到了相同的问题。如下所示,在 /etc/elasticsearch/elasticsearch.yaml 中加入以下数值,问题得以解决。

network.host: 127.0.0.1
http.host: 0.0.0.0

2
Windows用户可能会发现配置文件不更新无法工作。我发现在ES_CONFIG中有一个环境变量指向应用程序数据。使用这些详细信息更新配置文件即可解决问题。 - Luke

6

如果您计划设置 network.host 为除默认值(127.0.0.1)之外的其他值,则需要在 /etc/elasticsearch/elasticsearch.yml 文件中更改以下细节:

  • network.host: 0.0.0.0
  • discovery.seed_hosts: []

1
我尝试了许多从互联网上找到的不同方法来强制Elastic侦听0.0.0.0,只有这个方法帮助了我。非常感谢! - Anton
1
一样的情况,没有discover.seed_hosts这行就无法工作。谢谢! - Luke Belbina

5
查看Elasticsearch的网络设置文档,似乎0.0.0.0不是network.host的有效设置。
尝试使用特殊值_global_。因此,您的elasticsearch.yaml部分可能如下所示:
network:
  host: _global_
这应该告诉Elasticsearch在所有网络接口上监听。

我已经更改了服务,但它无法启动。再次更改为localhost后就可以正常工作了。我的目标是使用安装在另一台服务器上的Logstash将日志发送到运行在另一台服务器上的ES。 - vish
按照以下说明解决了问题。IP更改后,ES上的内存锁定无法正常工作。 https://dev59.com/ElcO5IYBdhLWcg3w-V70 - vish

1
如果您的应用程序运行在AWS上,而Elasticsearch运行在不同的主机上,您需要将network.host设置为您的AWS私有IP地址。这对我很有效。

1
自 Elastic Search 7.3 版本以来,需要添加以下行:
cluster.initial_master_nodes: node-1
network.host: 0.0.0.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接