具有不同事件分隔符的logstash多行的grok模式



我有一个日志文件(zope/plone event.log),它使用自定义字符串(例如"-----")作为事件之间的分隔符,如何grok模式解析这个日志文件到logstash应该是?

下面是日志的示例:

------
2014-07-21T12:13:30 INFO ZServer HTTP server started at Mon Jul 21 12:13:30 2014
        Hostname: localhost
        Port: 8401
------
2014-07-21T12:13:44 WARNING SecurityInfo Conflicting security declarations for "setText"
------
2014-07-21T12:13:44 WARNING SecurityInfo Class "ATTopic" had conflicting security declarations
------
2014-07-21T12:13:47 INFO DocFinderTab Applied patch version 1.0.5.

您应该从多行编解码器或过滤器开始,以创建单个事件进行处理。

编辑:

文档给出了这个例子:

filter {
  multiline {
    pattern => "pattern, a regexp"
    negate => boolean
    what => "previous" or "next"
  }
}

并描述了"否定"one_answers"什么"的作用。希望"pattern"有意义。

那么,"所有不以日期开头的行都属于前一行"怎么样?可能是这样的:

filter {
  multiline {
    negate => 'true'
    pattern => "^%{TIMESTAMP_ISO8601} "
    what => 'previous'
  }
}

您将在每行末尾留下"----"。由于不需要它们作为分隔符,因此可以去掉它们(在多行过滤器节之前):

if message =~ /^-+$/ {
    drop{}
}

相关内容

  • 没有找到相关文章

最新更新