【问题标题】:ElasticSearch Connection Timed Out in EC2 InstanceEC2 实例中的 ElasticSearch 连接超时
【发布时间】:2021-04-13 07:38:15
【问题描述】:

我正在一个单个 EC2 实例中设置一个 ELK 堆栈(由 ElasticSearch、LogStash 和 Kibana 组成)。 AWS EC2 实例。我正在关注 elastic.co 网站上的文档。

TL;DR;我无法从 Web URL 访问托管在 EC2 中的 ElasticSearch 界面。如何解决?

类型:m4.large
vCPU : 2
内存:8 GB
存储:25 GB (EBS)

注意:我已在 VPC 内 配置 EC2 实例并使用弹性 IP

我已经安装了所有 3 个组件。 ElasticSearch 和 LogStash 作为服务运行,而 Kibana 通过 kibana-7.10.1-linux-x86_64/ 目录中的命令 ./bin/kibana 运行。

当我使用卷曲 ElasticSearch 端点时

curl http://localhost:9200 

我得到这个 JSON 输出。 (这意味着服务正在运行并且可以通过端口 9200 访问)。

但是,当我尝试通过浏览器访问相同的 URL 时,我收到一条错误消息

连接超时

这不是应该返回与我上面提到的相同的 JSON 输出吗?

我已在此处附上elasticsearch.yml 文件(托管在 gofile.io 中)。

这是 EC2 实例的入站规则。

编辑:我尝试更改 network.host: 'localhost'network.host: 0.0.0.0 并重新启动服务,但这次我在启动服务时遇到错误。我附上了那个截图。

编辑 2 :我已将 updated elasticsearch.yml 上传到 Gofile.org)。

【问题讨论】:

    标签: elasticsearch amazon-ec2 logstash kibana elastic-stack


    【解决方案1】:

    问题在于您的elasticsearch.yml 配置文件中的以下行:

    node.name: node-1
    network.host: 'localhost'
    

    使用该配置,您的 ES 集群只能从同一主机访问,而不能从外部访问。根据official documentation,您需要指定0.0.0.0或特定的可公开访问的IP地址,否则将不起作用。

    请注意,您还需要configure the following two lines 才能正确形成集群:

    discovery.seed_hosts: ["node-1-ip-address"]
    
    # Bootstrap the cluster using an initial set of master-eligible nodes:
    cluster.initial_master_nodes: ["node-1"]
    

    【讨论】:

    • 感谢您的回答,但设置 0.0.0.0 给了我一个错误,这次是在启动服务时。我编辑了问题并附加了相关的屏幕截图。
    • 我会检查一下并回复您。谢谢!
    • 我试过了,它修复了服务启动问题。该服务再次运行。但是,我仍然无法通过 Web URL 连接到 9200 端口。
    • 另外,通过节点,您的意思是同一个 EC2 实例本身,对吧?
    • 您需要一个公共 IP 地址才能从外部连接,即不能以 10.x.y.z 开头
    猜你喜欢
    • 2011-06-18
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2020-11-18
    • 2011-08-23
    • 1970-01-01
    相关资源
    最近更新 更多