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"
}