我已经在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
答案 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