我不知道如何匹配我的TimeStamp。有人可以帮助我吗?
来自Apache Log的TimeStamps示例:"2016-06-13T14:54:39.000+0100"
filter { if [type] == "apache" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" } }
date {
timezone => "UTC"
match => [ "timestamp" , "yyyy-mm-ddTHH:mm:ss Z"]
} } }
output { stdout { codec => rubydebug } }
输出:
{:timestamp =>“2016-06-13T14:56:43.196000 + 0100”,:message =>“错误: 无法注册过滤日期插件。报告的错误是:\ n非法 模式组件:T为模式'yyyy-mm-dd \ THH:mm:ss Z'“, :级别=>:错误}
Apache日志示例:
{“@ version”:“1”,“@ timestamp”:“2016-06-14T09:11:23.000 + 0100”, “message”:“GET / page1 / page2 / HTTP / 1.1“,”via“:”192.168.1.1“,”client-ip“:”192.168.1.23“, “remote-logname”:“ - ”,“remote-user”:“ - ”,“recv-time”: “[14 / Jun / 2016:09:11:23 +0100]”,“serve-time-microsec”:“85471”, “request”:“GET / page1 / page2 / HTTP / 1.1“,”status“:”200“,”size“:”79648“,”referer“: “http://www.google.com/”,“user-agent”:“Mozilla / 5.0(Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13)Gecko / 20101203 Firefox / 3.6.13“,”url“: “/ page1 / page2 /”,“查询”:“”, “method”:“GET”,“protocol”:“HTTP / 1.1”,“vhost”:“www.site.com”, “received-size”:“998”}
答案 0 :(得分:1)
从您的完整日志中我可以看到它已经采用Json格式,因此您不需要使用note3base.slice(0)
模式在消息字段上使用grok过滤器。
只需使用日期过滤器,格式如下:
COMBINEDAPACHELOG
这是我的完整logstash.conf文件,该文件适用于您的示例:
date {
timezone => "UTC"
match => [ "timestamp" , "yyyy-mm-dd'T'HH:mm:ss.SSSZ"]
}