alertmanager 通过钉钉告警&自定义告警模板
准备工作
通过 钉钉 进行告警,首先需要有一个钉钉群。和钉钉机器人。
进入钉钉群设置中的智能群助手
添加自定义机器人
安全设置选择加签
此处需要保存加签秘钥。
完成添加器人
此处需要保存 webhook 地址。
部署 prometheus-webhook-dingtalk
Github上已经有人写好了项目可以直接使用,用于钉钉机器人推送告警信息
项目地址https://github.com/timonwong/prometheus-webhook-dingtalk
部署dingtalk
wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.0.0/prometheus-webhook-dingtalk-2.0.0.linux-amd64.tar.gz tar xf prometheus-webhook-dingtalk-2.0.0.linux-amd64.tar.gz ln -s prometheus-webhook-dingtalk-2.0.0.linux-amd64 prometheus-webhook
准备配置文件
mv config.example.yml config.yml [root@ops prometheus-webhook]# cat config.yml ## Request timeout timeout: 5s # 超时时间 # 模板文件 templates: - templates/alertmanager-dingtalk.tmpl targets: webhook1: url: https://oapi.dingtalk.com/robot/send?access_token=xxxxx # webhook 地址 # secret for signature secret: SECdcc64f10xxxxxx # 加签秘钥 message: text: '{{ template "email.to.message" . }}'
准备模板文件
[root@ops prometheus-webhook]# cat templates/alertmanager-dingtalk.tmpl {{ define "email.to.message" }} {{- if gt (len .Alerts.Firing) 0 -}} {{- range $index, $alert := .Alerts -}} ========= **监控告警** ========= **告警程序:** Alertmanager **告警类型:** {{ $alert.Labels.alertname }} **告警级别:** {{ $alert.Labels.severity }} 级 **告警状态:** {{ .Status }} **故障主机:** {{ $alert.Labels.instance }} {{ $alert.Labels.device }} **告警主题:** {{ .Annotations.summary }} **告警详情:** {{ $alert.Annotations.message }}{{ $alert.Annotations.description}} **主机标签:** {{ range .Labels.SortedPairs }} </br> [{{ .Name }}: {{ .Value | markdown | html }} ] {{- end }} </br> **故障时间:** {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} ========= = end = ========= {{- end }} {{- end }} {{- if gt (len .Alerts.Resolved) 0 -}} {{- range $index, $alert := .Alerts -}} ========= 告警恢复 ========= **告警程序:** Alertmanager **告警主题:** {{ $alert.Annotations.summary }} **告警主机:** {{ .Labels.instance }} **告警类型:** {{ .Labels.alertname }} **告警级别:** {{ $alert.Labels.severity }} 级 **告警状态:** {{ .Status }} **告警详情:** {{ $alert.Annotations.message }}{{ $alert.Annotations.description}} **故障时间:** {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} **恢复时间:** {{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} ========= = **end** = ========= {{- end }} {{- end }} {{- end }}
准备配置文件
[root@ops prometheus-webhook]# cat /usr/lib/systemd/system/prometheus-webhook-dingtalk.service [Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] ExecStart=/usr/local/prometheus-webhook-dingtalk-2.0.0.linux-amd64/prometheus-webhook-dingtalk --config.file=/usr/local/prometheus-webhook-dingtalk-2.0.0.linux-amd64/config.yml [Install] WantedBy=default.target
启动程序
systemctl start prometheus-webhook-dingtalk.service systemctl status prometheus-webhook-dingtalk.service systemctl enable prometheus-webhook-dingtalk.service
alertmanager 配置文件
route: # 路由组 group_by: ['alertname', 'app'] # group_wait: 30s group_interval: 40s repeat_interval: 1m receiver: webhook # 默认组 receivers: # 收件人组 - name: webhook webhook_configs: - url: http://localhost:8060/dingtalk/webhook1/send # dingtalk 地址 send_resolved: true inhibit_rules: - source_match: severity: 'critical' target_match_re: severity: '.*' equal: ['instance']
测试
告警事件
告警恢复
作者:闫世成
出处:http://cnblogs.com/yanshicheng
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题或建议,请联系上述邮箱,非常感谢。
分类:
Prometheus
标签:
alertmanager
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)