【问题标题】:Can't access my elasticsearch through public IP in EC2 instance无法通过 EC2 实例中的公共 IP 访问我的弹性搜索
【发布时间】:2019-12-23 08:16:11
【问题描述】:

我已经在我的 EC2 实例上部署了 elasticsearch(7.3 版本)服务。

  • 当我安装后 curl localhost:9200它给了我正确的响应,但是当我通过点击请求访问相同的服务时:http://{{public-ip-address-ec2-instance}}:9200

它给出的错误是:

无法访问此站点:{{public-ip-address-ec2-instance}} 连接被拒绝。

  • 我已经通过允许自定义 TCP 上的入站流量来配置 EC2 实例的安全组,该 TCP 设置为默认弹性搜索端口 9200,并且对 0.0.0.0/0 开放。

目前我还没有修改elasticsearch.yml,它只有默认值。

那么如何通过EC2实例的公网IP访问elasticsearch? 我需要对 elasticsearch 配置文件进行任何更改吗?

【问题讨论】:

  • 您的实例是否暴露在互联网上?您的子网需要一个 IGW 附件才能公开访问该计算机。
  • 是的,它暴露在互联网上。
  • 这似乎是一个连接问题。您能否使用telnetnc 测试与 9200 上特定 IP 的连接并验证结果?
  • 我可以通过 ICMP 端口从我的本地主机 ping 这个 EC2 实例。此外,我还有其他服务(如 ember)在此 EC2 实例上运行,并且我可以通过 EC2 实例的公共 IP 地址访问这些其他服务。
  • 您需要在您的elasticsearch.yml 配置文件中设置network.hostThis might help

标签: amazon-web-services elasticsearch networking amazon-ec2


【解决方案1】:

所以解决方法就是在elasticsearch.yml中修改如下设置:

network.host: 0.0.0.0
discovery.type: single-node

注意:仅当您有单个节点时才需要第二个设置。

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 2021-03-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多