簡體   English   中英

從 uri 路徑中過濾字段 - Grok

[英]Filter a field from uri path - Grok

試圖從 URI 中過濾掉一個參數。

樣本:

"123.123.123.234" "yRETHGsggbbkndgddggddgRR" "03/Aug/2022:13:59:58 +0200" "34" "GET /api/v1/users/323408611/action/check-status HTTP/1.1" 200 26 "Apache-HttpClient/4.5.9 (Java)"

圖案:

"%{IP:ip}" "%{DATA:rdmgen}" "%{HTTPDATE:timestamp}" "%{NUMBER:time}" "%{WORD:urimthd} %{PATH:path}(?:%{URIPARAM:param})? %{WORD:proto}/%{NUMBER:proto_ver}" %{NUMBER:status} %{NUMBER:total} "%{GREEDYDATA:agent}"

123456789 - 是用戶 ID

URIPARAM 是可選的,有時參數會添加,有時參數不會添加到日志中。 我正在嘗試過濾 URI 中的這 9 位數字,但是。 有沒有辦法過濾數字以及 uri 和可選的 uri 參數?

謝謝

"%{IP:ip}" "%{DATA:rdmgen}" "%{HTTPDATE:timestamp}" "%{NUMBER:time}" "%{WORD:urimthd} %{PATH:path}\/users\/%{NUMBER:userid}%{PATH:path} %{WORD:proto}/%{NUMBER:proto_ver}" %{NUMBER:status} %{NUMBER:total} "%{GREEDYDATA:agent}"

像這樣嘗試,但如果日志中沒有“/users/”模式,它將失敗,使用 ifs 或 smth 搜索解決方案

(?:"(\/users\/)?:%{NUMBER:userid}|%{PATH:path}"|%{PATH:path})

這適用於我的情況,但不適用於/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM