elk8社区版本对索引添加生命周期管理(ILM)

删除索引30天后自动执行

1.创建或更新 ILM 策略(使用 Kibana Dev Tools 或 curl)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看索引策略
GET _ilm/policy

# 创建索引策略
PUT _ilm/policy/delete-after-30days
{
"policy": {
"phases": {
"hot": {
"actions": {}
},
"delete": {
"min_age": "30d",
"actions": {
"delete": {}
}
}
}
}
}

说明:

  • 策略名为 delete-after-30days
  • 索引生命周期中,在创建后 30 天进入 delete 阶段,并被自动删除

2.绑定该策略到索引(模板或单个索引)

如果你使用模板管理索引(推荐):

1
2
3
4
5
6
7
8
9
10
PUT _index_template/logs-template
{
"index_patterns": ["logstash-*"],
"template": {
"settings": {
"index.lifecycle.name": "delete-after-30days"
}
},
"priority": 500
}

如果你只是对现有的某个索引添加策略(不通过模板):

1
2
3
4
5
6
7
8
PUT logstash-2025.06.19/_settings
{
"index": {
"lifecycle": {
"name": "delete-after-30days"
}
}
}

3.查看当前 ILM 策略绑定情况

1
GET logstash-*/_ilm/explain

可以确认哪些索引已经绑定策略、当前状态、距删除还有多久等信息。

4.最终效果

所有新创建的(匹配 pattern 的)索引,将会:

  • 默认进入 hot 阶段(即立即可用)
  • 创建后 30 天,自动进入 delete 阶段
  • 然后由 ILM 自动删除该索引,无需手动干预