调用 Alertmanager 插件进行邮件转发以及动态配置邮箱
本文介绍如何向alertmanager提供的api接口发送json文件以及邮箱配置,让alertmanager进行邮件的转发以及邮箱的动态配置功能
alertmanager是一个邮件转发器,它是基于prometheus监控软件的告警信息转发软件,可以实时将用户状态的报警信息转发到用户邮箱,以下是官方的介绍:
The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts.
Alertmanager处理客户端应用程序(如Prometheus服务器)发送的警报。它负责重复数据消除、分组,并将它们路由到正确的接收器集成,如电子邮件、PagerDuty或OpsGenie。它还负责警报的静音和抑制。
邮件发送
promethues的官方文档可以查到alertmanager提供的API信息HTTP API | Prometheus
alertmanager由 /api/v1/alerts 提供一个GET类型的接口,可以获取到一个推送来的json报警信息,并将其进行转发,其中报警信息的格式可以通过alertmanager提供的另一个接口获取实例,即 /api/v1/alertmanagers(该操作需要使用promethues,可以忽视,后面会提供json格式)
由 /api/v1/alertmanagers 获取到的json为
$ curl http://localhost:9090/api/v1/alertmanagers
{
"status": "success",
"data": {
"activeAlertmanagers": [
{
"url": "http://127.0.0.1:9090/api/v1/alerts"
}
],
"droppedAlertmanagers": [
{
"url": "http://127.0.0.1:9093/api/v1/alerts"
}
]
}
}
使用其中提供的url:http://127.0.0.1:9090/api/v1/alerts ,可以获取到报警的json信息,即可获得json的格式
[{"annotations":
{"description":
"localhost:9100 of job exporter has been down for more than 5 minutes.",
"summary":"Instance localhost:9100 down"},
"endsAt":"2021-11-25T08:13:56.026Z",
"fingerprint":"d44e90ffc89b2ea1",
"receivers":[{"name":"mail"}],
"startsAt":"2021-11-25T07:36:11.026Z",
"status":{"inhibitedBy":[],"silencedBy":[],"state":"active"},
"updatedAt":"2021-11-25T16:09:56.030+08:00",
"generatorURL":"http://localhost.localdomain:9090/graph?g0.expr=up+%3D%3D+0\u0026g0.tab=1",
&#