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

Logstash多模式多行日志合并输入及单行日志兼容问题咨询

Logstash多模式多行日志处理解决方案

多模式整合到单个输入的实现方法

你遇到的重复输出问题本质是同一个日志文件被多个file输入插件重复读取导致的,完全可以把所有多行合并规则整合到单个multiline codec中,不需要创建多个输入。
multiline codec的pattern参数支持标准正则的|(或)语法,你可以把所有需要匹配的多行模式用|拼接即可,示例配置如下:

input {
  file {
    path => "/your/log/path/*.log"
    start_position => "beginning"
    sincedb_path => "/data/logstash/sincedb" # 测试场景可临时设为/dev/null跳过已读记录校验
    codec => multiline {
      # 多个多行规则用|拼接,注意正则特殊字符需要转义
      pattern => "pattern1|pattern2|pattern3"
      # 根据业务场景设置:previous表示匹配到pattern的行合并到上一行,next表示合并到下一行
      what => "previous"
      # 根据需求设置是否反向匹配:true表示不匹配pattern的行触发合并,false表示匹配pattern的行触发合并
      negate => false
      # 可选:设置合并超时时间,避免长时间等待未结束的多行事件
      auto_flush_interval => 5
    }
  }
}

filter {
  # 原有单行、多行的解析规则不用修改,直接复用即可
}

output {
  # 原有输出配置不变
}

特殊场景说明:如果你的不同多行模式需要对应不同的合并规则(比如有的模式要合并到上一行,有的要合并到下一行),则不适合在codec层处理,可以先去掉multiline codec,把每行都作为独立事件采集,再在filter层用multiline过滤器实现多规则合并,灵活性更高。

multiline codec对单行消息的支持

multiline codec完全可以正常处理单行消息:只有符合你配置的合并规则的行会被合并为一个事件,所有不符合合并规则的独立单行消息,会直接作为单独的事件原样输出,不会有任何格式修改,不需要单独配置单行消息的输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 01:36:05