Skip to main content

在 Flashduty On-call

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

使用专属集成

如果您只需将告警发往一个协作空间,选择此方式,配置更简单。
  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 GCP 云监控 集成,点击 保存,生成卡片。
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

如果您需要根据告警事件的 Payload 将告警路由到不同协作空间,选择此方式。
  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 GCP 云监控 集成:
    • 集成名称:为当前集成定义一个名称。
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 Google Cloud

一个 GCP 云监控 集成的推送地址可以同时接收以下来源,无需在 Google Cloud 部署任何代码:下文的 推送地址 指上一步复制的集成推送地址,形如 https://api.flashcat.cloud/event/push/alert/google-cm?integration_key=<集成密钥>。

Cloud Monitoring:Webhook 通知渠道

步骤 1:配置告警通道

  1. 登录 GoogleCloud 控制台,检索 Monitoring 产品,并进入对应产品控制台
  2. 在左侧菜单中找到 Alerting 并点击 EDIT NOTIFICATION CHANNELS 创建通道。 drawing
  3. 在 Notification channels 页面找到 Webhooks 并点击 ADD NEW。
  4. 在 Endpoint URL 处输入集成的推送地址(当前页面填写集成名称,保存后即可生成地址。
  5. 在 Display Name 处输入 Flashduty 。
  6. 点击 TEST CONNECTION 后,点击 SAVE 保存即可。
drawing

步骤 2:在告警策略中使用 Flashduty 告警通道

  1. 回到 Alerting 页面。
  2. 创建或编辑已有的策略。
  3. 此处省略其他策略配置(按业务需求配置告警条件)。
  4. 在 Notifications and name 页面中,将 Use notification channel 保持开启状态。
  5. 在 Notification channels 下拉框中选择 步骤 1 创建的 Flashduty 通道,并勾选 Notify on incident closure。
  6. 完成其他配置并保存策略即可。
drawing指标告警、正常运行时间检查、基于日志的告警和 PromQL 告警(Managed Service for Prometheus)都通过告警策略发送,配置方式相同。

Cloud Monitoring:Pub/Sub 通知渠道

如果您的组织要求告警经 Pub/Sub 转发,可以使用 Pub/Sub 通知渠道。告警的 Alert Key 与 Webhook 渠道相同(incident_id),两种渠道可以互相替换。
  1. 按 创建 Pub/Sub 推送订阅 创建主题和推送订阅。
  2. 在 Alerting → EDIT NOTIFICATION CHANNELS 的 Pub/Sub 部分点击 ADD NEW,填写主题名称。
  3. 按页面提示,为 service-<项目编号>@gcp-sa-monitoring-notification.iam.gserviceaccount.com 授予该主题的 Pub/Sub Publisher 角色。
  4. 在告警策略的 Notification channels 中选择该 Pub/Sub 渠道,并勾选 Notify on incident closure。

Error Reporting

Error Reporting 通过 Cloud Monitoring 的 Webhook 通知渠道发送通知(1.0 版本格式),只支持 Webhook,不支持 Pub/Sub。
  1. 按 Webhook 通知渠道 的步骤 1 创建一个 Webhook 通知渠道(可以复用同一个 Flashduty 渠道)。
  2. 进入 Error Reporting 页面,点击 Configure notifications。
  3. 在 Notification channels 中选择 Flashduty 渠道并保存。
Error Reporting 在以下两种情况发送通知:出现无法归入已有错误组的新错误;已标记为 Resolved 的错误组再次出现。
  • 同一个错误组(同一项目、同一错误详情链接)对应一条告警,告警未关闭时再次出现的通知会合并进这条告警。
  • Error Reporting 不发送”已解决”通知,告警不会自动恢复,请在 Flashduty 中手动关闭。
  • 告警等级固定为 Warning。如需其他等级,在推送地址后追加 &severity=Critical(或 Info)。

Security Command Center

Security Command Center(SCC)只能把发现(finding)持续导出到 Pub/Sub,再由推送订阅转发给 Flashduty。
  1. 按 创建 Pub/Sub 推送订阅 创建主题和推送订阅。
  2. 为 SCC 服务账号授予主题的 Pub/Sub Publisher 角色,然后创建持续导出(NotificationConfig),例如:
过滤条件中不要加 state="ACTIVE"。SCC 只推送与过滤条件匹配的发现更新,限定 ACTIVE 后,发现变为 INACTIVE 的更新不会送达,Flashduty 中的告警就无法自动恢复。
  • 以发现的资源名 finding.name 作为 Alert Key,同一发现的所有更新合并为一条告警。
  • 发现 state 变为 INACTIVE(已修复、资源已删除或手动标记),或 mute 变为 MUTED 时,告警恢复;再次变为 ACTIVE 或 UNMUTED 时重新触发。
  • 威胁类发现(例如 Event Threat Detection)不会自动变为 INACTIVE,需要在 SCC 中手动修改状态或静音。

Cloud Billing 预算

预算告警只能通过 Pub/Sub 以程序化通知的方式发出。
  1. 按 创建 Pub/Sub 推送订阅 创建主题和推送订阅。
  2. 进入 Billing → Budgets & alerts,创建或编辑预算,设置阈值规则(实际费用和/或预测费用)。
  3. 在 Manage notifications 中勾选 Connect a Pub/Sub topic to this budget,选择上面的主题并保存。
Cloud Billing 每天会向主题多次推送预算的当前状态,首次推送可能需要数小时。Flashduty 按以下规则处理:
  • 通知中没有超过任何阈值时,不产生告警。
  • 实际费用(alertThresholdExceeded)和预测费用(forecastThresholdExceeded)分别产生告警。
  • Alert Key 由结算账号、预算、预算周期、费用类型和已超过的最高阈值组成:同一阈值的重复推送合并为一条告警;超过更高阈值时产生一条新告警。
  • 预算告警不会自动恢复。新的预算周期开始后,告警按新周期重新计算,旧周期的告警请手动关闭。

创建 Pub/Sub 推送订阅

第二、四、五节共用以下步骤。一个推送订阅可以同时承载多种来源。
  1. 进入 Pub/Sub → Topics,点击 CREATE TOPIC 创建主题(或使用已有主题)。
  2. 在主题中点击 CREATE SUBSCRIPTION:
    • Delivery type:选择 Push。
    • Endpoint URL:填写集成的推送地址。
    • Enable authentication:不勾选。推送地址中的 integration_key 已用于鉴权,Flashduty 不校验 Pub/Sub 的身份令牌。
    • Enable payload unwrapping:不勾选。Flashduty 需要消息属性(例如预算的 budgetId),取消封装后这些属性会丢失。
  3. 保存订阅。
Flashduty 对无法转换为告警的 Pub/Sub 消息(例如格式未知的消息)也会返回 200 并记录日志,避免 Pub/Sub 反复重投。

告警等级对照

Cloud Monitoring(Webhook 与 Pub/Sub 相同)Security Command CenterCloud Billing 预算Error Reporting:固定为 Warning,可通过推送地址参数 severity 调整。

告警标签

Cloud Monitoring 的资源标签和元数据标签不会覆盖同名的已有标签。

常见问题

不需要。推送地址中的 integration_key 用于识别集成,保持 Enable authentication 不勾选即可。
  • 首次推送可能需要数小时。
  • 通知中没有超过任何阈值时,Flashduty 不产生告警。
  • 检查推送订阅是否勾选了 Enable payload unwrapping。勾选后消息属性会丢失,Flashduty 无法识别预算。
检查 NotificationConfig 的过滤条件是否限定了 state="ACTIVE",以及该发现是否属于不会自动变为 INACTIVE 的威胁类发现。