NJUHOBBY
NJUHOBBY

Reputation: 850

why Elasticsearch still complains about bootstrap checks failed

Installed ElasticSearch 7.3.0 on Ubuntu 18.04. Was able to start it in development mode. Now I want to connect to ES remotely from another machine, so I changed the configuration in elasticsearch.yml and tried to start it in production mode (although there's still only one ES machine). Below is my elasticsearch.yml file: elasticsearch.yml

However, everytime after I run the 'sudo systemctl start elasticsearch.service' command, the elasticsearch gave me this warning "the default discovery settings are unsuitable for production use: at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured". the log file

As you can see in the first image, I do configure the cluster.initial_master_nodes correctly. So what did I miss here?

---Updates-------------------------------------------------------------------------------------------------------------------

I just realized that no matter how many times I tried to restart the elasticsearch service, for some reason it is not updating the log file. As you can see the timestamp for the last log is 2019-08-10, which is yesterday. I am pretty sure I restarted the service this morning several times and today is 2019-08-11. P.S. I am in UTC-8 timezone.

Upvotes: 0

Views: 3815

Answers (2)

LucidObscurity
LucidObscurity

Reputation: 339

The answer by user1496433 works. Here's the full yml file in case it's helpful to anyone:

# ======================== 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: dev-logs
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: dev-logs-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: /path/to/data
#
# Path to log files:
#
#path.logs: /path/to/logs
#
# ----------------------------------- 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: 0.0.0.0
#
# Set a custom port for HTTP:
#
http.port: 9400
#
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With,X-Auth-Token,Content-Type, Content-Length, Authorization"
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.seed_hosts: ["dev-logs-1"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: ["dev-logs-1"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

Upvotes: 1

Thurst
Thurst

Reputation: 47

I fixe the issue.

Edit elasticsearch.yml

Make following changes / updates:

  1. Cluster Section - uncomment cluster.name:
  2. Give the cluster a name. I named mine ELK, but you can use whatever you want to name the cluster. Note: you don't have to technically run a cluster for this to work...
  3. Node Section - uncomment node.name: & cluster.initial_master_nodes:
  4. Give the node a name. I named mine ES1, but you can use whatever you want to name the node.
  5. Discovery Host Section - uncomment discovery.seed_hosts:
  6. Enter the node.name. I entered ["ES1"] for both line items.
  7. Save the config file
  8. Start elasticsearch.service

Upvotes: 1

Related Questions