日志:获取一个包含不同日志的日志文件



我从我公司得到了一个日志文件,其中包含不同的日志。所以确切的问题是我有描述混合日志的正则表达式或模式!但是日志以其他顺序具有完全相同的信息。现在的问题是我如何区分不同的日志?

  1. 例:

    115.123.47.28 - - 24/Feb/2016:00:00:00 -0800 GET /path1/path2/path3/?ex=juDySw3QsKltRRmaFI%253D id=123456 produced=2016

    我的正则表达式:

    %{IP:userIP}.*- %{GREEDYDATA:logDATE}(?![0-9]) -%{GREEDYDATA:nummer} %{WORD:method} (?:%{UNIXPATH:PATH}).*ex=%{GREEDYDATA:EX} id=%{NUMBER:id} produced=%{NUMBER:production year}

  2. 例:

    117.143.35.19 - - 24/Feb/2016:00:00:00 -0800 GET /path1/path2/path3/? id=123456 produced=2016 ex=juDySw3QsKltRRmaFI%253D

    我的正则表达式:

    %{IP:userIP}.*- %{GREEDYDATA:logDATE}(?![0-9]) -%{GREEDYDATA:nummer} %{WORD:method} (?:%{UNIXPATH:PATH}).* id=%{NUMBER:id} produced=%{NUMBER:production year} ex=%{GREEDYDATA:EX}

所以我的问题是顺序变了!!我的想法是我定义了一些类型,但它不起作用。

grok { 
    match => { "message" => ["TYPE1,%{IP:userIP}.*- ......",
                             "TYPE2,%{IP:userIP}.*- ......",
         }
  }
date {
  match => ["logDATE", "dd/MMM/YYYY:HH:mm:ss" ]
}

希望您能帮助我,以便我以后可以使用 Kibana 中的信息。多谢。

根据您给出的示例,我会将常见内容从每行的前面拉出(直到"?"),然后通过 kv{} 过滤器运行其余内容。

最新更新