Kibana 7.12.0如何为每日新建的filebeat索引自动绑定索引生命周期策略
结论
Kibana 7.12.0 版本不支持直接将索引模式(Index Patterns)与索引生命周期(ILM)策略绑定,你找不到对应配置入口不是操作问题,是功能本身就不支持——索引模式的定位是服务于日志查询、可视化的索引匹配规则,完全不介入新索引创建时的配置下发逻辑。
要让后续新建的filebeat-<date>格式索引自动应用ILM策略,用下面两种原生方案即可,不需要改源码或者装额外插件。
方案1:通过索引模板绑定ILM策略(通用方案,和日志采集端无关)
这是Elasticsearch原生的新索引配置自动下发机制,所有匹配模板规则的新索引都会自动套用模板里的配置,包括ILM策略、字段映射、分片规则等。
操作步骤完全在Kibana界面完成:
- 提前确认你已经创建好目标ILM策略,记录准确的策略名称
- 打开Kibana左侧菜单栏,进入「Stack Management(栈管理)」,在Elasticsearch分类下选择「Index Templates(索引模板)」
- 搜索匹配
filebeat-*规则的现有模板:正常部署Filebeat后会自动生成官方自带的模板,直接选中点编辑即可;如果没有匹配的模板,点击「Create template(创建模板)」新建 - 模板配置项按下面填:
- 「Index patterns(索引匹配规则)」填
filebeat-*,优先级(Priority)设置为200(高于默认Filebeat模板的优先级即可,避免配置被低优先级模板覆盖) - 跳过组件配置步骤,到「Index settings(索引设置)」页,添加如下配置,替换成你自己的ILM策略名:
{ "index.lifecycle.name": "你自己创建的filebeat ILM策略名称" } - 如果你用ILM的滚动更新(Rollover)能力,就额外加一行
"index.lifecycle.rollover_alias": "filebeat-write",提前创建好对应的写别名;如果只是按天生成带日期后缀的独立索引、不用rollover,不需要加这行 - 映射、别名等其他配置如果是编辑现有模板,直接保留原有配置不要改动,避免字段解析异常;新建模板的话可以直接导入Filebeat官方提供的默认映射配置
- 保存模板即可
- 「Index patterns(索引匹配规则)」填
- 验证方式:手动创建一个测试索引
filebeat-test-000001,在「Index Management(索引管理)」页查看该索引的ILM策略列,确认已经自动绑定目标策略就说明配置生效。历史已存在的索引不会自动应用该配置,需要手动批量绑定一次。
方案2:在Filebeat采集端直接配置ILM关联(适合你用Filebeat采集日志的场景)
如果你是在K8s里以DaemonSet方式运行Filebeat,直接改Filebeat的采集配置,让它在创建新索引的时候自动绑定ILM策略更简单,不需要手动调整索引模板:
- 找到K8s集群中存储Filebeat配置的ConfigMap,在
output.elasticsearch配置块下添加ILM相关配置:output.elasticsearch: hosts: ["http://你的Elasticsearch服务地址:9200"] ilm: enabled: true policy_name: "你创建好的ILM策略名称" pattern: "{now/d}-000001" index: "filebeat-%{+yyyy.MM.dd}" - 保存ConfigMap后滚动重启所有Filebeat Pod,后续Filebeat自动创建的按日期命名的索引都会直接绑定指定的ILM策略。
注意:如果同时配置了索引模板和Filebeat端的ILM规则,以优先级更高的索引模板配置为准。
内容的提问来源于stack exchange,提问作者loki
相关产品推荐
相关产品推荐

