8
votes

I am having this problem while connecting the elasticsearch connections.


var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({ host: 'localhost:9200',
                                       log: 'trace'});



Elasticsearch ERROR: 2016-07-19T19:09:26Z
  Error: Request error, retrying -- connect ECONNREFUSED 127.0.0.1:9200
      at Log.error (/root/git_build/FirstMoveChess/node_modules/elasticsearch/src/lib/log.js:225:56)
      at checkRespForFailure (/root/git_build/FirstMoveChess/node_modules/elasticsearch/src/lib/transport.js:195:18)
      at HttpConnector. (/root/git_build/FirstMoveChess/node_modules/elasticsearch/src/lib/connectors/http.js:154:7)
      at ClientRequest.bound (/root/git_build/FirstMoveChess/node_modules/lodash-node/modern/internals/baseBind.js:56:17)
      at emitOne (events.js:96:13)
      at ClientRequest.emit (events.js:188:7)
      at Socket.socketErrorListener (_http_client.js:308:9)
      at emitOne (events.js:96:13)
      at Socket.emit (events.js:188:7)
      at emitErrorNT (net.js:1272:8)
      at _combinedTickCallback (internal/process/next_tick.js:74:11)
      at process._tickCallback (internal/process/next_tick.js:98:9)

Elasticsearch TRACE: 2016-07-19T19:09:27Z
  -> HEAD http://localhost:9200/

  
2
Are you sure elastic is running?Will
Yes it is running i checked the status with sudo service elasticsearch status and it shows it is running.Mohammad Shahadat Hossain
What does you environment look like, as in how are you running node and elastic? Are they both running on your bare machine, or are you running one or both in virtual machine/docker container? What do you see when you go to localhost:9200 in your browser?Will
I am using vm for running the node and elasticsearch. i try to curl localhost:9200 it gives a json response. Show 503 errors.Mohammad Shahadat Hossain
Interesting... what's in the JSON response? Are your node app and elastic running in the same vm or separate vms?Will

2 Answers

2
votes

In case of Docker Container Environment after changing from http://localhost:9200 to http://ipaddress:9200 in docker-compose.yml

please change the following live in docker-compose.yml that is related to CORS

Change this ** http.cors.allow-origin=/https?://localhost(:[0-9]+)?/ ** into this

*- http.cors.allow-origin= **

4
votes

I understand this question is quite old but I wanted to share how you can solve this problem.

  1. If you are locally using elasticsearch

First thing you must do is running elasticsearch on your machine.

Error: Request error, retrying -- connect ECONNREFUSED 127.0.0.1:9200

Because above message indicates that you're not running elasticsearch locally.

So, visit the link and follow the insturction.

  1. Docker environment

It gets much trickier here.

First, follow the instruction here.

And in case you're using node.js elasticsearch client, you have to specify elasticsearch host as 172.24.0.1.

If you use container_name or private IP of container in docker-compose.yml, it won't work.