通过es生命周期策略定期删除指定索引
通过es生命周期策略定期删除指定索引
·
1、es有一个生命周期策略的概念,它最基本的应用就是delete,可以定时删除指指定索引。
1.1新增策略
PUT _ilm/policy/111_policy
{
"policy": {
"phases": {
"delete": {
"min_age": "30s",
"actions": {
"delete": {}
}
}
}
}
}
1.2查询当前es的全部生命周期策略
红框标出的是其中一个设置索引存活30秒的策略,策略名为111_policy
GET _ilm/policy
1.3将索引与需要配置的策略绑定
在这里我们新增一个基本索引test_111
PUT test_111
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
}
}
为test_111设置此策略
PUT test_111/_settings
{
"index": {
"lifecycle": {
"name": "111_policy"
}
}
}
1.4查看当前索引状态
GET /test_111/_ilm/explain
设置策略前
设置后,能看到多了很多指标,其中age便是此索引创建的时间
1.5生命周期策略的检查时间和状态
生命周期策略的开启、关闭和状态
GET _ilm/status
POST _ilm/stop
POST _ilm/start
生命周期的检查时间
想要真正运用生命周期策略,它并不是配置完立刻执行的,而是要每隔固定的时间(检查时间)扫描一遍,在扫描时发现某个索引创建时间已经超过生命周期策略配置的时间,便执行删除索引操作。
如下命令可自定义设置检查时间。
PUT _cluster/settings
{
"transient": {
"indices.lifecycle.poll_interval": "30s"
}
}
注:
在这里我理解生命周期策略就相当于es内置的一个定时任务,比如delete的策略就是定时执行删除索引的语句;
这里定时对应的是lifecycle.poll_interval
delete对应的是语句:DELETE test_111
更多推荐
已为社区贡献4条内容
所有评论(0)