我尝试使用ELK堆栈来做一些日志分析。在logstash方面,过滤器的一部分配置如下:
#Parsing Apache Logs
if "_apache_log" in [tags] {
grok {
match => { "message" => "%{COMMONAPACHELOG}" }
}
date {
match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
kv {
field_split => "&?"
}
}
我的日志:
172.31.8.12 - -/- [10/Feb/2017:03:07:30 +0000] "GET /audit/beacon/?rt.start=navigation&rt.tstart=1480919576471&rt.bstart=1480919576681&rt.end=1480919576764&t_resp=86&t_page=207&t_done=293&t_other=t_domloaded%7C221%2Cboomerang%7C88%2Cboomr_fb%7C210&r=&nt_red_cnt=0&nt_nav_type=0&nt_nav_st=1480919576471&nt_red_st=0&nt_red_end=0&nt_fet_st=1480919576472&nt_dns_st=1480919576472&nt_dns_end=1480919576472&nt_con_st=1480919576472&nt_con_end=1480919576472&nt_req_st=1480919576556&nt_res_st=1480919576557&nt_res_end=1480919576557&nt_domloading=1480919576557&nt_domint=1480919576692&nt_domcontloaded_st=1480919576692&nt_domcontloaded_end=1480919576693&nt_domcomp=1480919576761&nt_load_st=1480919576765&nt_load_end=1480919576765&nt_unload_st=0&nt_unload_end=0&u=http%3A%2F%2Fdev-test01.london.example.ad%3A2678%2Faudit%2F&v=%25boomerang_version%25&vis.st=visible&ua.plt=Win32&ua.vnd= HTTP/1.0" 200 5
但我发现,日志行中的一些键/值对与URI转义术语
如:
"u" => "http%3A%2F%2Fdev-test01.london.example.ad%3A2678%2Faudit%2F",
"v" => "%25boomerang_version%25",
我想要%3A => :和%2F到/
有没有办法解除这些条款?
答案 0 :(得分:0)
在阅读了一些文档之后,我发现有一种简单的方法来帮助unescape
urldecode {
all_fields => true
}
添加urldecode,并将all_fields设置为true,将有助于unescape。