Fluentd 日志截断问题
某些日志行内容过长,fluentd 在采集时会将其拆分成多个 message,最终在 Kibana/Loki 等平台中呈现为被截断的日志。

fluentd 提供的 concat 插件可以根据日志的起始标记判断哪些 message 属于同一条日志,并将其自动合并。
以下面的日志为例,可以看到每行日志都是以时间戳开头,格式为 <时间戳>|<trace_id>|<trace_id>|Trace|...:
1 | 2025-06-06T09:47:13.3580365+08:00|4f51c5b1-49fc-4796-a026-c4b56fd8e72c|4f51c5b1-49fc-4796-a026-c4b56fd8e72c|Trace|Request|... |
那么就可以用下面的正则表达式进行匹配:
1 | ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+\+\d{2}:\d{2}\| |
匹配效果如下:

通过上面的正则表达式,就可以在对应的 Flow 或 ClusterFlow 的 spec.filters 中添加 concat 配置:
1 | spec: |
等待 fluentd 加载新配置后,在 Kibana 就可以看到新的 message 已经不会被截断:

Fluentd 日志截断问题
You need to set
install_url to use ShareThis. Please set it in _config.yml.