小编emo*_*nik的帖子

如何使用logstash过滤器处理多行日志条目?

背景:

我有一个自定义生成的日志文件,具有以下模式:

[2014-03-02 17:34:20] - 127.0.0.1|ERROR| E:\xampp\htdocs\test.php|123|subject|The error message goes here ; array (
  'create' => 
  array (
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
  ),
)
[2014-03-02 17:34:20] - 127.0.0.1|DEBUG| flush_multi_line
Run Code Online (Sandbox Code Playgroud)

第二个条目[2014-03-02 17:34:20] - 127.0.0.1|DEBUG| flush_multi_line是一个虚拟行,只是为了让logstash知道多行事件结束,稍后将删除此行.

我的配置文件如下:

input {
  stdin{}
}

filter{
  multiline{
      pattern => "^\["
      what => "previous"
      negate=> true
  }
  grok{
    match => ['message',"\[.+\] - %{IP:ip}\|%{LOGLEVEL:loglevel}"]
  }

  if [loglevel] == "DEBUG"{ # the event flush  line
    drop{}
  }else if [loglevel] == "ERROR"  { …
Run Code Online (Sandbox Code Playgroud)

regex multiline logstash logstash-grok

27
推荐指数
3
解决办法
4万
查看次数

标签 统计

logstash ×1

logstash-grok ×1

multiline ×1

regex ×1