Skip to main content
通过 Oh Dear 团队设置中的 Webhook,将网站可用性(Uptime)、性能、断链、混合内容、证书、DNS、域名、站点地图、Lighthouse、AI 检查、应用健康和定时任务事件同步到 Flashduty On-call。每个检查项对应一条 Flashduty 告警:检查失败时触发,Oh Dear 发出对应的恢复事件时恢复。

在 Flashduty On-call


您可通过以下两种方式获取集成推送地址,任选其一即可。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 Oh Dear,点击 保存
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 Oh Dear,填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 Oh Dear 中配置


Oh Dear 的 Webhook 按团队配置,团队内所有监控的事件都会推送到同一个地址。
1

填写 Webhook 地址

  1. 登录 Oh Dear,进入团队设置的 Notifications(通知)页面
  2. 在 Global 标签页点击 Add configuration,渠道选择 Webhooks
  3. 将 Flashduty 集成的完整推送地址粘贴到 Url,地址中需包含 integration_key。全局配置对团队内所有监控生效
  4. Oh Dear 会用团队的 Webhook signing secret(在同一对话框中显示)对每次请求签名(OhDear-Signature 请求头),Flashduty 通过地址中的 integration_key 认证,不校验签名
2

保存并验证

  1. 点击 Save。在该配置的 … 菜单中选择 Send test notification:Oh Dear 会发送 {"type":"test","uuid":"..."},Flashduty 返回 200 并创建一条独立的 Info 告警,标题为 “Oh Dear test notification”。该告警没有恢复推送,请手动关闭。Show webhook log 可查看每次投递及响应状态
  2. 在 Oh Dear 中暂停一个测试监控,或将其地址改为无法访问的地址,等待可用性检查失败,确认 Flashduty 收到 Critical 告警
  3. 恢复监控地址,确认原告警自动恢复
Oh Dear 只把 HTTP 200 视为投递成功,其他状态码(包括 301、302 跳转)都会重发,最多共发送 3 次。Flashduty 对已识别和会被忽略的事件都返回 200。

事件和告警的对应关系


Oh Dear 会推送所有事件,无法在 Oh Dear 侧筛选事件类型。Flashduty 的处理方式如下: 以下事件没有对应的恢复事件,每次推送都会创建独立的告警,请开启协作空间的超时自动关闭(建议设置为 24 小时),也可以处理后手动关闭:certificateExpiresSoon(证书即将过期)、certificateHasChanged(证书变更)、dnsRecordsChanged(DNS 记录变更)、performanceDeltaExceeded(性能变化超过设定比例)、cronFailed(定时任务上报失败)、cronNotExecutedOnTime(定时任务未按时上报)、applicationHealthClientError、applicationHealthResultsTooOld。 新增监控(monitorAddedNotification)和 Oh Dear 以后新增的事件类型不会创建告警,Flashduty 直接返回成功。
应用健康检查的 applicationHealthProblemFixed 按单个健康项推送:应用同时有多个健康项异常时,其中一项恢复就会恢复整个应用健康告警。

Alert Key


  • 有恢复事件的检查项:Alert Key 由 run.check_id(Oh Dear 中该监控下某一类检查的 ID)计算,同一检查项的触发和恢复事件使用同一个 Alert Key,不同监控或同一监控的不同检查项互不合并
  • 没有恢复事件的事件:Alert Key 由事件的 uuid 计算。Oh Dear 重试同一事件时 uuid 不变,因此重试不会产生重复告警,新事件则各自创建告警
监控名称、地址、时间、运行 ID 等字段变化不会改变 Alert Key。缺少 run.check_id(有恢复事件的检查项)或 uuid(无恢复事件的事件)的推送会被拒绝。

状态和告警等级


Oh Dear 事件不携带等级,Flashduty 按事件确定: 可用性的 ...UptimeCheckRecovered 事件在 run.result 为 warning 时表示部分连通(主检查节点失败、备用节点成功,网站仍视为在线),Flashduty 同样按恢复处理。

标签


排查问题


  • 收不到告警:确认地址中的 integration_key 正确,并在 Oh Dear 的 Webhook 日志中查看该请求的响应状态
  • 告警没有恢复:确认 Oh Dear 已发出对应的恢复事件;证书即将过期、DNS 记录变更、定时任务等事件没有恢复事件,需要手动关闭
  • 测试:Oh Dear 的 Send test notification 只投递测试请求,Flashduty 返回 200 并创建一条需手动关闭的独立 Info 告警;要验证告警链路,请按上文的步骤用真实的检查失败
更多字段含义请参阅 Oh Dear Webhooks。