在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Kener,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Kener,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Kener 中配置
需要 Kener 4.x,并使用有权限管理触发器和告警配置的账号登录管理后台。Kener 所在的服务器需要能访问 Flashduty 的推送地址。
1
创建 Webhook 触发器
- 在 Kener 管理后台打开 Triggers,新建触发器,Trigger Type 选择 Webhook
- 填写 Trigger Name,URL 粘贴 Flashduty 集成的完整推送地址,地址中需包含
integration_key - Headers 保持为空,Flashduty 通过地址中的
integration_key认证 - 将 Webhook Body 替换为下面的模板:
- 保存触发器
alert_message(告警配置里的 Details 文本)和站点名称,其中的双引号或换行会让请求体不再是合法 JSON,Flashduty 将拒绝这类请求,告警和恢复都会丢失,因此请使用上面不含这些字段的模板。2
创建告警配置并关联触发器
- 打开 Alerts,新建告警配置,选择要监控的 Monitors
- 选择 Alert Type(
STATUS状态、LATENCY延迟、UPTIME可用率)并填写对应的值 - 设置 Failure Threshold(连续失败多少次后触发)和 Success Threshold(连续成功多少次后恢复)
- 选择 Severity(
CRITICAL或WARNING) - 在触发器列表中选择上一步创建的触发器,保存
3
验证
- 在触发器页面点击测试按钮,确认 Kener 显示发送成功。测试请求是 Kener 内置的固定内容(告警 ID 为
1,严重程度WARNING,状态随机为TRIGGERED或RESOLVED),Flashduty 按普通告警处理:TRIGGERED时会创建或更新 Alert Key 为1的 Warning 告警,RESOLVED时会恢复这条告警,没有打开的告警时不产生新告警。验证后若该告警仍未恢复,请在 Flashduty 中手动关闭 - 让被监控的服务失败,达到失败阈值后确认 Flashduty 出现活动告警
- 服务恢复并达到成功阈值后,确认该告警自动恢复
Alert Key
Flashduty 使用 Kener 的
alert_id 作为 Alert Key。Kener 在监控达到失败阈值时创建一条告警记录,恢复时更新同一条记录的状态,因此触发和恢复的 alert_id 相同;同一个监控再次宕机会生成新的 alert_id,对应 Flashduty 的新告警。
监控名称、等级、状态、取值等字段变化不会改变 Alert Key。请求中缺少 alert_id 会被拒绝。alert_id 只在同一个 Kener 实例内唯一,一个 Flashduty 集成请只接收一个 Kener 实例的推送。
状态和告警等级
告警标题由监控标识、告警类型和取值拼成,例如
my-api STATUS: DOWN。
标签
排查问题
- Flashduty 返回参数错误:确认 URL 完整且包含
integration_key,并确认触发器使用了本页的模板;响应信息会指出缺少的字段 - Kener 触发器测试失败:测试结果里会显示 HTTP 状态码或网络错误,确认 Kener 所在服务器能访问 Flashduty 推送地址
- 告警没有恢复:确认告警配置的 Success Threshold 已满足,并确认触发器没有被禁用;同一监控在满足成功阈值前不会发送恢复
- 没有收到告警:确认告警配置处于启用状态,并且已关联这个触发器