ES索引生命周期管理配置的关键点

索引的生命周期策略是ELK中非常有意义的功能,一般用于热(hot)、温(warm)、冷(clod)数据的索引和分片管理,以及定期删除过期的数据,以确保ES的健康运行。

划重点:

生命周期有四个重要阶段:

hot: 索引需被频繁的写入和查询(快)

warm: 索引不可写入,但是仍需查询(中)

cold: 索引不可写入,很少被查询(慢)

delete: 索引已无价值,干掉完事

 

需要注意理解索引生命周期策略的执行逻辑,通常我们会使用滚动更新,并希望当前写操作的索引处于hot阶段以提供最优服务,同时该索引会被记录为rollover(rollover翻译过来是“转换”或“翻转”的意思,意思就是该索引可转为warm阶段)。

以冷(温)热分离为例,若满足策略hot阶段的任一rollover触发条件时,系统会自动把当前hot阶段的索引rollover为warm阶段索引(通常会触发数据迁移至warm节点),同时根据模板创建一个新的索引提供写入操作,若在转换为warm时启用了压缩则原索引会被命名为shrink开头,并保留原索引的别名。

 

配置步骤入下:

1、配置索引生命周期策略(傻瓜式UI操作就不举例了)

为了尽快看到效果,可以通过调整索引生命周期策略的检测间隔为10s来看效果,即索引中数据写入且触发refresh动作10s后会触发生命周期检测与执行,命令如下:

PUT /_cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval": "10s"    //系统原默认值是10分钟
  }
}

 

2、配置索引模板(请根据需要自行配置Mapping部分)

PUT _template/test_template
{
  "index_patterns": ["test-*"],                 
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1,
    "index.lifecycle.name": "test_policy",    //第一步配置的策略名称    
    "index.lifecycle.rollover_alias": "test",    //策略执行时对rollover状态的index设置别名

"index.routing.allocation.require.temperature": "hot" //请根据ES集群的配置参数设置红色部分,如temperature你配置的是是叫box_type,那请改成box_type } }

  

3、接着就是创建新索引(需匹配上面创建的模板),写入数据,刷新索引后等待10s观察是否触发策略

 

posted @ 2020-07-10 20:54  Don  阅读(699)  评论(0编辑  收藏  举报