连接拒绝弹性search错误

当我尝试使用curl http://localhost:9200连接到Elastic Search时,它工作正常。

但是,当我运行curl http://IpAddress:9200它是抛出一个错误,说connection refused port 9200

如何解决这个错误?

默认情况下,它应该绑定到所有本地地址。 所以,假设你没有防火墙的networking层问题,唯一可以考虑检查的ES设置是network.bind_host ,并确保它没有被设置或者被设置为0.0.0.0或者::0或者被设置为正确的IP地址为您的networking。

更新:ES 2.3中的每条评论你应该设置network.host

编辑/etc/elasticsearch/elasticsearch.yml并添加以下行:

  network.host:0.0.0.0 

这将“取消”此参数,并将允许来自其他IP的连接。

 OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12) 

确保服务器已启动。 我看到这个问题,当我的虚拟机太litle RAM和ES无法启动。

 sudo systemctl status elasticsearch 

上面会显示你是否确实在运行。

在我的情况下elasticsearch开始了。 但还是有

 curl: (7) Failed to connect to localhost port 9200: Connection refused 

以下命令不成功

 sudo service elasticsearch restart 

为了使它工作,我不得不运行

 sudo systemctl restart elasticsearch 

然后它一切正常。

试了这个页面上的所有内容,只有从这里得到的帮助。

/etc/default/elasticsearch ,请确保它们未被注释:

 START_DAEMON=true ES_USER=elasticsearch ES_GROUP=elasticsearch LOG_DIR=/var/log/elasticsearch DATA_DIR=/var/lib/elasticsearch WORK_DIR=/tmp/elasticsearch CONF_DIR=/etc/elasticsearch CONF_FILE=/etc/elasticsearch/elasticsearch.yml RESTART_ON_UPGRADE=true 

确保/var/lib/elasticsearch由elasticsearch用户拥有:

 chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/ 

你为什么不从这个命令行开始:

 $ sudo service elasticsearch status 

我做到了,得到:

 "There is insufficient memory for the Java Runtime..." 

然后我编辑/etc/elasticsearch/jvm.options文件:

 ... ################################################################ # Xms represents the initial size of total heap space # Xmx represents the maximum size of total heap space #-Xms2g #-Xms2g -Xms512m -Xmx512m ################################################################ ... 

这工作像一个魅力。

对于这个问题,我不得不使用: sudo /usr/share/elasticsearch/bin/elasticsearch start

能够得到端口9200/9300(sudo netstat -ntlp)的东西和响应:

curl -XGET http://localhost:9200

这里没有提出的解决scheme为我工作,但最终得到它的工作是将以下内容添加到elasticsearch.yml

 network: host: 0.0.0.0 http: port: 9200 

之后,我重新启动了服务,现在我可以从虚拟机内部和外部进行调整。 出于某种奇怪的原因,我不得不在虚拟机之前尝试几个不同的curl调用变体,

 curl localhost:9200 curl http://localhost:9200 curl 127.0.0.1:9200 

注意:我在Ubuntu 14.04上使用Elasticsearch 5.5

没有什么可以帮助我,但这里是我可以如何解决我的本地Debian上的这个问题: sudo /usr/share/elasticsearch/bin/elasticsearch start

能够得到端口9200/9300(sudo netstat -ntlp)的东西和响应:

curl -XGET http://localhost:9200

我有同样的问题拒绝9200端口连接。 使用命令sudo service elasticsearch status检查elasticsearch服务sudo service elasticsearch status 。 如果它出现错误,并且你阅读了与Java有关的任何东西,那么问题可能就是你的jvm内存。 你可以在/etc/elasticsearch/jvm.options编辑它。 对于Amazon环境中的1GB RAM内存机器,我保留了以下configuration:

 -Xms128m -Xmx128m 

设置完毕并重新启动elasticsearch服务后,它就像一个魅力。 Nmap和UFW(如果你使用本地防火墙)检查也应该是有用的。

在这种情况下,首先你需要使用下面的命令来检查java版本:

 java -version 

运行这个命令后,你会得到这样的东西:

Java版本“1.7.0_51”OpenJDK运行环境(rhel-2.4.5.5.el7-x86_64 u51-b31)OpenJDK 64位服务器虚拟机(构build24.51-b03,混合模式)

然后使用这个命令:

 update-alternatives --config java 

并select以下版本

* + 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jre/bin/java 2 /usr/java/jdk1.8.0_73/jre/bin/ java的

input以保持当前select[+],或inputselect号码:2

 curl -XGET http://127.0.0.1:9200 

elasticsearch文件夹下打开你的Dockerfile ,用“network.host = 127.0.0.1”更新“network.host = 0.0.0.0 。 然后重新启动容器。 用curl检查你的连接。

 $ curl http://docker-machine-ip:9200 { "name" : "vI6Zq_D", "cluster_name" : "elasticsearch", "cluster_uuid" : "hhyB_Wa4QwSX6zZd1F894Q", "version" : { "number" : "5.2.0", "build_hash" : "24e05b9", "build_date" : "2017-01-24T19:52:35.800Z", "build_snapshot" : false, "lucene_version" : "6.4.0" }, "tagline" : "You Know, for Search" } 

我的2美分,

我只是按照Digital Ocean上的安装程序,显然在回购中可用的包不是最新的,我删除了所有东西,并按照从Elastic Search直接安装程序,一切正在工作,基本上是开箱的行为一个本地主机指向9200.同样的事情/问题发现与Kibana,我的解决scheme也是,删除一切,只是按照他们的程序,希望这节省了两个小时的人(我花了如何设置ELK的设置!)