根据新文物文档中的说明,我尝试使用curl关闭正常运行时间监控:https://docs.newrelic.com/docs/alerts/availability-monitor-settings
根据此文档,此请求将禁用我的正常运行时间监控:
curl https://www.myhost.com/accounts/acct_id/applications/app_id/ping_targets/disable -X POST -H“X-Api-Key:”my_key“
以下是我正在使用的请求(删除个人信息):curl“https://api.newrelic.com/api/v1/accounts/NNNNNN/applications/NNNNNNN/ping_targets/disable” - X POST -H“X-Api-Key:x ... x”
我已成功使用我的acct_id,app_id和x-api-key进行其他GET命令。但是,当我尝试上述命令时,我收到此错误:
<hash>
<error>The requested page could not be found</error>
</hash>
我是curl命令的新手所以这可能只是我的结构的问题,但似乎url不正确。根据这个堆栈交换帖子:Turn Newrelic monitoring on or off via rest api没有办法做到这一点,但这与文档冲突。
那么,有没有办法实现这一目标?有没有人成功地做到了这一点?
答案 0 :(得分:5)
假设“正常运行时间监视”是指可用性监视,则必须通过禁用控制监视的策略来实现。这可以通过使用这样的命令来确定策略ID号
curl -X GET 'https://api.newrelic.com/v2/alert_policies.xml' -gH "X-Api-Key:<APIKEY>" -i -d 'filter[name]=<POLICY_NAME>'
如果政策名称包含空格,请替换为“+”。
从输出中找到POLICY_ID
<alert_policies_response>
<alert_policies>
<alert_policy>
<id>104446</id> <----<<<< POLICY_ID
<type>application</type>
<name><POLICY_NAME></name>
.....
还可以通过扫描输出的“可用性”来识别条件ID,并记下ID号。
<condition>
<id>997294</id> <----<<<< CONDITION_ID
<type>application_availability</type>
<severity>downtime</severity>
....
现在使用结果POLICY_ID和CONDITON_ID来禁用策略。
curl -X PUT 'https://api.newrelic.com/v2/alert_policies/<POLICY_ID>.json' \
-H 'X-Api-Key:<APIKEY>' -i \
-H 'Content-Type: application/json' \
-d \
'{
"alert_policy":
{
"conditions": [
{
"id": <CONDITION_ID>,
"enabled": false
}]
}
}'
请注意,一旦确定了POLICY_ID和CONDITION_ID,则只需要最后一个命令。