到此我们已经基本掌握了ILM的创建和使用方式了,但是如果我们后期发现策略错了,怎么去修改,已经修改后的什么时候会生效?
1、更新索引
索引的更新操作和新增基本类似,只不过版本号会增加,例如对下面策略修改delete action的触发时间为10d
curl -X PUT "localhost:9200/_ilm/policy/my_policy" -H 'Content-Type: application/json' -d'
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "25GB"
}
}
},
"delete": {
"min_age": "30d",
"actions": {
"delete": {}
}
}
}
}
}
'
curl -X PUT "localhost:9200/_ilm/policy/my_policy" -H 'Content-Type: application/json' -d'
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "25GB"
}
}
},
"delete": {
"min_age": "10d",
"actions": {
"delete": {}
}
}
}
}
}
'
修改后新策略的 min_age = 10d 策略版本号+1;需要注意的是,修改后的策略并不会对当前处于rollover阶段的索引有任何影响,当前索引phrase依然会使用旧的策略执行,旧策略归档后,下一阶段phrase会使用新的策略 ,此时执行 GET my_index/_ilm/explain 查看索引策略信息,会发现新的phrase已经使用新的策略了。
2、更改索引
上面的需求也可以通过新增一个策略 my_other_policy,然后通过修改setting中index.lifecycle.name指定为新的策略来实现:
PUT my_index/_settings
{
"index.lifecycle.name": "my_other_policy"
}
和上面更新过程基本类似,当前索引rollover结束后,会转向my_other_policy对应的下一个phrase;如果通过索引模板进行创建的话,同样新的索引也会使用my_other_policy作为管理策略。
网友评论