首页 > 解决方案 > Logstash 混合日志解析

问题描述

我正在通过 Logstash 处理具有各种模式的单行消息和多行消息的日志文件,我想将多行消息作为单行消息读取,并将单行消息按原样读取。

目前,我正在使用以下 Logstash 配置,但这会在输出中创建重复消息。此外,对于每一种新的多行消息模式,我都需要使用自己的多行编解码器创建一个单独的输入。有没有办法将所有这些模式组合成一个输入?

示例 Logstash 配置文件:

input {
#Using a single log file as input, containing multiple multi-line messages (patterns) and single line messages
  file {
    codec => multiline {
          pattern => pattern1
          ....
        }
  }

  file {
    codec => multiline {
          pattern => pattern2
          ....
        }
  }

  file {
   #Single line message processing 
  }

}

filter {
#Contains filters and parsing for both multi-line and single line messages 
}

output {
#To json file
}

我想做的事:

input {
  file {
    codec => multiline {
          pattern => pattern1,pattern2,....
          ....
          }
  }
  file {
    #Single line messages input
    #May not be needed
  }

}

此外,您可以在 Logstash 中使用多行编解码器输入处理单行消息吗?

标签: logstashlogstash-groklogstash-configurationlogstash-file

解决方案


推荐阅读