我的公司有一个日志文件,包含不同的日志。所以确切的问题是我有正则表达式或模式来描述混合日志!但是日志在其他顺序中具有相同的信息。现在的问题是我如何区分不同的日志?
示例:
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}
示例:
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中的信息。 非常感谢。
答案 0 :(得分:0)
根据您给出的示例,我会将常用内容从每行的前面拉出(直到“?”),然后通过kv {}过滤器运行其余内容。