Elasticsearch 7.x 小白到高手

elasticsearch 7.0 新特性之 索引生命周期管理(

2019-04-23  本文已影响38人  郭彦超

到此我们已经基本掌握了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作为管理策略。

上一篇下一篇

猜你喜欢

热点阅读