在 Flashduty On-call
您可通过以下2种方式,获取一个集成推送地址,任选其一即可。
使用专属集成
当您不需要将告警事件路由到不同的协作空间,优先选择此方式,更简单。展开
展开
- 进入 Flashduty 控制台,选择 协作空间,进入某个空间的详情页面
- 选择 集成数据 tab,点击 添加一个集成,进入添加集成页面
- 选择 EMQX 集成,点击 保存,生成卡片。
- 点击生成的卡片,可以查看到 推送地址,复制备用,完成。
使用共享集成
当您需要根据告警事件的 Payload 信息,将告警路由到不同的协作空间,优先选择此方式。展开
展开
- 进入 Flashduty 控制台,选择 集成中心=>告警事件,进入集成选择页面。
- 选择 EMQX 集成:
- 集成名称:为当前集成定义一个名称。
- 配置默认路由,并选择对应的协作空间(集成创建后可以前往
路由进行更多路由规则的配置)。 - 点击 保存 后,复制当前页面的新生成的 推送地址 备用。
- 完成。
在 EMQX
EMQX Cloud(托管服务)与自建 EMQX 的接入方式不同,请根据您的部署形态选择。
EMQX Cloud(托管服务)
EMQX Cloud 内置了 Flashduty 告警集成类型,配置步骤如下:- 登录 EMQX Cloud 控制台,进入您的部署,选择 告警 → 告警集成(Alerts → Alert Integrations)
- 在 Webhook 集成区域点击 新建,类型选择 FlashDuty
- 将 Flashduty 集成的推送地址粘贴到 URL 输入框
- 点击 确认 保存,然后可以点击 测试 发送一条测试告警,验证 Flashduty 是否正常接收
deployment_id、level、message、region 四个标签。
自建 EMQX
自建 EMQX 需要通过规则引擎将系统告警事件转发到推送地址。规则引擎自 EMQX 5.8.5 起支持
$events/sys/alarm_activated(告警激活)和 $events/sys/alarm_deactivated(告警解除)两个系统告警事件,请确保您的 EMQX 版本不低于 5.8.5。步骤 1:创建告警触发规则请求体模板与步骤 1 相同,但
- 登录 EMQX Dashboard,进入 集成 → 规则,点击 新建规则
-
在 SQL 编辑器中输入以下语句,匹配系统告警激活事件:
-
在动作区域添加 HTTP 服务器 动作:
- 连接器 URL 填写 Flashduty 集成的推送地址(需携带 integration_key 参数)
- 请求方法选择
POST - 请求体填写以下模板,将告警字段转换为 Flashduty 标准告警事件格式:
模板中的${name}、${message}、${node}会被规则 SQL 输出的字段值替换。 - 保存规则
event_status 固定填写为 Ok,以便告警解除时自动恢复 Flashduty 中对应的告警。严重程度映射关系
EMQX Cloud(托管服务):EMQX Cloud 自动按以下关系映射告警等级:
自建 EMQX:告警等级由规则请求体模板中的
event_status 字段决定。上述示例中告警激活推送 Critical、告警解除推送 Ok,您可以在模板中将激活等级改为 Warning 或 Info。event_status 的合法取值为 Critical、Warning、Info、Ok。常见问题
为什么在 Flashduty 没有收到告警?
为什么在 Flashduty 没有收到告警?
在 Flashduty On-call
- 查看集成是否展示了 最新事件时间?如果没有,代表 Flashduty 没有收到推送,请优先排查 EMQX 侧配置。
- 如果您使用的是 共享集成,优先确认您是否配置了 路由规则。不设置路由规则,系统会直接拒绝新的推送,因为没有协作空间可以承接您的告警。这种情况下,直接配置路由规则到您期望的空间即可。
- 自建 EMQX:确认规则的请求体模板与上文示例一致,
event_status必须是Critical、Warning、Info、Ok之一,否则 Flashduty 会拒绝该请求。 - 在 EMQX Dashboard 的规则详情页查看规则的运行统计,确认动作执行成功、无失败计数。
- 确认 EMQX 节点可以访问外网
api.flashcat.cloud域名。