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

Splunk Otel Collector多行日志配置失效问题排查求助

Splunk Otel Collector 多行日志拆分问题排查方案

核心配置逻辑修正

你的firstEntryRegex规则逻辑搞反了:这个配置是用来匹配新日志条目的起始行,而你要合并的是属于上一条日志的后续行(前置空白或Caused by开头的内容)。两种修正方式:

  1. 匹配真正的新日志起始行(非空白、非Caused by开头)
multilineConfigs: 
  - namespaceName:
      value: .*
      useRegexp: true
    podName:
      value: .*
      useRegexp: true
    containerName:
      value: .*
      useRegexp: true
    firstEntryRegex: ^(?!\s|Caused by)
  1. 用negate: true反转匹配逻辑,让符合规则的行合并到上一条
multilineConfigs: 
  - namespaceName:
      value: .*
      useRegexp: true
    podName:
      value: .*
      useRegexp: true
    containerName:
      value: .*
      useRegexp: true
    firstEntryRegex: ^(?:\s|Caused by)
    negate: true

通配符配置问题排查

  1. 补全useRegexp: true参数:你只给podName加了该参数,namespaceName和containerName的.*会被当成字面量匹配,而非正则通配符,导致只有名字为.*的资源才会应用多行规则,必须给所有使用正则的字段加上该参数。
  2. 缩小范围验证:临时指定具体的命名空间、Pod或容器名测试,若规则生效,说明通配符的正则配置确实存在问题。

其他排查方向

  • 检查规则冲突:如果同时启用了kubernetes_logs内置的多行规则,可能会覆盖自定义配置,需确认优先级。
  • 适配Go正则引擎:regex101默认用PCRE引擎,而Splunk Otel Collector用Go语言的regexp引擎,可尝试给正则添加多行模式锚点(?m)^,确保^匹配每行开头。
  • 核对日志空白字符:若日志中的空白是全角空格或制表符,需确保正则的\s覆盖这些场景(\s默认包含空格、制表符等空白字符)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:12:43