Kibana7.9.2设置elasticsearch索引过期时间,到期自动删除
一、背景
ELK系统里面存放了大量日志,只需要保留15天的日志索引,希望到期自动删除对应的日志文件;
二、设置索引生命周期策略(ILM)
- 创建一个新的策略
- 记得关掉热阶段的滚动更新
- 开启删除阶段,设置过期时间,快照可以不用
三、手动给索引设置删除策略
如图
四、查看结果
如果过期时间比较短,像我这里测试是2分钟,会显示当前阶段是delete;
如果过期时间比较长,例如15天,则会出现hot阶段,具体原因查看文章末尾的官方链接;
到了delete阶段,过几分钟就会被删除了
五、自动给索引添加删除策略
但是实际项目中日志索引是自动生成的,那应该怎么自动添加删除策略呢?
我这里使用的是logstash7.9.2把日志文件传到elasticsearch中,默认情况下logstash会有一个索引创建模板,如图
默认情况下是没有ILM策略的,我们给它设置刚刚创建的策略,这样通过logstash传输创建的索引就会附带ILM策略;
当然还有一种方法是在logstash的output模块中设置,感兴趣可以查看官方文档
https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-ilm_enabled
六、参考
- 官方文档,大赞,写得很好很详细
https://www.elastic.co/guide/en/elasticsearch/reference/7.9/index-lifecycle-management.html