alert_id,Flashduty 用同一个 Alert Key 关联:异常时创建告警,恢复时自动关闭。
通过 Domotz Public API 绑定的 alert profile 会推送带事件名称的通知(设备上线/下线、TCP 服务、RTD、心跳丢失、SNMP 等),详见 Public API alert profile 事件。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Domotz,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Domotz,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Domotz 中配置
需要在 Domotz 门户中有创建联系渠道和 Alert Rule 的权限。
1
创建 Webhook 联系渠道
- 在 Domotz 门户左侧菜单进入 Alerts,选择 Contact Channels & Ticketing Systems 标签页
- 滚动到 Webhooks 区域,点击 Add Webhook
- 填写 Name,将 Flashduty 集成的完整推送地址粘贴到 Add webhook address,点击 Add。地址中需包含
integration_key
2
创建使用该渠道的 Alert Rule
- 打开 Alert Rules 标签页,点击 Add Alert Rule
- 填写 Alert Name,选择 Entity(Collector 或 Device)和要监控的 Datapoint,例如 Connectivity → Device Status
- 选择 Condition 和 Severity(Critical、High、Warning、Info 或 No Severity)
- 在 Notification Channels 下点击 Add Channels,勾选上一步的 Webhook,点击 Set 1 Channels
- 点击 Save
3
应用规则
新建的规则尚未应用到任何对象(Applied To 显示
-)。打开一台设备,选择 Alerts,展开对应的 Datapoint,勾选该规则。之后 Applied To 会显示已关联的设备数量。在 Alert Rules 列表中,点击规则旁的 Send Test 会打开 Send Test Notification 对话框,勾选 Webhook 后点击 Send Test Alert。每次测试 Flashduty 都会新建一条标题为
Domotz test notification 的 Info 告警。该告警不会自动恢复,请手动关闭。Alert Key
Alert Rule 通知(
monitoring_profile_state_changed)的 Alert Key 由事件名称和 alert_id 组成。同一次异常的 Problem 通知和 Resolved 通知携带相同的 alert_id,状态变为 Resolved 时告警关闭;下一次异常会有新的 alert_id,创建新告警。缺少 alert_id,或状态不是 Problem / Resolved 的通知会被拒绝。
状态和告警等级
由
data.state.current 决定状态:Problem 触发告警,Resolved 恢复告警。
Public API alert profile 事件
通过 Domotz Public API 的 alert-profile 绑定接口生成的通知使用下面的事件。Flashduty 用事件名称、
agent_id(采集器 ID)和 device_id(设备 ID)组合出 Alert Key,TCP 服务再加上端口,字段之间以不可见分隔符连接后取 MD5。这些标识来自 Domotz Public API 定义中各 Webhook 事件的结构。设备名称、状态值、时间等变化不会改变 Alert Key。
- 有恢复状态的事件(
agent_status、device_status、device_tcp、device_rtd、agent_speed_test)的异常和恢复通知使用同一个 Alert Key - 无恢复状态的事件在 Alert Key 中加入事件时间戳,每次通知单独成为一条告警
- 缺少
agent_id,或设备事件缺少device_id的通知会被拒绝
各事件的状态和告警等级
一次
device_tcp 通知可以包含多个端口,Flashduty 按端口升序为每个端口生成一条事件,最多处理 50 个。设备发现、功能发现、MIB 发现会被接收但不创建告警。状态值不在上表中时返回参数错误。
标签
排查问题
- 没有收到告警:确认 Alert Rule 已应用到设备或采集器(Applied To 不是
-),并在 Notification Channels 中选择了这个 Webhook 渠道 - 告警没有恢复:只有上表中有恢复条件的事件会自动恢复;其他事件请依赖超时自动关闭
- Flashduty 返回参数错误:Alert Rule 通知缺少
alert_id或状态不受支持,或 Public API alert profile 事件缺少agent_id/device_id - Webhook 渠道收不到任何请求:确认推送地址完整且使用 HTTPS