Logstash 5.2.0中的多行编解码器不工作

Logstash 5.2.0中的多行编解码器不工作,logstash,Logstash,Logstash中的以下编解码器配置用于从不检测新行: input { file { path => "c:\temp\log5.log" type => "log4net" codec => multiline { pattern => "^hello" negate => true what => previous }

Logstash中的以下编解码器配置用于从不检测新行:

input { 
    file {
        path => "c:\temp\log5.log"
        type => "log4net"
        codec => multiline {
          pattern => "^hello"
          negate => true
          what => previous
           }
      }
}
请确认我对上述配置的解释是否正确:

如果一行不是以文本“hello”开头,则合并该行 与前一行。相反,如果一行以文本开头 “hello”处理为新日志事件的开始

在上面的配置中,Logstash从未在我的日志文件中检测到新行,即使我有几行以“hello”开头。你知道问题出在哪里吗

编辑:

input { 
  file { 
    path => "//22.149.166.241/GatewayUnsecure/Log_2016.03.22_22.log"
    start_position => "beginning" 
    type => "log4net" 
    codec => multiline { 
      pattern => "^%{YEAR}[/-]%{MONTHNUM}[/-]%{MONTHDAY}" 
      negate => true 
      what => previous 
    } 
  } 
}
日志样本:

2016-03-22 22:00:07,768 [3] INFO AbCap.Cerberus [(null)] - Cerberus 'Cerberus Service Hosting - Unsecure', ('Local'), version 1.0.0.0, host 'WinService' 2016-03-22 22:00:07,783 [7] INFO AbCap.Cerberus [(null)] - Starting 'Cerberus Service Hosting - Unsecure' on JHBDSM020000273 in Local. 2016-03-22 22:00:07,783 [7] DEBUG AbCap.Cerberus [(null)] - Starting: WcfHostWorker 2016-03-22 22:00:07,783 [7] INFO AbCap.Cerberus [(null)] - is opening

您的解释是正确的,您可以添加一些示例日志,因为它们出现在输入文件中吗?这可能会让我们发现你的问题的原因!实际日志存储输入配置(下一条注释中的文件示例):输入{file{path=>“//22.149.166.241/GatewayUnsecure/Log_2016.03.22_22.Log“start_position=>“start”type=>“log4net”编解码器=>多行{pattern=>“^%{YEAR}[/-]%{MONTHNUM}[/-]%{MONTHDAY}”否定=>true what=>previous}}}}}2016-03-22 22:00:07768[3]INFO AbCap.Cerberus[(null)]-Cerberus'Cerberus服务托管-不安全',('Local'),版本1.0.0.0,主机'WinService'2016-03-22:00:07783[7]INFO AbCap.Cerberus[(null)]-在本地启动JHBDSM0200000273上的“Cerberus服务托管-不安全”。2016-03-22 22:00:07783[7]调试AbCap.Cerberus[(null)]-开始:WcfHostWorker 2016-03-22 22:00:07783[7]信息AbCap.Cerberus[(null)]-正在打开。嘿,里卡多,我把你的配置/日志示例编辑成这个问题,但我不确定文件中的日志格式,你能更新吗?再次感谢威尔!当我弄明白发生了什么时,我脸上有点不高兴——我的日志文件是用UCS-2 Big-Endian编码的,这自然会导致我在代码和grok过滤器中的模式失败,因为多行编解码器使用的默认编码是UTF-8!因此,我将编码改为
UCS-2BE
,所有的工作都如预期的那样。谢谢@WillBarnwell的帮助!您的解释是正确的,您可以添加一些示例日志,因为它们出现在输入文件中吗?这可能会让我们发现你的问题的原因!实际日志存储输入配置(下一条注释中的文件示例):输入{file{path=>“//22.149.166.241/GatewayUnsecure/Log_2016.03.22_22.Log“start_position=>“start”type=>“log4net”编解码器=>多行{pattern=>“^%{YEAR}[/-]%{MONTHNUM}[/-]%{MONTHDAY}”否定=>true what=>previous}}}}}2016-03-22 22:00:07768[3]INFO AbCap.Cerberus[(null)]-Cerberus'Cerberus服务托管-不安全',('Local'),版本1.0.0.0,主机'WinService'2016-03-22:00:07783[7]INFO AbCap.Cerberus[(null)]-在本地启动JHBDSM0200000273上的“Cerberus服务托管-不安全”。2016-03-22 22:00:07783[7]调试AbCap.Cerberus[(null)]-开始:WcfHostWorker 2016-03-22 22:00:07783[7]信息AbCap.Cerberus[(null)]-正在打开。嘿,里卡多,我把你的配置/日志示例编辑成这个问题,但我不确定文件中的日志格式,你能更新吗?再次感谢威尔!当我弄明白发生了什么时,我脸上有点不高兴——我的日志文件是用UCS-2 Big-Endian编码的,这自然会导致我在代码和grok过滤器中的模式失败,因为多行编解码器使用的默认编码是UTF-8!因此,我将编码改为
UCS-2BE
,所有的工作都如预期的那样。谢谢@WillBarnwell的帮助!