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

如何在Fluent Bit中将自定义Parser用作多行解析器?配置报错求助

解决Fluent Bit Forward输入Multiline配置错误问题

你遇到的错误核心原因是:Forward输入插件不支持Multiline和Parser_Firstline这两个配置项——这两个参数属于tail输入插件的专属配置,你错误地将它们应用在了forward输入上,导致Fluent Bit启动时识别无效配置报错。

修正方案

调整配置结构,将多行日志处理逻辑从INPUT阶段移到FILTER阶段,使用专门的multiline过滤器来合并Spring Boot的多行日志,具体修改如下:

修改后的fluent-bit.conf

[SERVICE]
    flush       1
    log_level   error
    parsers_file parsers.conf

[INPUT]
    Name    forward
    Listen  0.0.0.0
    port    24224

# 新增Multiline过滤器处理Spring Boot多行日志
[FILTER]
    Name          multiline
    Match         spring-boot.*
    Parser_Firstline springboot
    # 可选:设置缓存大小,防止大日志溢出
    Buffer_Chunk_Size 1M
    Buffer_Max_Size   10M

[FILTER]
    Name         parser
    Match        spring-boot.*
    Key_Name     log
    Parser       springboot

[OUTPUT]
    Name  es
    Match *
    Host  elasticsearch
    Port  9200
    Index fluent-bit-spring-test
    Logstash_Format Off
    Retry_Limit     no_limits
    Trace_Error On
    Suppress_Type_Name On

[OUTPUT]
    Name   stdout
    Match  *

关键说明

  1. Forward插件定位:Forward插件仅负责接收外部(如Docker fluentd驱动)发送的日志,本身不具备多行日志合并能力,必须依赖multiline过滤器完成该操作。
  2. Multiline过滤器作用:通过Parser_Firstline指定的springboot解析器,识别每段多行日志的起始行(符合你定义的正则格式的行),将后续的换行日志合并为单条日志。
  3. Parser过滤器作用:在合并多行日志后,再用springboot解析器将原始日志字符串解析为time、level、pid等结构化字段,方便后续存储和查询。

另外,你的parsers.conf中的正则表达式和时间格式配置是适配Spring Boot默认日志格式的,可以继续使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:05:39