连接拒绝弹性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的设置!)
恩