ES系列-- ILM索引生命周期管理

前言

官方文档地址7.8版本

正文

ILM定义了四个生命周期阶段:
Hot:正在积极地更新和查询索引。
Warm:不再更新索引,但仍在查询。
cold:不再更新索引,很少查询。信息仍然需要可搜索,但是如果这些查询速度较慢也可以。
Delete:不再需要该索引,可以安全地将其删除。

ILM定期运行(indices.lifecycle.poll_interval),默认是10分钟,检查索引是否符合策略标准,并执行所需的任何步骤。
为了避免争用情况,ILM可能需要运行多次以执行完成一项动作所需的所有步骤。所以,即使indices.lifecycle.poll_interval设置为10分钟并且索引符合rollover,也可能需要20分钟才能完成rollover。
举例:比如我们设定超过10篇文档就rollover,但是因为这个过程不是立即实现的,可能第11,12篇还在落在之前的索引上,直到rollover成功后,新建的文档才会落在新的索引上。

注意:

为确保策略更新不会将索引置于无法退出当前阶段的状态,进入阶段时,阶段定义会缓存在索引元数据中。此缓存的定义用于完成该阶段。
当索引前进到下一阶段时,它将使用更新策略中的阶段定义。

ilm默认是启动的,状态为running,可以使用下面的api操作一下。

# 查看状态
GET _ilm/status
# 启动
POST _ilm/start
# 停止
POST _ilm/stop

rollover

这个是比较常用的,单独拿出来。
rollover可以基于大小,文档数或使用期限创建新的索引去保存数据。

操作体验下:

1.创建一条策略
# 创建一条策略(这里设置超过3条数据就rollover)
PUT _ilm/policy/test-policy
{
   
  "policy": {
   
    "phases": {
   
      "hot": {
   
        "actions": {
   
          "rollover": {
   
            "max_docs": 3
          },
          "set_priority": {
   
            "priority": 100
          }
        }
      },
      "delete": {
   
        "min_age": "220d",
        "actions": {
   
          "delete": {
   }
        }
      }
    }
  }
}

# 顺带列一下其它的api,如下:
# 查询
GET _ilm/policy

GET _ilm/policy/<policy_id>

# 删除策略
DELETE _ilm/policy/<policy_id>

# 从index中移除策略
POST <index>/_ilm/remove
# 查看索引当前所在生命周期状态
GET <index>/_ilm/explain
# 重试,一般通过explain查看策略状态,如果是error,则按照错误信息更新策略,然后可以执行retry进行重试
POST <index>/_ilm/retry
2. 创建index template应用策略:
# 创建index模板
PUT _index_template/test-template
{
   
  "index_patterns": ["test-*"],
  "template":{
   
     "settings": {
   
      "number_of_shards": 1,
      "number_of_replicas": 0,
      "index.lifecycle.name": "test-policy",    
      "index.lifecycle.rollover_alias": "test-index"  
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值