Elasticsearch 索引策略

Elasticsearch 7.6 索引生命周期

es的生命周期就对应了索引的策略,比如我们在使用elk的时候,由于数据量较大,时间比较久远的数据就没有那么有价值了,因此就需要定期的清除这些历史数据,所以我们在设置es的索引策略的时候就可以进行数据的冷热策略设置。
在es 7.6索引的生命周期分为4部分,不过最新版的已经更新为了5部分,本文介绍 7.6版本的生命周期:

  • Hot:正在积极更新和查询索引。
  • Warm:索引不再更新,但仍在查询中。
  • Cold:索引不再更新,很少被查询。信息仍然需要可搜索,但如果这些查询速度较慢也没关系。
  • Delete:不再需要索引,可以安全地删除。

每个阶段可以触发的动作:

在Kibana中进行配置

设置hot阶段的策略,这里我设置索引大小为20kb、文档数为3、30秒钟自动滚动,就是说只要达到其中一个条件就自动根据索引模板创建索引,设置删除阶段,6分钟之后删除索引数据

设置索引策略之后就去设置索引模板

设置完之后就去创建索引,使用kibana进行创建

点击查看代码
PUT system-log-000001
{
  "aliases": {
    "system-log": {
      "is_write_index": true 
    }
  }
}

里创建的索引别名必须跟索引模板中创建索引策略时指定的别名一致,否则就会报以下错误:
illegal_argument_exception: index.lifecycle.rollover_alias [system-log] does not point to index [system-log-000001]
或者是:
index.lifecycle.rollover_alias [system-log] does not point to index [system-log-000001]

插入数据:

点击查看代码
POST system-log/_doc/4
{
  "name":"张三",
  "age":123
}

执行后发现索引每隔30秒就会生成一个索引值,或者每插入3条数据就会生成一个索引

到此说明配置的索引策略生效了,这里默认的情况,生成的索引的自增是6位的,比如000001

等待6分钟之后你会发现,有些索引已经被删除了,前面的两个索引已经被删除了

参考文档:

https://juejin.cn/post/6911843658006265863
https://www.elastic.co/guide/en/elasticsearch/reference/7.6/set-up-lifecycle-policy.html

posted @ 2022-03-22 15:40  玲丶蹊  阅读(363)  评论(0编辑  收藏  举报