[英]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.