Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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/

  
like image 782
Mohammad Shahadat Hossain Avatar asked Jul 19 '16 19:07

Mohammad Shahadat Hossain


2 Answers

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.

like image 88
Gompro Avatar answered Nov 15 '22 05:11

Gompro


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

like image 38
Ali Raza Avatar answered Nov 15 '22 06:11

Ali Raza