You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s下EFK栈配置ILM后日志仍写入旧索引问题咨询

问题根因

你配置的ILM策略、索引模板、引导别名均无问题,故障核心出在Fluentbit的ES输出配置:当前你启用了Logstash_Format On参数,该参数会自动按照Logstash_Prefix+YYYY.MM.DD的规则生成索引名称,直接写入对应日期索引,完全没有使用你提前配置的new-alias写别名,因此日志还是写入旧格式索引,ILM托管的序列化索引无法接收数据。

排查验证步骤
  • 先验证ES侧配置有效性:执行如下命令写入测试数据
POST new-alias/_doc/test-doc-001
{
  "test_field": "test_value"
}

随后查询当前is_write_index为true的索引new-2021.09.30-000013,确认测试数据已写入该索引,即可证明ES侧ILM、别名、模板配置均正常,问题完全出在Fluentbit配置。

  • 查看Fluentbit运行日志,确认日志输出的目标索引为new-YYYY.MM.DD格式,进一步验证配置问题。
解决方法

推荐使用修改Fluentbit写入目标为别名的方案,改造成本最低,逻辑最清晰:
修改Fluentbit的ES输出配置如下:

[OUTPUT]
    Name            es
    Match           *
    Host            ${FLUENT_ELASTICSEARCH_HOST}
    Port            ${FLUENT_ELASTICSEARCH_PORT}
    HTTP_User       ${FLUENT_ELASTICSEARCH_USER}
    HTTP_Passwd     ${FLUENT_ELASTICSEARCH_PASSWORD}
    # 关闭Logstash自动按日期生成索引的逻辑
    Logstash_Format Off
    # 直接指定写入ILM绑定的写别名
    Index           new-alias
    Trace_Error     On
    Replace_Dots    On
    Retry_Limit     False
    tls             On
    tls.verify      Off

修改完成后重启Fluentbit Pod,后续新日志就会写入别名,由ILM自动按照你配置的规则滚动生成带序列号的新索引。

额外优化建议
  • 原有旧格式的new-YYYY-MM-DD索引可以手动绑定ILM策略,或者配置单独的清理规则,避免占用存储空间。
  • ILM的rollover规则建议补充max_size(建议单分片设为30-50GB)、max_docs参数,仅按时间滚动在流量波动场景下仍可能出现分片过大的问题,多条件触发更稳妥。

内容的提问来源于stack exchange,提问作者Mitesh Gangaramani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:24:05