跳转到主要内容

适配场景

告警责任人在源监控系统中维护且频繁调整,希望及时同步到 Flashduty On-call。
客户 A 自研大数据任务系统,内部人员可以在此平台新建各类数据批处理任务,每个任务可以设定第一责任人和第二责任人。当批处理任务处理失败时,系统会优先告警通知第一责任人,如果超过 30 分钟此告警还没有恢复,则升级为第二责任人。
客户 B 使用 Zabbix 做主机监控,并且针对每一条主机设定了一个负责人 tag。客户希望该主机告警时,能够根据此 tag 通知到对应的责任人。
客户 C 有一套自研监控系统,设定了很多告警策略,每一条策略都设定通知到某个微信群。该客户决定将事件响应迁移至 Flashduty,但希望仍然保留源监控系统中策略到微信群的关系,并且能够将告警依赖此关系动态通知到微信群。

实现方式

添加特定标签或 Query 参数,用于调整 Flashduty On-call 中的分派对象,实现动态分派。参数值支持使用 , 分割多个邮箱、团队名称或机器人 token。 动态分派支持两种调整模式:
模式说明适用场景
替换reset使用动态标签中的对象替换指定环节的原有对象源监控系统或外部 CMDB 是唯一责任人来源
追加append在指定环节的原有对象基础上追加动态标签中的对象,并自动去重保留默认值班团队,同时追加服务负责人、业务群或临时响应人
环节数字从 0 开始。例如 layer_person_reset_0_emails 表示分派策略环节 1,layer_person_append_1_emails 表示分派策略环节 2。

人员和团队参数

目标对象替换参数追加参数参数值
分派人员邮箱layer_person_reset_(\d)_emailslayer_person_append_(\d)_emails成员邮箱,多个邮箱使用 , 分割
团队名称layer_person_reset_(\d)_team_nameslayer_person_append_(\d)_team_names团队名称,多个团队使用 , 分割

群聊机器人参数

目标对象替换参数追加参数参数值
企微群聊机器人layer_webhook_reset_(\d)_wecomslayer_webhook_append_(\d)_wecoms机器人 token,多个 token 使用 , 分割
钉钉群聊机器人layer_webhook_reset_(\d)_dingtalkslayer_webhook_append_(\d)_dingtalks机器人 token,多个 token 使用 , 分割
飞书群聊机器人layer_webhook_reset_(\d)_feishuslayer_webhook_append_(\d)_feishus机器人 token,多个 token 使用 , 分割
故障触发时,Flashduty 按照已有的分派策略进行匹配。匹配到分派策略后,按照此策略中的环节进行分派或升级。如果设定上述参数,系统会自动替换或追加分派对象、群聊通道。所匹配的分派策略中,除了分派对象和群聊目标发生变更,其他内容维持不变,相当于一个模板分派策略。
reset 优先级高于 append。人员和团队属于同一个人员组维度:同一环节只要设置了任意 layer_person_reset_* 参数,该环节的 layer_person_append_* 参数就不会再合并。群聊机器人按机器人类型分别判断:例如同时设置 layer_webhook_reset_0_wecomslayer_webhook_append_0_wecoms 时,环节 1 的企微机器人以 reset 参数为准;同时追加飞书或钉钉机器人仍会生效。

推送示例

步骤一:设置模板分派策略

为协作空间配置一个分派策略。如下图所示,该空间只设定一个分派环节,分派对象为头铁科技,同时推送 token 为 5b96 结尾的企微群聊。
模板分派策略配置

步骤二:为告警设定标签

以自定义告警事件集成为例,向目标协作空间推送一条示例告警:
  • 设定 layer_person_reset_0_emails 标签,期望将环节一的分派人员替换为 guoyuhang 和 yushuangyu
  • 设定 layer_webhook_reset_0_wecoms 标签,期望将环节一的微信群聊 token 替换为 d9c0 结尾的 token
  • 设定 layer_person_append_0_emails 标签,期望在环节一额外追加 wangwu
  • 设定 layer_webhook_append_0_feishus 标签,期望在环节一额外追加一个飞书群聊机器人
curl --location --request POST 'https://api.flashcat.cloud/event/push/alert/standard?integration_key=your-integration-key' \
--header 'Content-Type: application/json' \
--data-raw '{
    "event_status": "Warning",
    "alert_key": "lasdfl2xzasd0262",
    "description": "cpu idle lower than 20%",
    "title_rule": "$cluster::$resource::$check",
    "labels": {
        "service": "engine",
        "cluster":"nj",
        "resource":"es.nj.01",
        "check":"cpu.idle<20%",
        "metric":"node_cpu_seconds_total",
        "layer_person_reset_0_emails": "guoyuhang@flashcat.cloud,yushuangyu@flashcat.cloud",
        "layer_webhook_reset_0_wecoms":"90dbb66b-af39-4235-956c-636a9c1ed9c0",
        "layer_person_append_0_emails": "wangwu@flashcat.cloud",
        "layer_webhook_append_0_feishus":"feishu-bot-token"
    }
}'

步骤三:查看故障分派时间线

如下图所示,目标故障正常触发并进行分派。故障的分派人员和目标群聊都会按照动态标签进行替换或追加。
动态分派结果展示

常见问题

1

方案一:主动添加标签

如果您的系统支持主动添加标签,比如 Prometheus 或者夜莺,建议您直接在告警策略处增加特定标签。
2

方案二:使用标签增强

如果您的系统已经有相关标签,但格式或命名不同。比如,您的主机带有团队标签,您需要根据团队来找到对应的责任人,这种情况下您可以使用标签增强功能,根据团队标签生成负责人相关标签。具体请参考 配置标签增强

延伸阅读

标签增强

根据已有标签自动生成新标签

分派策略

了解分派策略的配置方法