шаблон 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
}
}
}
После этого все будет обработано автоматически, и при ролловере будет создан новый индекс, который затем будет назначен как индекс записи для псевдонима.