当我在本地主机 IP 上执行 curl 时它正在工作,但是当我在节点 IP 上执行时。它显示以下错误(curl:(7)无法连接到 192.168.21.221:9200;连接被拒绝)。
在 netstat 中,端口只监听环回地址
[root@elk ~]# netstat -tnlpu | grep 9200 tcp6 0 0 127.0.0.1:9200 :::* LISTEN 14968/java tcp6 0 0 ::1:9200 :::* LISTEN 14968/java
- 当我对/etc/elasticsearch/elasticsearch.yml 文件应用以下更改并重新启动 elasticsearch 服务时,它失败了
network.host: 0.0.0.0 network.host: [_local_, _site_, _global_] network.host: 0.0.0.0 network.bind_host: 0.0.0.0 network.publish_host: 0.0.0.0
最佳答案
由于 OP 没有提到错误,我假设他尝试添加以下配置,这将触发生产 Bootstrap 检查作为 network.host: 0.0.0.0
意味着在生产环境中运行,因为您没有将其绑定(bind)到环回地址。
很可能 OP 必须低于错误:
ERROR: 1 bootstrap checks failed 1: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
要解决它,请在 elasticsearch.yml
中添加以下配置
discovery.type: single-node
有关 single-node in this answer 的更多信息在此之后,如果您遇到与 VM 内存相关的问题,请以根用户身份运行命令。
sysctl -w vm.max_map_count=262144
请在命令后注明 netstat -tnlpu | grep 9200
表明它没有在监听环回地址。
tcp6 0 0 :::9200 :::*
LISTEN 17247/java
您也可以用您的 curl <your-ip>:9200
查看它命令。
关于linux - Elasticsearch 7.6 监听环回地址但不监听服务器 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60747257/