'Elasticsearch ILM - ELK

I am trying to create an index template with two patterns, my questions are

  • Can I add two patterns in the template?
  • Or the only way is to create an index template per pattern?

My policy

PUT _ilm/policy/my_first_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_primary_shard_size": "1b",
            "max_docs": 2
          }
        }
      },
      "delete": {
        "min_age": "1m",
        "actions": {
          "delete": {} 
        }
      }
    }
  }
}

The index template with two patterns

PUT _index_template/my_first_template
{
  "index_patterns": ["test-one-*", "test-two-*"], 
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "my_first_policy", 
      "index.lifecycle.rollover_alias": "my-test-alias" 
    }
  }
}

Start the indices

PUT test-one-000001
{
  "aliases": {
    "test-one":{
      "is_write_index": true 
    }
  }
}
 
PUT test-two-000001
{
  "aliases": {
    "test-two":{
      "is_write_index": true 
    }
  }
}

I get the following error

illegal_argument_exception: index.lifecycle.rollover_alias [my-test-alias] does not point to index [test-one-000001]

It seems to be working with I have only one pattern in the template and when I use the same alias defined in the template and the first document, this is what I mean

PUT _index_template/my_first_template
{
  "index_patterns": ["test-one-*"], 
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "my_first_policy", 
      "index.lifecycle.rollover_alias": "my-test-alias" 
    }
  }
}

PUT test-one-000001
{
  "aliases": {
    "my-test-alias":{
      "is_write_index": true 
    }
  }
}


Solution 1:[1]

the issue here is index.lifecycle.rollover_alias can only be attached to a single index, it's the write index for that policy

ie - you cannot have two indices attached to an alias that are both write indices

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mark Walkom