Prometheus Alert Manager通知至Microsoft Teams的指南

Prometheus Alert Manager通知至Microsoft Teams的指南

prometheus-msteams Forward Prometheus Alert Manager notifications to Microsoft Teams. prometheus-msteams 项目地址: https://gitcode.com/gh_mirrors/pr/prometheus-msteams

1. 项目介绍

Prometheus-msteams 是一个轻量级的 Go 语言编写的 Web 服务器,它能够接收来自 Prometheus Alert Manager 的 POST 请求,并将这些警报消息发送到一个 Microsoft Teams 频道中。这个项目通过使用一个 incoming webhook URL 来实现 Prometheus Alert Manager 与 Microsoft Teams 的集成。

2. 项目快速启动

以下是快速启动 Prometheus-msteams 的步骤:

使用 Docker 启动

运行以下命令,使用 Docker 容器启动 Prometheus-msteams:

docker run -d -p 2000:2000 \
--name="promteams" \
-e TEAMS_INCOMING_WEBHOOK_URL="https://example.webhook.office.com/webhookb2/xxx" \
-e TEAMS_REQUEST_URI="alertmanager" \
quay.io/prometheusmsteams/prometheus-msteams

确保替换 https://example.webhook.office.com/webhookb2/xxx 为你的 Microsoft Teams incoming webhook URL。

使用二进制启动

  1. 下载对应平台的 Prometheus-msteams 二进制文件和默认的卡片模板文件。
  2. 在与 default-message-card.tmpl 模板文件相同的目录中运行二进制文件:
./prometheus-msteams -teams-request-uri alertmanager \
-teams-incoming-webhook-url "https://example.webhook.office.com/webhookb2/xxx"

同样,请替换 webhook URL。

Kubernetes 集群部署

如果需要在 Kubernetes 集群中部署 Prometheus-msteams,请查阅官方的 Kubernetes 部署指南。

3. 应用案例和最佳实践

模拟 Prometheus 警报到 Teams 频道

创建一个名为 prom-alert.json 的文件,并填入以下 JSON 数据:

{
  "version": "4",
  "groupKey": "{}:{alertname=\"high_memory_load\"}",
  "status": "firing",
  "receiver": "teams_proxy",
  "groupLabels": {
    "alertname": "high_memory_load"
  },
  "commonLabels": {
    "alertname": "high_memory_load",
    "monitor": "master",
    "severity": "warning"
  },
  "commonAnnotations": {
    "summary": "Server High Memory usage"
  },
  "externalURL": "http://docker.for.mac.host.internal:9093",
  "alerts": [
    {
      "labels": {
        "alertname": "high_memory_load",
        "instance": "10.80.40.11:9100",
        "job": "docker_nodes",
        "monitor": "master",
        "severity": "warning"
      },
      "annotations": {
        "description": "10.80.40.11 reported high memory usage with 23.28%.",
        "summary": "Server High Memory usage"
      },
      "startsAt": "2018-03-07T06:33:21.873077559-05:00",
      "endsAt": "0001-01-01T00:00:00Z"
    }
  ]
}

然后使用 curl 发送此文件到 Prometheus-msteams 服务:

curl -X POST -d @prom-alert.json http://localhost:2000/alertmanager

此时,Microsoft Teams 频道应该会接收到一条消息。

发送警报到多个 Teams 频道

Prometheus-msteams 可以配置为服务于多个请求路径,每个路径都可以使用不同的 Teams 频道 webhook URL 来发送警报。

创建配置文件

创建一个 YAML 文件,格式如下:

connectors:
  - high_priority_channel: "https://example.webhook.office.com/webhookb2/xxxx/aaa/bbb"
  - low_priority_channel: "https://example.webhook.office.com/webhookb2/xxxx/aaa/ccc"

在运行 Docker 容器时,将配置文件挂载到容器内部,并设置 CONFIG_FILE 环境变量。

或者在运行二进制文件时,使用 -config-file 标志。

4. 典型生态项目

Prometheus-msteams 作为 Prometheus 生态系统的一部分,通常与其他开源项目一同使用,例如:

  • Prometheus: 用于收集和存储指标的监控系统。
  • Grafana: 用于可视化 Prometheus 数据的仪表板工具。
  • Alertmanager: Prometheus 的警报管理器,用于处理和路由警报。

结合这些工具,可以实现强大的监控和警报系统。

prometheus-msteams Forward Prometheus Alert Manager notifications to Microsoft Teams. prometheus-msteams 项目地址: https://gitcode.com/gh_mirrors/pr/prometheus-msteams

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢月连Jed

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值