33. Prometheus-报警-通知模板参考

本文介绍了Prometheus如何创建警报并由Alertmanager发送到不同接收者,如Slack、PagerDuty等。通知是通过模板构建的,Alertmanager提供默认模板,也可自定义。模板基于Go模板系统,数据结构包括Data、Alert和KV,提供了处理警报标签和注释的方法。

原文:https://prometheus.io/docs/alerting/notifications/

Prometheus创建警报并将其发送到Alertmanager,警报管理器随后根据报警的标签将通知发送到不同的接收者。接收方可以是众多集成中的一种,包括:Slack、PagerDuty、email或通过通用Webhook接口的自定义集成。

发送到接收方的通知是通过模板构造的。Alertmanager带有默认模板,但也可以自定义。为避免混淆,必须注意到Alertmanager模板与Prometheus模板的不同,但是Prometheus模板还包括警报规则标签(或注释)的模板。

Alertmanager的通知模板基于Go模板系统。请注意,某些字段被评估为文本,而其他字段则被评估为HTML,这会影响转义。

 

数据结构

Data

Data 是传递给通知模板和Webhook推送的结构。

Name Type Notes
Receiver
Prometheus 配合钉钉进行报警并@管理员是一种非常实用的方式,可以保证系统监控到的问题能够及时得到相关人员的关注。 ### 实现步骤: #### 一、创建自定义机器人 1. **进入钉钉群**:选择你需要设置告警机器人的钉钉群聊,在右上角找到三个点“...”,点击后选择“智能群助手”。 2. **添加应用**:按照提示操作至“自定义机器人”。此时你可以看到Webhook地址,该URL用于后续配置Prometheus报警规则向钉钉发送消息之用;同时注意勾选加签选项,提高安全性,获取加密密钥(Secret),这将作为身份验证的一部分。 #### 二、配置 Prometheus 报警规则 接下来就是在Prometheus Alertmanager中完成对于接收端的设定: - 修改Alertmanager 的 `alertmanager.yml` 文件。在其中加入名为 webhook 的 receivers 并指定刚才获得webhook URL 和 secret 参数等信息,例如: ```yaml route: receiver: 'web-hook' receivers: - name: 'web-hook' webhook_configs: - url: "https://oapi.dingtalk.com/robot/send?access_token=your_access_token&sign=YourSign" send_resolved: true # 发送恢复通知 ``` 这里的url包含两部分组成:前面固定的API路径加上从第一步里复制出来的完整webhook链接以及通过钉钉开放平台提供的算法生成的消息签名(sign)以防止恶意请求。(关于如何计算签名值,请参考官方文档) 此外还需要编辑 alert.rules.yaml 中的具体业务逻辑条件表达式来触发对应的预警级别,并关联好receiver名称如上述示例中的"web-hook". #### 三、编写报警模板支持 @特定人 为了让发出的信息能直接提醒某位成员,需要使用DingTalk WebHook支持的关键字格式:@{userid} 或者 @{手机号}, 如果你知道用户ID的话会更稳定一些; 否则也可以尝试基于手机号查找对应关系. 因此可以在 templates 下新增一个 .tmpl 文件用于定制化输出内容结构体样式,比如简单的例子如下所示 : ```go template {{ define "ding.title" }}来自Prometheus的警告 {{ end }} {{ define "ding.text" }} # 告警概览 发生时间 : {{ .CommonLabels.alertname }}\\n 实例 : {{ .CommonLabels.instance}} \\n 描述 :{{ range .Alerts }}{{.Annotations.description}}\n{{end}} /cc < '@某某某'> 或者< '@phone'> {{ end }} ``` 最后重启 Alertmanager 让新的配置生效即可开始测试整个流程是否顺畅了! --
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值