【发布时间】:2020-05-22 02:41:37
【问题描述】:
我在尝试通过 EC2 实例公共 ip (即curl [PUBLIC_IP]:9200)从本地 linux 机器上连接到 EC2 实例上的 Elasticsearch (ES) 时遇到问题
我按照本指南中的步骤操作:https://github.com/miztiik/elk-stack/tree/master/ElasticSearch。
我的ES版本是6.8.9
以下是有效的和无效的:
-
在 ES EC2 实例上:
curl localhost:9200有效 -
在具有相同 VPC 的另一个实例上:
curl [PUBLIC_IP]:9200有效 -
在我的本地 linux 机器上:
curl [PUBLIC_IP]:9200不起作用,但telnet [PUBLIC_IP] 9200起作用,即它连接并给了我转义字符 '^]'
我的 /etc/elasticsearch/elasticsearch.yml 配置有以下内容:
http.enabled: true
http.port: 9200
network.host: 0.0.0.0
http.cors.allow-origin: "*"
http.cors.enabled: true
只有一个(新)安全组附加到 EC2 实例,它具有以下入站规则:
我还确认 EC2 实例位于公共子网中,即连接到互联网网关。
感谢您的帮助。
更新
我还在实例上安装了 Apache httpd 并重新检查了所有内容。这是目前的情况:
- 我可以从外部 ping、telnet 和连接到 Web 服务器 (:80)。
- 我无法从外部连接到 Elasticsearch (:9200) 或 Kibana (:5601)。然而,所有这些我都可以在另一个实例的 VPC 中完成。
【问题讨论】: