首页 > 解决方案 > 配置弹性搜索以侦听 0.0.0.0:9200 (IPV4)

问题描述

我一直在尝试使用弹性搜索(在 vpn 后面运行)来监听来自其他机器的传入port 9200请求ipv4。在不修改默认值的情况下elasticsearch.yml,我运行netstat并收到:

tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      8079/java
tcp6       0      0 ::1:9200                :::*                    LISTEN      8079/java
tcp6       0      0 127.0.0.1:9300          :::*                    LISTEN      8079/java
tcp6       0      0 ::1:9300                :::*                    LISTEN      8079/java

使用默认设置,我可以curl从机器内部很好地进行弹性搜索,但无法使用curl -XGET [IP]:9200( curl: (7) Failed to connect to [IP] port 9200: Connection refused)从外部连接 curl

我设置network.host: 0.0.0.0、停止并开始弹性搜索sudo systemctl start elasticsearch.service并等待了一两分钟,但没有任何内容在听0.0.0.0:9200。我也尝试过_local_:ipv40.0.0.0:ipv4但没有运气。


我添加-Djava.net.preferIPv4Stack=true到 jvm.options ,现在我得到(# network.port注释掉):

tcp        0      0 127.0.0.1:9200          0.0.0.0:*               LISTEN      11131/java
tcp        0      0 127.0.0.1:9300          0.0.0.0:*               LISTEN      11131/java

我尝试network.host: 0.0.0.0再次设置并重新启动服务,但现在我没有看到它在监听任何端口。

在日志文件中,我收到一个错误[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 设置已cluster.initial_master_nodes: node-1修复它。作品。

标签: javaelasticsearch

解决方案


我添加-Djava.net.preferIPv4Stack=truejvm.options. 还添加cluster.initial_master_nodes: node-1到 elasticsearch.yml。


推荐阅读