шаблон elasticsearch не меняет индекс ILM

В моем elasticsearch я буду получать ежедневный индекс в формате dstack-prod_dcbs-. Я хочу добавить к ним ILM, сразу после их оживления. Я не знаю, почему ILM не добавляются в индексы. ниже вы можете найти мою команду (я уже определил ILM "dstack-prod_dcbs-policy")

*PUT _template/dstack-prod_dcbs
{
  "index_patterns": ["dstack-prod_dcbs-*"], 
  "settings": {
    "index.lifecycle.name": "dstack-prod_dcbs-policy"
}
}*

но когда я бегу

ПОЛУЧИТЬ dstack-prod_dcbs/ _ilm / объяснять*

ниже возвращается результат

*{
  "indices" : {
    "dstack-prod_dcbs-20200821" : {
      "index" : "dstack-prod_dcbs-20200821",
      "managed" : false
    },
    "dstack-prod_dcbs-2020-09-22" : {
      "index" : "dstack-prod_dcbs-2020-09-22",
      "managed" : false
    }
  }
}*

1 ответ

Решение

Я считаю, что ILM является альтернативой использованию дневных индексов, когда индексы переносятся, когда в политике выполняется условие (а не когда наступает новый день)

Для ILM вам необходимо определить псевдоним ролловера для шаблона

PUT _template/dstack-prod_dcbs
{
  "index_patterns": ["dstack-prod_dcbs-*"], 
  "settings": {
    "index.lifecycle.name": "dstack-prod_dcbs-policy",
    "index.lifecycle.rollover_alias": "dstack-prod_dcbs"
  } 
}

Затем вам нужно создать первый индекс вручную и назначить его как индекс записи для псевдонима.

PUT dstack-prod_dcbs-000001
{
   "aliases": {
        "dstack-prod_dcbs":{
            "is_write_index": true 
        }
    }
}

После этого все будет обработано автоматически, и при ролловере будет создан новый индекс, который затем будет назначен как индекс записи для псевдонима.

Другие вопросы по тегам