操作步骤
在 Flashduty
使用专属集成
使用专属集成
当您不需要根据告警内容路由到不同的协作空间时,优先选择此方式,更简单。
- 进入 Flashduty 控制台,选择 协作空间,进入某个空间的详情页面。
- 选择 集成数据 tab,点击 添加一个集成,进入添加集成页面。
- 选择 DB Pull 集成。
- 按下文「配置项」说明填写表单,点击 保存。
使用共享集成
使用共享集成
当您需要根据告警事件的 Payload 信息,将告警路由到不同协作空间时,优先选择此方式。
- 进入 Flashduty 控制台,选择 集成中心 ⇒ 告警事件,进入集成选择页面。
- 选择 DB Pull 集成,并填写 集成名称。
- 配置 默认路由,选择对应的协作空间(集成创建后可前往 路由 配置更多路由规则)。
- 按下文「配置项」说明填写表单,点击 保存 完成。
配置项
数据库驱动
连接信息
查询配置
单次拉取最多摄入的行数受全局上限约束(
max_pages × page_size),并不会超过系统内部的事件总数上限。建议将 page_size 设置为数据库能高效处理的批量大小(通常 200 ~ 500 行),max_pages 根据告警产出速率合理调整。游标配置
Flashduty 使用 游标分页(Keyset Pagination)增量拉取新行,避免全表扫描。每次拉取结束后,系统将最后一行的游标位置持久化,下次拉取从该位置继续。
分页查询原理
系统将您的 SELECT 语句包装成子查询,并在外层自动添加如下 Keyset 条件与排序:
ORDER BY、LIMIT 或 OFFSET,由系统统一控制。
检查点自动重置
系统对查询来源的关键字段计算指纹:driver、host、port、database、query、time_column、id_column、initial_time。当上述任意字段发生变更时,检查点自动失效,下次拉取从 initial_time 重新开始。修改字段映射或严重程度映射不会触发检查点重置,不会导致历史行重放。
字段映射
字段映射决定数据库行的哪些列(或常量值)映射到标准告警事件的哪些字段。标准字段映射(fields)
每条映射规则由 目标字段(标准事件字段名)和 规则 组成,规则有三种类型:
当目标字段为
event_time 时,系统会将列值自动转换为 Unix 时间戳(秒);支持的输入格式包括 time.Time、Unix 毫秒整数、"2006-01-02T15:04:05"、"2006-01-02 15:04:05" 等常见格式。
标签映射(labels)
标签映射决定如何将数据库列转换为告警事件的labels 字典,支持四种模式:
严重程度映射
外部系统的告警级别字段取值往往不一致,Flashduty 通过 严重程度映射 将外部值翻译为标准的Critical / Warning / Info / Ok。
- 系统读取经过字段映射后得到的
event_status字段值,按映射表查找对应的 Flashduty 严重程度。 - 未命中兜底:若
event_status没有匹配到映射表中的任何键,默认降级为Warning。
默认路由
新增「共享集成」时必须配置默认路由,否则拉取到的事件将被丢弃。集成创建后可在 路由 中追加更细粒度的规则。 「专属集成」(在某个协作空间的 集成数据 中创建)会自动绑定到所在空间,不需要单独配置默认路由。
注意事项
- 数据库账号权限:建议为 DB Pull 单独创建只读账号,仅授予目标表的
SELECT权限,禁止写入权限,降低安全风险。 - 网络可达性:Flashduty 服务端必须能够通过公网或专线访问到数据库的
host:port。私有网段(10.x.x.x、192.168.x.x、172.16~31.x.x)和回环地址会被系统拒绝连接。 - 游标列索引:为保证拉取性能,建议在
time_column和id_column组合上建立复合索引,避免全表扫描。 - 时间列精度:系统以微秒精度(
2006-01-02 15:04:05.999999)记录游标时间,建议数据库时间列的精度不低于毫秒(DATETIME(3)或TIMESTAMP(6)),以避免在同一秒内产生大量数据时发生漏行。 - 查询幂等性:同一行在检查点重置后可能被重复拉取,请确保您的字段映射中包含能唯一标识一条告警的字段(作为
alert_key),以便 Flashduty 正确去重。