HTTPGetJSON
HTTPGetJSON 對指定的 URL 執行 HTTP 請求,並返回 jsonq.JsonQuery 物件以在警報模板中使用。例:
template example {
{{ $ip := 8.8.8.8 }}
{{ $whoisURL := printf "http://whois.arin.net/rest/ip/%s" $ip }}
{{ $whoisJQ := $.HTTPGetJSON $whoisURL }}
IP {{$ip}} owner from ARIN is {{ $whoisJQ.String "net" "orgRef" "@name" }}
}
在這種情況下,$ ip 地址是硬編碼的,但在真實的警報中,它通常來自使用類似 {{ $ip := .Group.client_ip}}
的警報標籤,其中 client_ip 是標籤金鑰,其值是 IP 地址。
jsonq 結果類似於 jq JSON 處理器生成的結果,因此你可以使用以下命令在 BASH shell 中進行測試:
$ curl -H "Accept: application/json" http://whois.arin.net/rest/ip/8.8.8.8 | jq ".net.orgRef"
{
"@handle": "GOGL",
"@name": "Google Inc.",
"$": "https://whois.arin.net/rest/org/GOGL"
}