logstash过滤器有助于将URI中的转义术语更改回普通字符串

时间:2017-02-10 07:16:05

标签: logstash

我尝试使用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到/

有没有办法解除这些条款?

1 个答案:

答案 0 :(得分:0)

在阅读了一些文档之后,我发现有一种简单的方法来帮助unescape

  urldecode {
    all_fields => true
  } 

添加urldecode,并将all_fields设置为true,将有助于unescape。