Filebeat每日创建新数据流的原因及配置调整咨询
问题解答
1. 为何每日会创建新的数据流?
核心原因是output.elasticsearch.index配置里带了%{+yyyy.MM.dd}日期变量,每天日期变更后,Filebeat会生成带新日期的索引名称。同时你开启了ILM(索引生命周期管理),当ILM检测到新索引名称匹配setup.template.pattern时,会自动将其转换为数据流,因此每天都会生成新的数据流。
2. 如何修改数据流的名称?
数据流名称由output.elasticsearch.index的命名规则直接决定,修改这个字段后同步调整模板配置即可:
- 修改
output.elasticsearch.index的模板,比如想把数据流名称改成voucher-app-%{[agent.version]},就把index字段改为:index: voucher-app-%{[agent.version]} - 同步更新
setup.template的名称和匹配规则,保证模板能覆盖新的数据流:setup: template: name: "voucher-app" pattern: "voucher-app*" overwrite: false
修改完成后,新生成的数据流就会遵循你设定的命名规则。
3. 如何针对该索引模式仅创建单个数据流,而非每日新建?
只需要去掉output.elasticsearch.index里的日期变量%{+yyyy.MM.dd},让索引名称固定化,同时保留ILM来管理后台索引滚动即可:
- 修改
output.elasticsearch.index为固定规则:output: elasticsearch: # 其他配置保持不变 index: voucher-app-logs-%{[agent.version]} - 当前
setup.template.pattern的voucher-app-logs*已经能匹配这个固定名称,无需额外修改。
之后所有日志都会写入同一个数据流,ILM会根据你配置的生命周期策略(比如大小、时间阈值)自动滚动后台的索引,不会再每天创建新的数据流。
内容的提问来源于stack exchange,提问作者Matheus
相关产品推荐
相关产品推荐

