Reindexing in Kibana or other ELK stack product


(Alexey Ponomarenko) #1

Hi. I know that there is Reindex ( https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html ) feature in Elasticsearch and for zero downtime Elasticsearch team recommends to use index alias.

But can you tell me how reindexing are implemented in Kibana or other ELK stack products?

As far as I know those products are designed for highly loaded environment and maybe there are implemented some special techniques for minimizing downtime caused by reindexing?


(Jymit Singh Khondhu) #2

Hi,

The indexing and reindexing happens all within Elasticsearch.
And, in regards to kibana and other ELK stack products please see here: https://www.elastic.co/elk-stack

If you are looking for direction on how to do an upgrade with minimal downtime then see here: https://www.elastic.co/guide/en/elasticsearch/reference/current/rolling-upgrades.html

And, depending on your version to and from please read here: https://www.elastic.co/guide/en/elasticsearch/reference/current/reindex-upgrade.html


(Alexey Ponomarenko) #3

Thanks for answer. So as far as I understand that to minimize downtime form re indexing procedure we need to use index aliases?

Using index aliases to decrease downtime caused by re indexing is the best option? Is it correct?


(Jymit Singh Khondhu) #4

Why do you foresee downtime, what are you looking to achieve here?

A migration or upgrade from one major version to another major or a rolling upgrade?

Is this for a non production system?


(Alexey Ponomarenko) #5

It is needed for production system. For now we are investigating Elasticsearch for use in our system as main search engine. And the problem is we want to change our schema (mapping) of index to be changed from time to time.

As far as I understand if we change index we need to reindex data consequently we will have system downtime at the time of reindexing (system will be offline at that time as I understand). So to avoid that Elastic team and some other authors in internet recommends to use aliases to minimize downtime.

And I want to understand is the index aliases is a best solution of this problem.

Please correct me if I am wrong in something.


(Jymit Singh Khondhu) #6

Alrighty, now I have a better idea of what you wanting to achieve.

So you will have a client which your business production system will be using to query Elasticsearch, to which it is likely that it will query a number of indices.

In the event of a migration or upgrade or reindex process such as you mentioned, you will want your client to point to an elasticsearch alias whilst the reindex process is running in the background. Once the reindex process is complete then switch the alias in elasticsearch from the old index to the newly reindexed index.

Everything is outlined here: https://www.elastic.co/guide/en/elasticsearch/guide/current/index-aliases.html (please note this is v2 documentation but the idea still remains)


(Alexey Ponomarenko) #7

Thanks a lot for advise!


(system) #8

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