logstash 的grok 正则匹配URL

官方文档

https://github.com/logstash-plugins/logstash-patterns-core/blob/main/patterns/ecs-v1/grok-patterns

需求数据:

[27/Sep/2023:14:07:18 +0800] 2409:8929:1240:992c:c036:fd71:fc30:a3d1 - 2471 "-" "POST https://3g.xxx.com/xxx/xxx/xxx/new/getAvPrice?APPTYPE=iPhone&APPVERSION=4.4.5&DEVICEALIAS=161a3797c8e0d5852b7&DEVICEID=fdb4973e88851a051be886faac3d9c42&DEVICETYPE=iPhone14,2&IDFA=00000000-0000-0000-0000-000000000000&ITVERSION=OLD&LANGTYPE=zh-Hans&PUSHTOKEN=37DF37ADE8BB1468810D069156C94C1A65F89975F32DB83038AE443CE441C310&REGISTRATIONID=161a3797c8e0d5852b7&SYSTEMVERSION=16.4.1&appversion=4.4.5&diviceid=fdb4973e88851a051be886faac3d9c42&ec=11KDcHE7gtysCnAT6ajT+FaxjcMSx+uApYBbkRtqeGBGm4GoC+0liMkVdtUMsWbUeoC217sORX8Xjyc6nVZD71ERX&lang=zh&os=IOS&osversion=16.4.1&secType=ijm&timeZone=GMT+8:00&token=N&type=MOBILE" 200 1428 687194 -,DYNAMIC|CHARGE|NOTLAST "CSMBP-AppStore-Package/4.4.5 (iPhone; iOS 16.4.1; Scale/3.00)" "application/json;charset=UTF-8"

Grok 模式

\[%{HTTPDATE:time_local}\] %{IPORHOST:ip} \- %{NUMBER:v1} %{QS:v2} \"(?:%{WORD:method} %{URL:url})%{GREEDYDATA:v3}

自定义模式

URL (http(s)?:\/\/)?%{URIHOST:domain_name}%{URIPATH:uripath}

结果

{
  "method": "POST",
  "ip": "2409:8929:1240:992c:c036:fd71:fc30:a3d1",
  "time_local": "27/Sep/2023:14:07:18 +0800",
  "uripath": "/xxx/xxx/xxx/new/getAvPrice",
  "url": "https://3g.xxx.com/xxx/xxx/xxx/new/getAvPrice",
  "domain_name": "3g.xxx.com",
  "v1": "2471",
  "v2": "\"-\"",
  "v3": "?APPTYPE=iPhone&APPVERSION=4.4.5&DEVICEALIAS=161a3797c8e0d5852b7&DEVICEID=fdb4973e88851a051be886faac3d9c42&DEVICETYPE=iPhone14,2&IDFA=00000000-0000-0000-0000-000000000000&ITVERSION=OLD&LANGTYPE=zh-Hans&PUSHTOKEN=37DF37ADE8BB1468810D069156C94C1A65F89975F32DB83038AE443CE441C310&REGISTRATIONID=161a3797c8e0d5852b7&SYSTEMVERSION=16.4.1&appversion=4.4.5&diviceid=fdb4973e88851a051be886faac3d9c42&ec=11KDcHE7gtysCnAT6ajT+FaxjcMSx+uApYBbkRtqeGBGm4GoC+0liMkVdtUMsWbUeoC217sORX8Xjyc6nVZD71ERX&lang=zh&os=IOS&osversion=16.4.1&secType=ijm&timeZone=GMT+8:00&token=N&type=MOBILE\" 200 1428 687194 -,DYNAMIC|CHARGE|NOTLAST \"CSMBP-AppStore-Package/4.4.5 (iPhone; iOS 16.4.1; Scale/3.00)\" \"application/json;charset=UTF-8\""
}

调试工具Kibana

自定义正则生效配置

如何使我们自定义的正则生效呢,在logstash 目录下搜索文件 grok-patterns,在文件末尾追加自定义的内容(名字不能与已有的名字重复),重启服务生效。 

logstash-7.14.2/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.3.1/patterns/legacy

logstash-7.14.2/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.3.1/patterns/ecs-v1

logstash 配置文件

filter {

 grok {
    match => {
       "message" => "\[%{HTTPDATE:time_local}\] %{IPORHOST:ip} \- %{NUMBER:v1} %{QS:v2} \"(?:%{WORD:method} %{URL:url})%{GREEDYDATA:v3}"
   
       }
  }
  
 date {

    match => [ "time_local", "dd/MMM/yyyy:HH:mm:ss Z" ]

    timezone => "UTC"
    target => "@timestamp"


}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值