Amazon-Web-Services
AWS CloudWatch 解析 JSON 不區分大小寫
在 AWS 控制台的 WAF 部分,有一個“CloudWatch Log Insights”選項卡,提供了一些範例查詢。其中之一是“前 100 名主機”。
fields @timestamp, @message | parse @message '{"name":"Host","value":"*"}' as host | stats count(*) as requestCount by host | sort requestCount desc | limit 100
對於我期望的大多數人來說,這是一個有點誤導性的報告標題。我發現大約一半的流量用途
host
與Host
. 在解析該標頭時,我花了 30 分鐘試圖使此查詢不區分大小寫,然後放棄並決定在這裡詢問。實現這一目標的最簡單方法是什麼?
這就是我解決它的方法:
fields @timestamp, @message | parse @message /\{"name":"(H|h)ost","value":"(?<host>.*?)"\}/ | stats count(*) as requestCount by host | sort requestCount desc | limit 100
從全域模式更改為正則表達式擷取組還允許使用正則表達式進行其他匹配。