美文网首页Elasticsearch 7.x 小白到高手
elasticsearch 7.0 新特性之 索引生命周期管理(

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

作者: 郭彦超 | 来源:发表于2019-04-23 12:37 被阅读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作为管理策略。

    相关文章

      网友评论

        本文标题:elasticsearch 7.0 新特性之 索引生命周期管理(

        本文链接:https://www.haomeiwen.com/subject/alamgqtx.html