/
Upgrading Elasticsearch

Upgrading Elasticsearch

This is the process for in-place Elasticsearch (ES) upgrades, using an existing Search Feed and index data.

Required

Upgrading Elasticsearch by Script

On each node in an Elasticsearch cluster, follow this process and run the files from the Swarm download bundle:

  1. Before upgrading, query the Elasticsearch cluster for the list of nodes.

    curl -i http://ELASTICSEARCH:9200/_cat/nodes

    Example output:

    [root@elasticsearch Elasticsearch]# curl -i http://<ip-address>:9200/_cat/nodes HTTP/1.1 200 OK content-type: text/plain; charset=UTF-8 content-length: 300 <ip-node1> 14 99 1 0.02 0.14 0.15 dilm - <hostname-node1> <ip-node2>  1 71 1 0.01 0.09 0.08 dilm - <hostname-node2> <ip-node3> 72 99 0 0.08 0.06 0.08 dilm - <hostname-node3> <ip-node4> 50 99 0 0.03 0.04 0.05 dilm * <hostname-node4> <ip-node5> 47 99 1 0.08 0.14 0.22 dilm - <hostname-node5>

    The node with * is the Elasticsearch master node. It is recommended to upgrade the node last to avoid problems electing a new master node.

  2. Backup the existing configurations so a record exists of any customizations. Run ./techsupport-bundle-grab.sh from your Support tools directory to backup to upgrade your support tools before running the script. Instructions are here.

  3. Install the latest Swarm Search i.e. caringo-elasticsearch-search RPM.

    yum install caringo-elasticsearch-search-VERSION.noarch.rpm

Tip

The error: "ES_PATH_CONF must be set to the configuration path chown: cannot access '/etc/elasticsearch/elasticsearch.keystore': No such file or directory" is displayed if Elasticsearch 7 RPM was inadvertently installed. Install the caringo-elasticsearch-search RPM to proceed.

  1. Run the script to install and configure the upgrade.
    If the script detects that Elasticsearch is installed and configured, it runs with --upgrade instead of configuring a new cluster, automating the Elasticsearch rolling upgrade steps (Rolling upgrades | Elasticsearch Guide [7.17] | Elastic).

Important

The upgrade requires Internet access to download the Elasticsearch rpm. Place the elasticsearch-*.rpm in the current directory if Internet access is unavailable.

  1. Compare the backup file to the newly created elasticsearch.yml, add any customizations needed, and restart systemctl restart elasticsearch if the configuration was modified.

  1. Verify that all nodes are accounted for, all shards are assigned, and the status is green.

The script updates the configuration files and restarts the service if the upgraded Elasticsearch is already installed.

Upgrading Elasticsearch Manually

The script automates the following steps for upgrading Elasticsearch manually:

  1. It fixes /etc/sysconfig/elasticsearch to the correct ES6 version (the same as ES7+).

  2. It increases the systemd timeout in /etc/systemd/system/elasticsearch.service.d/override.conf (see github.com/elastic/elasticsearch/issues/60140)

  3. A prompt to continue with the yum upgrade to the latest ES version appears after refreshing the config files for Elasticsearch 6.

  4. It disables shard allocation and performs a POST synced-flush for safer rolling upgrades. 

  1. It uninstalls the existing Prometheus Exporter plugin.

  2. It shells out to yum to install the Elasticsearch 7 RPM in the current directory or from artifacts.elastic.co, if unavailable.

  3. It updates elasticsearch.yml for Elasticsearch 7+ compatibility, including cluster.initial_master_nodes instead of discovery.zen.unicast.hosts and jvm.options.

  4. It starts the upgraded Elasticsearch and waits for it to be ready.

  5. The cluster re-enables shard allocation and prompts to repeat these two steps on the next node if the cluster health is green or yellow.

Related content

Upgrading to the Latest SCS Version for CentOS 7
Upgrading to the Latest SCS Version for CentOS 7
Read with this
Configuring Elasticsearch
Configuring Elasticsearch
More like this
How to Upgrade Swarm
How to Upgrade Swarm
Read with this
Rebuilding a Search Feed
Rebuilding a Search Feed
More like this
Upgrading Gateway
Upgrading Gateway
Read with this
Migrating Swarm Components from CentOS 7 to Rocky Linux 8
Migrating Swarm Components from CentOS 7 to Rocky Linux 8
Read with this

© DataCore Software Corporation. · https://www.datacore.com · All rights reserved.