「Alertmanager」- 告警到 Slack 频道

  CREATED BY JENKINSBOT

问题描述

该笔记将记录:在 Alertmanager 中,如何将告警消息发送到 Slack 频道,以及相关问题的处理方法。

解决方案

第一步、配置 Alertmanager 告警到 Slack 频道

该步骤将创建 Slack 应用,目的是为了获取 Webhook 以在 Alertmanager 中使用。

参考 Sending messages using Incoming Webhooks 文档,我们这里将简单记录过程。

1)创建 Slack 应用:https://api.slack.com/apps/new

App Name: AlertBot

Development Slack Workspace: Your Workspace

创建之后,会自动重定向到应用设置页面;

2)进入 Incoming Webhooks 页面

Activate Incoming Webhooks: On

然后,页面会显示新的内容

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 文档。

第四步、测试告警

参考 send-alerts.sh 笔记,以了解测试 Alertmanager 的方法。

参考文献

Configuration | Prometheus
Notification template examples | Prometheus
Using Slack with the Alertmanager – Robust Perception | Prometheus Monitoring Experts