java - 配置弹性搜索以侦听 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_:ipv4
,0.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
修复它。作品。
解决方案
我添加-Djava.net.preferIPv4Stack=true
到jvm.options
. 还添加cluster.initial_master_nodes: node-1
到 elasticsearch.yml。
推荐阅读
- c# - 使用 linq 在 C# 中将一个类合并和映射到另一个类
- rx-java2 - 为什么 RxJava2 中的 distinctUntilChanged() 会阻止具有不同 hashCode 的数据?
- java - 禁用级别日志 log4j
- c# - 如何将列表中的特定项目序列化为 JSON?
- python - 使用python使用来自Com端口的数据流写入文件后无法关闭文件
- node.js - node.js:gm 在传递太多数据时抛出 spawn E2BIG 错误
- css - CSS属性“包含:布局”使固定页脚不起作用
- javascript - 无法获取内容的画布 toDataURL
- amazon-web-services - S3 存储桶策略仅使某些文件类型公开可读
- java - 多级继承,试图访问超类