我在EC2上运行了elasticsearch,
我可以点击本地IP地址(例如curl -XGET localhost:9200)
我无法点击公共IP地址,无论是在同一台机器上,还是从我们的网络上,它总是超时,
IPtables允许
端口已打开(自身以及专用网络)
启用Elasticsearch http.cors并允许" *"
除了Iptables,amazon安全配置,elasticsearch配置还有什么我可以忽略的吗? (我们可以访问443并获得kibana,它只需要在elasticsearch ajax调用上超时或者如果我尝试直接访问9200)
一直在研究这一天,所以我谦卑地来找你们所有人!
谢谢
答案 0 :(得分:0)
我有完全相同的问题。
我设法按如下方式解决:
我确保在elasticsearch.yml文件中设置了以下内容: 一个。 http.enabled:是的 湾http.cors.enabled:true C。 http.cors.allow-origin:" *"
重新启动的elasticsearch(service elasticsearch restart)
然后,当我尝试从公共IP访问elasticsearch时,它起作用了 - http://[PUBLIC IP OF INSTANCE]:9200
希望这有帮助。
答案 1 :(得分:0)
我花了很多时间试图让这个工作成功。
设置:Elasticsearch 6.2.4,在Windows Server 2012,EC2实例上运行。
我还安装了discovery-ec2插件,现在不确定它是否是必需的,我的假设是,是的,它是必需的,虽然它允许的一些设置不是必须让它工作。
配置(.yml)。我尝试了大量不同的.yml配置设置,最终没有帮助,最后我认为主要设置是: network.host:0.0.0.0
我尝试将network.host设置为 ec2:privateIpv4 和 ec2:publicIpv4 (插件设置),但他们没有帮助。
我添加了所需的自定义TCP规则(允许9200和9300 ......不确定是否需要9300)。
它无法启动(通常绑定到9300错误)或已启动但无法公开访问。
修复。到底是什么让你必须也open the port in windows firewall。一旦我添加了入站规则,就将它连接起来:)
然后我删除了我一直在尝试的所有额外配置,重新启动Elasticsearch ......它仍然有效!