source 为 aws.health、detail-type 为 AWS Health Event 的事件发送到 Amazon EventBridge。Flashduty 的 AWS EventBridge 集成 对这类事件有专门处理,因此不需要单独的 AWS Health 集成:在 Flashduty 创建 AWS EventBridge 集成,把它的推送地址设为 EventBridge 规则的目标即可。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。集成类型都选择 AWS EventBridge,不是 AWS Health。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 AWS EventBridge,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 AWS EventBridge,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 AWS 中配置
AWS Health 事件要通过 EventBridge 规则转发,规则的目标使用指向 Flashduty 推送地址的 API destination(也可以经 SNS 主题转发)。API destination 和 SNS 两种目标的具体步骤见 AWS EventBridge 集成,AWS Health 只需要在规则里使用下面的事件模式。
- 在 EventBridge 中创建规则,事件模式填写:
- 需要缩小范围时,在
detail中增加过滤条件。例如只接收 Amazon EC2 的issue类事件:
- 在规则的目标中选择指向 Flashduty 推送地址的 API destination,保存规则
- 创建规则时,可在 EventBridge 控制台的 Test event pattern 面板选择 AWS 提供的 AWS Health 示例事件,确认事件模式能匹配
区域和备份规则
- 每个需要接收事件的区域都要创建规则;全局事件(例如 IAM 相关事件)发送到 US East (N. Virginia),即
us-east-1 - 在标准 AWS 分区中,事件还会同时发送到备份区域 US West (Oregon)。如果在主区域和备份区域都创建了规则,同一事件会到达两次;这两次事件的
eventArn和受影响账号相同,Flashduty 按相同的 Alert Key 合并为一条告警 - 只想保留主区域的事件时,在备份区域的规则里增加
"backupEvent": ["false"]过滤条件(detail.backupEvent)
字段映射
告警等级
EventBridge 事件没有统一的等级字段,所有 AWS Health 事件都以 Warning 触发。需要区分等级时,在 告警处理 中按
event_type_category 标签改写等级,例如把 issue 改为 Critical,把 scheduledChange 保持为 Warning 或降为 Info。
恢复与去重
- AWS Health 在事件结束时发送
statusCode为closed的更新,Flashduty 按相同 Alert Key 恢复对应告警 - 计划变更类事件(
scheduledChange)在开始前就会以upcoming状态发送,Flashduty 会提前触发告警。只关心正在发生的故障时,在事件模式中限定eventTypeCategory为issue detail-type为AWS Health Abuse Event的事件没有专门处理,每条事件按事件id生成一条独立告警,没有恢复。事件模式中只写AWS Health Event即可避开detail.eventArn缺失的事件会被拒绝(HTTP 400)
排查问题
- 规则没有触发:检查事件模式;公共事件在创建规则后最长可能延迟一小时;确认已在事件所属区域和
us-east-1(全局事件)创建规则 - 告警没有恢复:确认事件模式没有过滤掉
closed状态,且目标没有配置 Input transformer(需要发送完整事件) - 同一事件出现两条告警:确认两条事件的
detail.eventArn和受影响账号相同;detail-type被改写后无法按 Health 事件合并 - API destination 调用失败:确认 endpoint 是完整推送地址,
HTTP method为POST