索引生命周期管理策略ILM

索引生命周期管理策略是一组规则的总称,它需要应用到某个索引上或者某个模板上

生命周期把索引分为四个阶段,Hot,Warm,Cold,和 Delete,策略不需要为索引配置每个阶段,只有 hot 是必须的。
例如,一个策略可能只定义热阶段和删除阶段,而另一个策略可能定义所有四个阶段。
hot     索引可写入,也可查询,也就是我们通常说的热数据。
warm    索引通常不会被写入,但仍然会被查询。
cold	索引不再被更新,并且很少被查询。这些信息仍然需要可搜索,但如果查询速度较慢也没关系。
delete	索引不再需要,可以安全地删除。

使用ILM

1、制定Lifecycle 策略
可以在 Kibana 上操作,依次点击 Management -> index_lifecycle_management -> Create policy,输入配置参数后,点击Save可以生成一个新的策略。
点击 Show request 可以得到 ES 语句,如下
PUT _ilm/policy/ELK
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_age": "30s",
            "max_size": "50gb",
            "max_docs": 3
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "warm": {
        "actions": {
          "shrink": {
            "number_of_shards": 1
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "delete": {
        "min_age": "1m",
        "actions": {
          "delete": {
            "delete_searchable_snapshot": true
          }
        }
      }
    }
  }
}

2、设置索引模板
PUT _template/dc_index_template
{
  "index_patterns": ["dc_index-*"],
  "settings": {
    # 使用的策略
    "index.lifecycle.name": "ELK",
    # 滚动别名
    "index.lifecycle.rollover_alias": "my_alias"
  }
}

3、设置 Lifecycle 默认是10分钟,检查索引是否符合策略标准,并执行所需的任何步骤,为了方便测试,设置检查时间为5s,每5s检查执行一次策略。
PUT _cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval": "5s"
  }
}

4、给索引设置一个别名,Rollover功能是结合索引别名来实现的。
Rollover参数有一定的格式要求,timeseries-XXXXX1格式是必须的格式,这里的别名必须与上面模板定义的别名一致
PUT dc_index-0000001
{
  "aliases": {
    "my_alias":{
      "is_write_index": true
    }
  }
}

5、写入几条数据测试
POST _bulk
{ "index" : { "_index" : "my_alias", "_id" : "1" } }
{"language": "Python"}
{ "index" : { "_index" : "my_alias", "_id" : "2" } }
{"language": "Go"}
{ "index" : { "_index" : "my_alias", "_id" : "3" } }
{"language": "C++"}
{ "index" : { "_index" : "my_alias", "_id" : "4" } }
{"language": "Java"}


POST _bulk
{ "index" : { "_index" : "my_alias", "_id" : "5" } }
{"language": "Python"}
{ "index" : { "_index" : "my_alias", "_id" : "6" } }
{"language": "Go"}
{ "index" : { "_index" : "my_alias", "_id" : "7" } }
{"language": "C++"}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值