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

配置Fluent-bit Helm Chart:解决Docker日志JSON未解析至Elasticsearch问题

解决Fluent-bit Docker日志log字段未结构化解析的问题

你已经成功把日志投递到Elasticsearch了,但核心问题是log字段里的JSON字符串没被解析成结构化数据——这是因为你虽然定义了docker解析器,但没在过滤阶段指定对log字段应用这个解析规则。

以下是修改后的values.yaml配置,重点补充了过滤规则并调整了解析器的字段解码设置:

parsers:
  enabled: true
  custom_parsers: |
    [PARSER]
        Name docker
        Format json
        Time_Key time
        Time_Format %Y-%m-%dT%H:%M:%S.%L
        Time_Keep On
        # 关键配置:指定解码log字段中的JSON内容
        Decode_Field_As json log

backend:
  type: es
  es:
    host: myhost
    port: 9243
    http_user: elastic
    http_passwd: elastic
    tls: "on"

# 添加filter阶段,对log字段应用docker解析器
filters:
  - name: parser
    parser:
      key_name: log          # 目标解析字段
      parser: docker         # 使用我们定义的docker解析器
      reserve_data: true     # 保留kubernetes元数据、stream等原有非log字段
      preserve_key: false    # 解析后替换原log字段为结构化数据(设为true可保留原始log字符串)

关键修改说明:

  1. 调整parsers配置:
    把原来的JSON格式parser定义换成Fluent-bit原生的配置块,明确添加Decode_Field_As json log,告诉解析器专门处理log字段内的JSON内容。

  2. 新增filter规则:
    通过parser过滤器指定对log字段使用docker解析器,reserve_data: true确保不会丢失kubernetes、stream等元数据字段。如果需要保留原始log字符串,可以把preserve_key设为true,这样会同时保留原log字段和解析后的结构化字段。

修改完成后,Elasticsearch收到的日志会变成结构化形式:原来的log字符串会被替换成嵌套的JSON对象,你可以直接查询log.logger_name、log.eventName等细分字段,无需再对log字段做字符串层面的解析。

内容的提问来源于stack exchange,提问作者Vicky Thakor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:54:41