Elastic search curl -X GET "localhost:9200/" Connection Refused

18,922

network.host: 127.0.0.1 did the thing in my case.

I had the same exact issue with ES 6.7.1. But neither 0.0.0.0 nor localhost worked for me as network.host values.

I ran the following command:

netstat -natp

I noticed I had this line in the list:

127.0.0.1:9200          :::*                    LISTEN

So I just put the listed host and it worked.

Share:
18,922
Conor
Author by

Conor

Updated on September 18, 2022

Comments

  • Conor
    Conor over 1 year

    I have followed the instructions at https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html to install elasticsearch on a clean install of Ubuntu Server 16.04.

    I have run the following commands through terminal to install.

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.deb
    
    sudo dpkg -i elasticsearch-6.3.0.deb
    
    sudo /bin/systemctl daemon-reload
    
    sudo /bin/systemctl enable elasticsearch.service
    
    sudo systemctl start elasticsearch.service
    

    However when I run curl -X GET "localhost:9200/" I get the following error

    curl: (7) Failed to connect to localhost port 9200: Connection refused
    

    This is the contents of /etc/elasticsearch/elasticsearch.yml

    # ======================== Elasticsearch Configuration =========================
    #
    # NOTE: Elasticsearch comes with reasonable defaults for most settings.
    #       Before you set out to tweak and tune the configuration, make sure you
    #       understand what are you trying to accomplish and the consequences.
    #
    # The primary way of configuring a node is via this file. This template lists
    # the most important settings you may want to configure for a production cluster.
    #
    # Please consult the documentation for further information on configuration options:
    # https://www.elastic.co/guide/en/elasticsearch/reference/index.html
    #
    # ---------------------------------- Cluster -----------------------------------
    #
    # Use a descriptive name for your cluster:
    #
    #cluster.name: my-application
    #
    # ------------------------------------ Node ------------------------------------
    #
    # Use a descriptive name for the node:
    #
    #node.name: node-1
    #
    # Add custom attributes to the node:
    #
    #node.attr.rack: r1
    #
    # ----------------------------------- Paths ------------------------------------
    #
    # Path to directory where to store the data (separate multiple locations by comma):
    #
    path.data: /var/lib/elasticsearch
    #
    # Path to log files:
    #
    path.logs: /var/log/elasticsearch
    #
    # ----------------------------------- Memory -----------------------------------
    #
    # Lock the memory on startup:
    #
    #bootstrap.memory_lock: true
    #
    # Make sure that the heap size is set to about half the memory available
    # on the system and that the owner of the process is allowed to use this
    # limit.
    #
    # Elasticsearch performs poorly when the system is swapping the memory.
    #
    # ---------------------------------- Network -----------------------------------
    #
    # Set the bind address to a specific IP (IPv4 or IPv6):
    #
    network.host: localhost
    #
    # Set a custom port for HTTP:
    #
    http.port: 9200
    #
    # For more information, consult the network module documentation.
    #
    # --------------------------------- Discovery ----------------------------------
    #
    # Pass an initial list of hosts to perform discovery when new node is started:
    # The default list of hosts is ["127.0.0.1", "[::1]"]
    #
    #discovery.zen.ping.unicast.hosts: ["host1", "host2"]
    #
    # Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
    #
    #discovery.zen.minimum_master_nodes:
    #
    

    Any suggestions or advice would be appreciated to help me get elasticsearch up and running.

    Also worth pointing out that I am running on a 32 bit system

    • steeldriver
      steeldriver almost 6 years
      Did you modify the network.host? The documentation here suggests it should read _local_
    • Conor
      Conor almost 6 years
      @steeldriver yes I did. The initial value was 127.0.0.1 which didn't work and after a quick google I read somewhere to try localhost i will try _local_ now.