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