无法连接到XX.XX.XXX.XX端口9200:EC2上的连接被拒绝

时间:2019-05-26 09:43:23

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

我已经在EC2 Ubuntu 14服务器上安装了Elasticsearch。

我可以看到它正在运行:

elastic@ip-xxx-xx-xx-xxx:~$ curl -get localhost:9200
{
  "name" : "ip-xxx-xx-xx-xxx",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "V6axWUV9SoqABC8sX62XMQ",
  "version" : {
    "number" : "7.0.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "e4efcb5",
    "build_date" : "2019-04-29T12:57:03.145736Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.7.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

我已将其添加到安全组:

但是我无法从远程连接:

C:\>curl -get http://XX.XX.XXX.XX:9200/
curl: (7) Failed to connect to XX.XX.XXX.XX port 9200: Connection refused

netstat -nlp | grep 9200:

tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      29467/java   
tcp6       0      0 ::1:9200                :::*                    LISTEN      29467/java 

这是删除所有注释后的elasticsearch.yml的内容:

path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

2 个答案:

答案 0 :(得分:0)

请在elasticsearch.yml中添加以下行,然后重新启动elasticsearch服务:

network.host: xxx.xxx.xxx.xxx 

xxx.xxx.xxx.xxx是您的Elasticsearch服务器的IP地址

答案 1 :(得分:0)

我已经解决了问题。

我必须配置的第一件事是network.host,但非常重要的一点是要注意它不能与我尝试从客户端连接到的IP一起使用,因为这是EC2公用IP。我必须使用EC2专用IP。

但是后来我仍然遇到相同的错误,并且我发现集群协调算法在Elasticsearch 7.0中已经更改,为了安全起见,它需要一些特定的配置。当一个人仅绑定到本地主机时,Elastic放松了这一要求(即,它们以不太安全的模式运行),但是如果/当一个人更改network.host时,他们会强制他安全地配置集群。

因此,由于我使用的是单节点群集,因此必须在elasticsearch.yml的“发现”部分中添加以下设置:

discovery.type: single-node