Logstash:有一个日志文件包含不同的日志

时间:2016-03-02 13:15:58

标签: elasticsearch logstash kibana

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

  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}

  3. 所以我的问题是订单改变了!!我的想法是我定义了一些类型,但它不起作用。

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

    我希望你能帮助我,以便我可以在之后使用Kibana中的信息。 非常感谢。

1 个答案:

答案 0 :(得分:0)

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