openshift-monitoring 项目中的 alertmanager-main)。官方文档列出的接收器类型包括 PagerDuty、Webhook、Email、Slack 和 Microsoft Teams,并说明上游 Alertmanager 支持的配置项在 OpenShift 中同样支持。Webhook 接收器向你填写的地址发送 Alertmanager 格式的 JSON(version 为 4,每条告警带 status、labels、annotations、startsAt、endsAt、generatorURL、fingerprint)。Flashduty 的 Prometheus 集成 与该格式兼容,因此不需要单独的 OpenShift 集成:在 Flashduty 创建 Prometheus 集成,把它的推送地址配置为 OpenShift Alertmanager 的 Webhook 接收器。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。集成类型都选择 Prometheus,不是 Chronosphere。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Prometheus,点击 保存
- 打开生成的集成卡片,复制 推送地址,形如
https://api.flashcat.cloud/event/push/alert/prometheus?integration_key=<集成密钥>
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Prometheus,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 OpenShift 中配置
OpenShift 官方文档提供两种方式配置接收器,任选其一。操作需要
cluster-admin 权限。
1
方式一:在 Web 控制台配置
- 在 Administrator 视角进入 Administration → Cluster Settings → Configuration → Alertmanager
- 在 Receivers 区域点击 Create Receiver
- 填写 Receiver name(例如
flashduty),Receiver type 选择 Webhook - 在 Webhook 的地址栏填入上一步复制的完整推送地址(包含
?integration_key=...) - 点击 Show advanced configuration 可以查看发送恢复告警(resolved)的选项,默认发送,保持不变
- 在 Routing labels 区域通过 Add label 添加路由标签和值,决定哪些告警发送到该接收器;按官方文档,触发告警的标签与所有选择器匹配时才会发送到该接收器;需要精确匹配标签值时在此添加
- 点击 Create
2
方式二:编辑 alertmanager-main Secret
-
导出当前配置:
-
在
alertmanager.yaml中加入接收器和路由。下面的示例在默认配置的基础上增加flashduty接收器,并把severity为critical或warning的告警路由到它;send_resolved在 Alertmanager 的 Webhook 配置中默认为true,写出来是为了保证恢复通知不被关闭:
<集成密钥> 换成你的 Flashduty 集成密钥。新增路由放在 Watchdog 路由之后:Watchdog 是持续触发的心跳告警,OpenShift 文档说明它用于检查通知链路,不应作为故障告警进入 Flashduty。-
用修改后的文件替换 Secret:
3
验证
触发一条集群告警(OpenShift 文档提到可参考 Red Hat 客户门户的 “Send test alerts to Alertmanager in OpenShift 4”),确认 Flashduty 收到活动告警;告警恢复后,确认 Flashduty 中的原告警关闭。
字段映射
一次通知可以包含多条告警,Flashduty 逐条处理(单次最多 100 条)。
恢复与去重
- Alertmanager 的 Webhook 接收器
send_resolved默认为true。恢复时发送status为resolved的通知,Flashduty 按相同的fingerprint关闭对应告警。 - 如果在 Show advanced configuration 中关闭了恢复通知(或在 YAML 中设置
send_resolved: false),Flashduty 不会收到恢复请求,请在协作空间中开启 超时自动关闭。 - Alertmanager 会按
repeat_interval重复发送仍在触发的告警,Flashduty 按fingerprint去重,不会产生重复告警。
排查问题
- Flashduty 返回
Invalid parameters:推送地址不完整,缺少integration_key,或集成类型不是 Prometheus - 告警没有恢复:确认接收器没有关闭
send_resolved - 收不到任何告警:确认路由的
matchers或 Routing labels 与告警标签匹配,集群能访问api.flashcat.cloud(集群使用 HTTP 代理时,参考 OpenShift 文档中proxy_from_environment的说明),可用oc exec alertmanager-main-0 -n openshift-monitoring -- amtool config routes show --alertmanager.url http://localhost:9093查看生效的路由