盘点主流的 Prometheus 飞书、钉钉、企业微信 Webhook 适配器
在构建企业级 ChatOps 告警体系时,选择合适的 Webhook 适配器能让告警治理事半功倍。以下是目前开源社区中主流、活跃度较高的适配器项目。
一、 单通道专属适配器(专一且轻量)
这类适配器专注于某一个平台的深度对接,体积小、配置简单,适合单一办公软件环境的企业。
1. 钉钉专属:prometheus-webhook-dingtalk
这是目前钉钉监控中最权威、使用最广泛的官方社区级项目。
- 开源地址:prometheus-community/prometheus-webhook-dingtalk
- 开发语言:Go
- 核心特性:
- 社区托管:已加入
prometheus-community官方组织,维护和更新频率有保障。 - 模板自定义:支持使用 Go
text/template语法自定义钉钉 Markdown 消息格式。 - 安全验签:原生支持钉钉机器人的 签名密钥(Secret)校验。
- 多群路由:支持配置多个配置文件,将不同报警路由到不同的钉钉群。
- 社区托管:已加入
2. 企业微信专属:wechat-webhook-adapter 系列
企业微信机器人支持发送 Text、Markdown、Image、News 等格式的消息。
- 代表项目 1:bndw/prom-wechat (Go 开发,轻量级,支持通过配置文件自定义模板)
- 代表项目 2:kingfsen/prometheus-wechat-adapter (Java 开发,功能完善,适合 Java 栈的运维团队)
- 核心特性:
- 将 Alertmanager 的告警状态(Firing/Resolved)转化为企业微信的 Markdown 绿色/红色标题。
- 支持代理配置(当前端 Prometheus 无法直接访问企业微信外网接口时)。
3. 飞书(Lark)专属:feishu-alert-adapter 系列
飞书的“消息卡片”功能在三者中交互性最强,支持丰富的排版样式和交互按钮。
- 代表项目 1:t9as/feishu-alert-adapter (Go 开发,专门针对飞书群机器人设计)
- 代表项目 2:v9v/prometheus-feishu-adapter (Go 开发,支持富文本消息和安全签名)
- 核心特性:
- 完美适配飞书的 Interactive Card(交互式卡片) 格式。
- 支持根据告警级别(Critical/Warning/Info)动态渲染卡片侧边的颜色条(红、橙、蓝)。
二、 全能型多通道适配器(强烈推荐企业使用)
如果企业内部同时使用多种办公软件(如开发用飞书、HR用企微),或者后续有更换办公软件的计划,建议直接采用多通道统一适配器。
1. 国产开源标杆:PrometheusAlert
这是目前国内开源社区中功能最强大、生态最活跃的跨通道告警介质转发系统。
- 开源地址:feiyu5656/PrometheusAlert
- 开发语言:Go (基于 Beego 框架)
- 支持渠道:钉钉、企业微信、飞书、腾讯云短信/语音、阿里云短信/语音、华为云短信、电子邮件、自定义 Webhook 等。
- 核心优势(为什么推荐它?):
- 可视化 Web 界面:自带一个管理后台,可以在网页上直接调试和配置告警模板。
- 强大的模板引擎:内置大量开箱即用的飞书、钉钉、企微模板,支持热更新,无需重启服务。
- 告警拆分与合并:支持自定义路由和告警阻断逻辑。
+-----------------+
| PrometheusAlert | (可视化管理后台)
+--------+--------+
|
+-------------------------+-------------------------+
| | |
v v v
+-------------------+ +-------------------+ +-------------------+
| 飞书卡片消息 | | 企业微信 Markdown | | 钉钉 Markdown |
+-------------------+ +-------------------+ +-------------------+
2. 国际通用多通道转发器:Apprise
- 开源地址:caronc/apprise
- 开发语言:Python
- 核心特性:
- 几乎支持全球所有的通知渠道(超过 80 种,包括 Discord, Telegram, Slack, Matrix, 同时也支持微信、钉钉)。
- 提供统一的统一资源定位符(URL)定义语法(例如:
wx://corp_id/corp_secret/agent_id)。
三、 主流适配器横向对比表
| 适配器名称 | 支持渠道 | 模板配置方式 | 额外依赖 | 适用场景 |
|---|---|---|---|---|
prometheus-webhook-dingtalk |
仅钉钉 | YAML 文件配置 Go 模板 | 无 | 纯钉钉环境下的官方推荐标准方案 |
prom-wechat |
仅企业微信 | 配置文件模板 | 无 | 轻量级企业微信告警环境 |
feishu-alert-adapter |
仅飞书 | YAML 文件配置 | 无 | 追求极佳飞书卡片视觉效果的团队 |
PrometheusAlert |
全部通道 (企微/钉/飞/短信/语音) | Web 界面交互式配置 | 可选数据库 (默认 SQLite) | 最推荐的企业级大一统告警网关方案 |
四、 生产实践:以 PrometheusAlert 为例的接入配置
在生产环境中,部署 PrometheusAlert 后,其默认的飞书卡片渲染接口为:
http://<prom-alert-ip>:8080/prometheusalert?type=fs&tpl=prometheus-fs&ddurl=https://open.feishu.cn/open-apis/bot/v2/hook/xxx
在 Alertmanager 配置文件 alertmanager.yml 中,您只需如此接入:
global:
resolve_timeout: 5m
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: 'prom-alert-feishu'
receivers:
- name: 'prom-alert-feishu'
webhook_configs:
# 将告警投递给 PrometheusAlert,它会自动渲染成精美的飞书卡片并推送到对应的飞书群
- url: 'http://192.168.1.100:8080/prometheusalert?type=fs&tpl=prometheus-fs&ddurl=https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'
send_resolved: true
五、 选型最终建议
- 如果你只想快速、稳定地跑通单一通道:
- 钉钉用户直接选:
prometheus-community/prometheus-webhook-dingtalk。 - 飞书用户直接选:
t9as/feishu-alert-adapter。
- 钉钉用户直接选:
- 如果是企业级、多通道、或者希望告警排版精美、可后期维护性高:
- 强烈推荐部署
PrometheusAlert。它的可视化 Web 界面和内置的 Go 模板引擎能够极大释放运维团队“写代码调排版”的压力,让非开发背景的运维人员也能通过 Web 界面微调告警卡片的内容。
- 强烈推荐部署
浙公网安备 33010602011771号