深入解析数据

时间:2019-07-12 07:20:03

标签: logstash

我有要解析的数据。我已经拆分了部分数据,但需要再次解析。还有其他方法可以解析我的数据吗?

在我的数据中有page_size部分,我想将此数据放在要创建的另一个字段中。它必须是这样的:my_newfield_page_size:25 页面部分也是如此。我需要这样:my_newfield_page = 1 最后一个例子,我有包含部分,我需要像这样的“包含”部分:my_data_type:contains

这是我的数据:

IP Adress - - [01/Jul/2019:13:03:07 +0300] "POST /search?page=1&page_size=25 HTTP/1.1" 200 846 "https://try.com/search/?contains=kingcbd" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.170" "IP Adress" "US"

这是我在logstash配置文件中尝试过的内容:

filter {


   if[method]=="POST"
{
mutate { split => { url => "&" } }

mutate { 



        add_field => {
                "query" => "%{[url][0]}"
        "size" => "%{[url][1]}"
        }



}
mutate { split => {query => "=" } }
mutate { 



        add_field => {

        "amount" => "%{[query][1]}"
        }



}



mutate { split => { referrer => "=" } }
mutate {



        add_field => {
                "query_type" => "%{[referrer][0]}"
                "keyword" => "%{[referrer][1]}"
        }



}

}
  mutate {
    convert => {
      "amount" => "integer"
    }
  }
}

我想特别问的是,还有其他方法可以使用split方法解析我的数据吗?使用拆分方法进行过滤是否有效?

1 个答案:

答案 0 :(得分:0)

关于您问题的最后一部分:“我想特别要问的是,还有其他方法可以使用split方法解析我的数据吗?”

您可以使用grok过滤器

https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html

您可以在此处检查Grok支持的不同模式:

https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns

看起来您可以使用COMMONAPACHELOG,然后仅对所需的数据应用另一个Grok过滤器。