在过滤器中使用两种类型的数据进行Logstash配置处理

时间:2019-07-14 19:56:17

标签: elasticsearch logstash

我从某处获得两种数据。当它们出现时,我可以单独操作它们,但是我想输入一个可以分别操作这两个数据的过滤器。

当我再次从过滤器中删除“&%{DATA:look}”部分时,它对我的​​一个数据有效,而对于某些字段,其他数据将为空。

filter {


   if[method]=="POST"
{
  grok {
     match => {
       "message" => '%{DATA:user_name} \[%{HTTPDATE:time_local}\] "%{WORD:method} %{DATA:type}?%{WORD:page}=%{DATA:page_size}&%{DATA: referrer_page_size}=%{DATA:total_page} HTTP/%{NUMBER:http_version}" %{NUMBER:response_code} (?:%{NUMBER:bytes}|-) "%{DATA:connection}//%{DATA:search}/%{DATA:try2}/\?%{DATA:typeof_query}=%{DATA:looked_for}&%{DATA:look}" "%{DATA:agent}" "%{DATA:http_x_forwarded_for}" "%{DATA:country}"'

     }
  }

}
}

这是我收到的数据之一,但我的过滤器不起作用:

IP Adress - - [01/Jul/2019:15:36:10 +0300] "POST /search?page=1&page_size=25 HTTP/1.1" 200 78 "https://try.com/search/?contains=pflichtteilauskunft" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0" "IP Adress" "DE"

page_size,search,look,try2,type,looked_for,page,total_page,typeof_query,连接,time_local,国家/地区以上消息的所有字段均为空。

这是我可以正常使用的第二个数据:

IP Adress - - [01/Jul/2019:10:04:45 +0300] "POST /search?page=1&page_size=25 HTTP/1.1" 200 511 "https://try.com/search/?contains=primegrand&sort=cdate_d" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "IP Adress" "IN"

我把所有领域都填满了。我需要将这两个数据处理到我的过滤器中,但我不知道该怎么做。

0 个答案:

没有答案