【问题标题】:elasticsearch on Ec2 cannot hit public IP(timeout)Ec2 上的 elasticsearch 无法访问公共 IP(超时)
【发布时间】:2018-10-24 10:32:31
【问题描述】:

我在 EC2 上运行 elasticsearch,

我可以点击本地 IP 地址(例如 curl -XGET localhost:9200)

我无法从公共 IP 地址访问,无论是在同一台机器上,还是从我们的网络,它总是超时,

IPtables 允许

端口是开放的(对自己以及私有网络)

Elasticsearch http.cors 已启用并允许“*”

除了 Iptables、amazon 安全配置、elasticsearch 配置之外还有什么我忽略的吗? (我们可以访问 443 并启动 kibana,它只是在 elasticsearch ajax 调用或我尝试直接访问 9200 时超时)

已经为此工作了一天多,所以我很谦虚地来找你们!

谢谢

【问题讨论】:

  • 再次检查您的 amz 安全配置并确保端口允许从源(或 0.0.0.0)用于 tcp。重新启动虚拟机。

标签: amazon-ec2 elasticsearch


【解决方案1】:

我遇到了完全相同的问题。

我设法解决了它:

  1. 按照TJ 在他的评论中说的做,+ 重启实例。我不确定这是否/是否必要,但我这样做是为了很好的衡量标准。
  2. 我确保在 elasticsearch.yml 文件中设置了以下内容: 一个。 http.enabled: 真 湾。 http.cors.enabled:真 C。 http.cors.allow-origin: "*"

  3. 重启elasticsearch(服务elasticsearch重启)

然后,当我尝试从公共 IP 访问弹性搜索时,它起作用了 - http://[PUBLIC IP OF INSTANCE]:9200

希望这会有所帮助。

【讨论】:

  • 原来是一个流氓防火墙与亚马逊安全配置混合,导致问题!我讨厌在没有记录的盒子上工作哈哈
【解决方案2】:

我只是花了很多时间试图让它工作并且成功了。

设置:Elasticsearch 6.2.4,在 Windows Server 2012、EC2 实例上运行。

我还安装了 discovery-ec2 插件,现在不确定是否需要它,我的假设是,是的,虽然它允许的某些设置不是让它工作所必需的。

配置 (.yml)。我尝试了大量不同的 .yml 配置设置,但最终都没有帮助,最后我认为主要设置是: network.host: 0.0.0.0

我尝试将 network.host 设置为 ec2:privateIpv4ec2:publicIpv4(插件设置),但它们没有帮助。

我已经添加了所需的自定义 TCP 规则(允许 9200 和 9300...不确定是否需要 9300)。

要么启动失败(通常与 9300 错误绑定),要么启动但无法公开访问。

修复。最终使它起作用的是您必须open the port in windows firewall。一旦我添加了入站规则,它就连接了:)

然后我删除了我一直在尝试的所有额外配置,重新启动了 Elasticsearch……它仍然有效!

【讨论】:

    猜你喜欢
    • 2020-11-03
    • 2020-12-10
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2023-03-16
    • 2021-07-06
    • 2018-07-29
    • 1970-01-01
    相关资源
    最近更新 更多