【问题标题】:Unable to connect to Elasticsearch through aws public IP无法通过 aws 公共 IP 连接到 Elasticsearch
【发布时间】:2016-03-10 12:33:44
【问题描述】:

我在 EC2 (Fedora) 上运行 elasticsearch,

我无法使用公共 ip 或主机名进行外部连接。

ElasticSearch 正确启动,我可以使用以下命令在机器上本地访问: curl -XGET http://localhost:9200

{
  "name" : "Prodigy",
  "cluster_name" : "awstutorialseries",
  "version" : {
    "number" : "2.1.0",
    "build_hash" : "72cd1f1a3eee09505e036106146dc1949dc5dc87",
    "build_timestamp" : "2015-11-18T22:40:03Z",
    "build_snapshot" : false,
    "lucene_version" : "5.3.1"
  },
  "tagline" : "You Know, for Search"
}

我确实按照此处说明的所有步骤操作:elasticsearch on Ec2 cannot hit public IP(timeout)

喜欢

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

我可以连接kibana 但是连接不上elasticsearch

我的入站和出站对于这个实例是敞开的:

这是我的 elasticsearch.yml 文件

【问题讨论】:

  • 你能显示你的elasticsearch.yml文件内容吗?
  • 您正确地在防火墙上戳了一个洞,但没有人在监听该端口。如果服务器配置为侦听127.0.0.1,则可能会发生这种情况。将其更改为0.0.0.0 即可。
  • @BraveNewCurrency 谢谢它解决了我的问题

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


【解决方案1】:

对于 EC2,您需要安装由 elasticsearch 提供的 AWS 插件。安装插件后,您需要从 EC2 生成密钥和访问密钥。 This 链接应该可以帮助您生成所需的密钥。 之后,您需要在 elasticsearch.yml 中配置以下设置:network.host: ec2,network.publish_host: "", discovery.type: ec2,cloud.aws.access_key: , cloud.aws .secret_key: ,discovery.ec2.groups: ,discovery.ec2.host_type: "public_ip", discovery.ec2.ping_timeout: "10s"

这应该可以让您启动并运行。使用您机器的 IP 地址从您的客户端连接。

【讨论】:

  • 同时添加 discovery.zen.ping.multicast.enabled: false, discovery.zen.ping.unicast.hosts: [ ]
猜你喜欢
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
相关资源
最近更新 更多