ElasticSearch instance not reachable from outside the server - Azure Windows 2012

droidbot picture droidbot · Apr 4, 2016 · Viewed 13.5k times · Source

I have set up Elastic Search 2.3.0 as a service in an Azure VM with Windows Server 2012 R2. I can access elastic search instance from within the server using

http://localhost:9200

but I cannot access from outside the server.

What have I tried?

  • Just for testing I have made the VM available outside the virtual network.
  • Opened up the port 9200 in Windows Firewall settings as an Inbound Traffic rule
  • Added an endpoint in Azure portal settings opening up port 9200

Tried this with VM Classic as well.

Also for testing whether the VM is alright, I had set up IIS in that machine, opened up the port 80. The default IIS page is accessible from outside.

Only thing I have not tried is setting ES in a Linux VM.

I can't find anything in the elasticsearch logs. On the browser (Chrome), there are no logs in the Network. It just spins, waiting for the server, and snaps with "ERR_EMPTY_RESPONSE".

Can anybody that had done this shed some light please?

UPDATE: Here is what I can see in netstat:

TCP    127.0.0.1:9200         machine-name:0       LISTENING
TCP    127.0.0.1:9300         machine-name:0       LISTENING

Answer

Val picture Val · Apr 4, 2016

Starting with ES 2.0, the elasticsearch process only binds to localhost, which explains why you can query ES from inside but not from the outside.

You need to change the following setting in your elasticsearch.yml configuration file:

network.host: 0.0.0.0