alerting.custom 提供商,把端点(endpoint)的健康检查告警推送到 Flashduty On-call。同一个端点的触发、重复提醒和恢复会更新同一条 Flashduty 告警。
Gatus 没有固定的 Webhook 格式,请求体由您在配置里书写。本页给出的模板就是 Flashduty 解析的格式,请照抄。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Gatus,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Gatus,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Gatus 中配置
1
配置 custom 提供商
在 Gatus 配置文件中加入
alerting.custom,把 url 换成 Flashduty 的完整推送地址:2
在端点上启用 custom 告警
在每个需要推送的端点下添加
type: custom 的告警,并打开 send-on-resolved,否则 Gatus 不会发送恢复通知:failure-threshold 决定连续失败多少次后触发,success-threshold 决定连续成功多少次后恢复。若设置了 minimum-reminder-interval,Gatus 会在告警持续期间重复发送 TRIGGERED,这些提醒会更新同一条 Flashduty 告警。3
重载 Gatus 并验证生命周期
重启或重载 Gatus 使配置生效。让某个端点的条件持续失败,确认 Flashduty 收到活动告警;再让端点恢复正常,确认原告警恢复。Gatus 没有测试按钮,只能用真实的失败和恢复来验证。
Alert Key
Flashduty 用端点的
group 与 name 计算 Alert Key。Gatus 文档用 <group>_<name> 标识一个端点,官方没有为单次告警提供独立 ID,因此同一端点的触发、提醒和恢复共用一个 Alert Key;没有分组时只用 name。
- 修改端点的
name或group后,Gatus 会把它当作新端点,Flashduty 中旧告警不会被恢复,需要手动关闭 - 同一端点上配置多条
custom告警(不同description)时,它们共用一个 Alert Key url、description、errors的变化不会改变 Alert Key
状态和告警等级
Gatus 告警没有等级字段,端点健康检查失败按 Critical 处理。空值或其他状态值会被拒绝。
排查问题
- Gatus 日志出现
status code 400:确认method为POST,请求体是有效 JSON,且name、status非空。Gatus 只对[RESULT_ERRORS]转义双引号,端点名称、分组或描述里含有双引号、反斜杠或换行时会破坏 JSON,请避免这些字符 - Gatus 日志出现
status code 404或401:确认推送地址完整并包含integration_key - 告警没有恢复:确认端点告警设置了
send-on-resolved: true,且未用placeholders改写状态值 - 没有收到告警:确认端点的告警类型是
custom,且失败次数已达到failure-threshold - 不建议加入
[RESULT_CONDITIONS]:它含有反引号且不做转义,条件里出现双引号时会破坏 JSON