我有要解析的数据。我已经拆分了部分数据,但需要再次解析。还有其他方法可以解析我的数据吗?
在我的数据中有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方法解析我的数据吗?使用拆分方法进行过滤是否有效?
答案 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过滤器。