跳转到主要内容

故障、告警和事件

当 Flashduty On-call 接收到告警事件(比如 Zabbix 的一条告警通知),系统会自动触发一条告警,而这条告警将会触发一条故障。多条相似的活跃告警,可能会被聚合到同一条故障中,一起分派、通知和处理。 我们可以简单的理解为:故障,是相似告警的组合,在没有降噪的情况下,故障等同于告警。反过来,降噪的场景下,故障等同于其关联的多条告警。关于告警的降噪模型,请阅读了解告警降噪了解更多。

故障严重程度、状态和进度

严重程度

级别说明
Info轻微,服务本身仍然正常运行,仅做服务状态提醒,无需立即处理
Warning警告,服务可能出错或者即将发生问题,应尽早介入避免问题升级
Critical严重,服务大面积出错甚至中断,用户受到影响,必须立即介入处理
故障、告警和事件,均使用以上三种严重程度。严重程度首字母大写,您在使用 API 时需要特别注意。三者的严重程度生成规则如下:
  • 事件的严重程度:不同集成来源(如 Zabbix 和夜莺)的告警事件有不同的严重程度枚举值,Flashduty On-call 会按照一定规则映射为以上三种标准严重程度。具体映射关系,请您参阅具体集成的接入文档,如需自定义严重程度,请参阅告警处理
  • 告警的严重程度:等于所关联的事件中最高级别的严重程度。
  • 故障的严重程度:等于所关联的告警中最高级别的严重程度。

处理进度

状态说明
待处理故障触发后,处理进度默认为”待处理”,系统会发起自动分派,设置处理人员并进行通知
处理中任意人员点击 认领故障,处理进度将立即变为”处理中”。在此情况下,故障的处理人员可能处于 已认领未认领 的状态,但至少有一个人处于”已认领”状态。当所有处理人都取消认领,故障处理进度将回退到”待处理”
已关闭任意人员点击 关闭故障故障自动恢复,处理进度将立即变为”已关闭”

故障状态

告警的状态代表的是故障在原始监控系统中的状态,即”已恢复”或”未恢复”。故障的状态完全由其关联的告警来决定。
状态说明
已恢复故障关联的告警均已恢复,故障将自动恢复
未恢复故障关联的告警至少有一条未恢复,故障将处于未恢复状态
故障自动恢复将导致(处理进度)自动关闭;但手动关闭故障,对故障的状态没有任何影响。

故障标签

标签(Labels)是 Flashduty On-call 中很重要的一个基础概念,不同的标签描述了告警、故障在不同维度的信息,并被大量应用于过滤、检索、聚合等场景。

标签生成规则

告警的标签提取自原始告警系统上报过来的事件消息体。不同来源有不同的提取方式,大致上,我们采取 应取尽取 的原则。比如对于 Prometheus 来源的告警事件,Flashduty On-call 会提取 Payload 中的 Labels 和 Annotations 信息。
  • 标签只能通过事件上报得到,不能手动修改或添加
  • 自动触发的故障,其标签永远等于其关联的第一条告警的标签
  • 手动触发的故障,其标签永远为空
Flashduty On-call 提供了标签增强方案,用于自动化生成标签,前往配置标签增强了解更多。

故障生命周期

1

触发新故障

故障可以通过以下方式触发:
  • 自动触发:Flashduty On-call 接收到集成上报的告警事件(如 Zabbix 通知),事件自动触发一条告警,告警自动触发一条故障
  • 手动触发:在 Flashduty On-call 控制台点击 创建故障 按钮,填写标题、描述、严重程度等信息,触发一条新故障
2

分派与通知

新故障触发以后,Flashduty On-call 将依次匹配所属协作空间下的分派策略。匹配到分派策略之后,系统会将故障分派给个人、团队成员或者值班人员并进行通知。
如果没有匹配到分派策略,故障将不会分派给任何人,也不会有任何通知。
您可以针对不同时间段,或者不同类型的故障设置不同的分派策略,以达到灵活分派的效果。系统允许您在一个分派策略下,设置多个分派环节。如果当前环节的分派人员,在指定时间内,没有完成故障的确认和处理,系统将自动升级到下一环节。您可以在分派策略中,灵活安排通知方式,Flashduty On-call 支持非常多的群聊和单聊通知通道。单聊是一对一的推送渠道(如语音、短信和邮件),群聊是将消息推送到消息群中(如飞书、钉钉和 Slack),并对分派人员进行额外提醒。
如果您将故障分派给了一个没有人 On-call 的值班表(轮空),系统将不会给任何个人发起通知,但如果您配置了群聊通道,仍然会给该群聊推送消息。
3

认领和解决

On-call 人员收到通知后,可以立即进行认领。您可以在 语音电话即时消息 中认领故障。认领后,故障处理进度将变为 处理中
Flashduty On-call 目前没有限制故障仅能被”已分派的处理人员”认领。任何看到的故障的人员,均可以点击认领。
关闭故障 将导致处理进度变为 已关闭。如果故障关联的告警自动恢复,故障也将自动关闭。相反,如果您手动关闭了故障,将导致故障关联的所有告警自动关闭。这意味着,这些告警将不会再合入任何新的事件。

故障时间线

任一故障都有一个时间线,用于回溯故障历史不同时刻发生的变化和操作。比如故障在什么时间点,以什么通道通知到了谁,以及通知的结果。
故障时间线

触发故障

通过集成触发故障

Flashduty On-call 已经支持大部分常见监控系统,包括 Prometheus、Zabbix、夜莺 以及云监控等,前往告警集成查看具体操作步骤。
Flashduty On-call 支持专属集成和共享集成模式:
  • 专属集成:将告警投递到协作空间下的专属集成,故障将在此协作空间下触发
  • 共享集成:将告警投递到集成中心的共享集成,然后配置路由,将告警按规则投递到不同的协作空间

通过 API 触发故障

Flashduty On-call 提供了一个自定义事件标准,允许您通过标准协议上报告警,适用于任何未适配的监控系统。详细文档请阅读自定义告警事件
为了保证整个系统的稳定,Flashduty On-call 目前对于 API 上报有 200qps 的频率限制,超出限制之后将会拒绝上报。
请确保您会主动关闭告警,或者在协作空间下,设置了故障超时自动关闭。故障数量太多时,会导致控制台检索性能急剧下降。届时,系统可能会对历史故障进行关闭,而不进行任何通知。

通过邮件触发故障

Flashduty On-call 提供了一个邮件集成,允许您通过发送邮件来上报告警,适用于所有支持邮件提醒的监控系统。详细文档请阅读邮件集成指引
您可以为每一个集成设置特定的邮件前缀。您也可以联系我们,为主体账号设置一个方便记忆的专属域名。比如,order-service@tesla.flashcat.cloud

通过控制台触发故障

控制台点击 创建 按钮,发起故障创建。
字段是否必须描述
故障标题一句话指明发生了什么
严重程度选择 Critical、Warning、Info 三个枚举值之一
协作空间故障归属,如果是在协作空间下创建的故障,则不需要选择
分派方式策略分派:选择协作空间下的策略进行分派
直接分派:可以选择个人和值班表进行分派
故障描述故障的细节描述,支持 Markdown 语法

延伸阅读