Simplest upgrade data from ElasticSearch 2 to ElasticSearch 6?

We're looking to migrate our clusters with ElasticSearch 2.x to the latest version. What is the simplest way to do this?

I already wrote a deploy script for deploying the ELK 2 stack and the ELK 6 stack. Unfortunately ElasticSearch 6.x cannot read data from ElasticSearch 2.x.

Go via ElasticSearch 5

Is it worth to make also a deploy script for an ELK-5, so it will automatically upgrade all my data without data loss? It's mostly logs.

Then we'd have to do 2 deploys on all environments and ElasticSearch would convert all data for us from the old to the newer version.

ElasticSearch 2 and 6 next to each other

Can we not better change the fluentd configuration to write log files to both ELK-2 and ELK-6 for a week at the same time. Then we delete the ELK-2 cluster a week later? That way we don't have to do weird stuff with building a new ElasticSearch-5 script and going through 2 deploys and 2 data upgrades.

I'd do blue/green deployment and a remote reindex from the 2.X cluster into the 6.X cluster.

Would we need to reindex to a different index-name? Or could we keep the same names? We have 7 indices with names like logstash-2018.08.01/02/03/04/05/06/07.

Or do we need to run a command to migrate the data into a new index e.g. logstash-2018.08.01-elasticsearch6? In that case we still have to reconfigure fluentd to send data to both destinations.

We are looking to upgrade from Elasticsearch 2.1.1 to Elasticsearch 6.3.2 by the way.

You can keep the same index name.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.