问题描述
该笔记将记录:在 Alertmanager 中,如何将告警消息发送到 Slack 频道,以及相关问题的处理方法。
解决方案
第一步、配置 Alertmanager 告警到 Slack 频道
该步骤将创建 Slack 应用,目的是为了获取 Webhook 以在 Alertmanager 中使用。
参考 Sending messages using Incoming Webhooks 文档,我们这里将简单记录过程。
1)创建 Slack 应用:https://api.slack.com/apps/new
Development Slack Workspace: Your Workspace
创建之后,会自动重定向到应用设置页面;
2)进入 Incoming Webhooks 页面
然后,页面会显示新的内容
3)点击 Add New Webhook to Workspace 按钮,以创建新的 Webhook 地址
点击 Allow 按钮,此时新的 Webhook 创建成功。
4)创建成功之后,页面会显示 curl 测试命令:
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' \ https://hooks.slack.com/services/xxxxxxxxxx
访问 https://api.slack.com/apps 地址,以查看所有应用,点击应用名以进入特定应用设置页面。
第二步、配置 Alertmanager 使用 Webhook 地址
修改 alertmanager.yml 文件 receivers 配置,并在 route 中引用:
... receivers: # slack - name: 'slack-channel' slack_configs: - api_url: 'https://hooks.slack.com/services/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' channel: '#devops-monitoring' ... route: receiver: 'slack-channel' ...
第三步、定制告警模板
参考 Notification template examples 文档。
第四步、测试告警
参考 ALERTING.Clients 笔记,以了解测试 Alertmanager 的方法。
参考文献
Configuration | Prometheus
Notification template examples | Prometheus
Using Slack with the Alertmanager – Robust Perception | Prometheus Monitoring Experts