AlertManager客户端

半兽人 发表于: 2021-04-01   最后更新时间: 2021-04-01 17:09:58  
{{totalSubscript}} 订阅, 2,044 游览

Alertmanager有两个API,v1v2。v1在下面的代码中进行了描述,v2遵守了OpenAPI规范,可以在Alertmanager仓库中找到。客户端需要不断地重新发送警报,只要它们还处于活动状态(通常是30秒到3分钟)。客户端可以通过 POST 请求向Alertmanager推送告警明细。

每条告警通过label标识是否为相同实例(对重复数据进行删除)。annotations(注解)始终设置为最近收到的注解,并且不能标识告警。

startsAtendsAt时间戳都是可选的。如果省略了startsAt,则当前时间由Alertmanager分配。endsAt只有在已知告警结束时间的情况下才会被设置。否则,它将被设置为一个可配置的超时时间段,从最后一次收到警报的时间开始计算。

generatorURL字段是一个唯一的反向链接,用于回调客户端中造成该告警的原因地址。

[
  {
    "labels": {
      "alertname": "<requiredAlertName>",
      "<labelname>": "<labelvalue>",
      ...
    },
    "annotations": {
      "<labelname>": "<labelvalue>",
    },
    "startsAt": "<rfc3339>",
    "endsAt": "<rfc3339>",
    "generatorURL": "<generator_url>"
  },
  ...
]

示例

curlalertmanager发送告警规则。

curl -H "Content-Type: application/json" \
-X POST \
-d '[{"labels":{"name":"www.orchome.com"},"annotations":{"name":"www.orchome.com"},"generatorURL":"http://127.0.0.1","startsAt":"2021-04-01T11:12:03.000+08:00","endsAt":"2021-04-01T11:49:30.000+08:00"}]' \
"http://127.0.0.1:9093/api/v2/alerts"

注意改掉开始和结束时间,不然alertmanager不会展示

更新于 2021-04-01

查看Prometheus更多相关的文章或提一个关于Prometheus的问题,也可以与我们一起分享文章