No living connections Error while Elasticsearch connections in nodejs

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/

  

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

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.

Solution 2

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= **

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply