> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashcat.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# 什么是故障

> Flashduty On-call 中的故障代表一个正在发生的问题或者一个需要处理的事项。故障一般由告警触发，常常关联了一系列相似的告警。

## 故障、告警和事件

当 Flashduty On-call 接收到告警事件（比如 Zabbix 的一条告警通知），系统会自动触发一条告警，而这条告警将会触发一条故障。多条相似的活跃告警，可能会被聚合到同一条故障中，一起分派、通知和处理。

我们可以简单的理解为：**故障，是相似告警的组合**，在没有降噪的情况下，故障等同于告警。反过来，降噪的场景下，故障等同于其关联的多条告警。关于告警的降噪模型，请阅读[了解告警降噪](/zh/on-call/channel/noise-reduction)了解更多。

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

### 严重程度

| 级别           | 说明                             |
| :----------- | :----------------------------- |
| **Info**     | 轻微，服务本身仍然正常运行，仅做服务状态提醒，无需立即处理  |
| **Warning**  | 警告，服务可能出错或者即将发生问题，应尽早介入避免问题升级  |
| **Critical** | 严重，服务大面积出错甚至中断，用户受到影响，必须立即介入处理 |

故障、告警和事件，均使用以上三种严重程度。**严重程度首字母大写**，您在使用 API 时需要特别注意。三者的严重程度生成规则如下：

* **事件的严重程度**：不同集成来源（如 Zabbix 和夜莺）的告警事件有不同的严重程度枚举值，Flashduty On-call 会按照一定规则映射为以上三种标准严重程度。具体映射关系，请您参阅具体集成的接入文档，如需自定义严重程度，请参阅[告警处理](/zh/on-call/integration/alert-integration/alert-pipelines)。
* **告警的严重程度**：等于所关联的事件中最高级别的严重程度。
* **故障的严重程度**：等于所关联的告警中最高级别的严重程度。

### 处理进度

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

API 字段中处理进度使用大写枚举值 `Triggered` / `Processing` / `Closed`，在调用 API 或配置过滤条件时请使用该原始值。

### 故障状态

告警的状态代表的是故障在原始监控系统中的状态，即"已恢复"或"未恢复"。故障的状态完全由其关联的告警来决定。

| 状态      | 说明                         |
| :------ | :------------------------- |
| **已恢复** | 故障关联的告警均已恢复，故障将自动恢复        |
| **未恢复** | 故障关联的告警至少有一条未恢复，故障将处于未恢复状态 |

<Note>
  故障自动恢复将导致（处理进度）自动关闭；但手动关闭故障，对故障的状态没有任何影响。
</Note>

## 故障标签

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

### 标签生成规则

告警的标签提取自原始告警系统上报过来的事件消息体。不同来源有不同的提取方式，大致上，我们采取 **应取尽取** 的原则。比如对于 Prometheus 来源的告警事件，Flashduty On-call 会提取 Payload 中的 Labels 和 Annotations 信息。

<Tip>
  * 标签只能通过事件上报得到，不能手动修改或添加
  * 自动触发的故障，其标签永远等于其关联的第一条告警的标签
  * 手动触发的故障，其标签永远为空
</Tip>

Flashduty On-call 提供了标签增强方案，用于自动化生成标签，前往[配置标签增强](/zh/on-call/integration/alert-integration/label-enhancement)了解更多。

## 故障生命周期

<Steps>
  <Step title="触发新故障">
    故障可以通过以下方式触发：

    * **自动触发**：Flashduty On-call 接收到集成上报的告警事件（如 Zabbix 通知），事件自动触发一条告警，告警自动触发一条故障
    * **手动触发**：在 Flashduty On-call 控制台点击 **创建故障** 按钮，填写标题、描述、严重程度等信息，触发一条新故障
    * **外部提报**：开启外部提报功能后，外部人员可通过专属链接提交故障工单，无需登录 Flashduty 账号。详见[协作空间配置](/zh/on-call/channel/create-edit)
  </Step>

  <Step title="分派与通知">
    新故障触发以后，Flashduty On-call 将依次匹配所属协作空间下的分派策略。匹配到分派策略之后，系统会将故障分派给个人、团队成员或者值班人员并进行通知。

    <Warning>
      如果没有匹配到分派策略，故障将不会分派给任何人，也不会有任何通知。
    </Warning>

    您可以针对不同时间段，或者不同类型的故障设置不同的分派策略，以达到灵活分派的效果。系统允许您在一个分派策略下，设置多个分派环节。如果当前环节的分派人员，在指定时间内，没有完成故障的确认和处理，系统将自动升级到下一环节。

    您可以在分派策略中，灵活安排通知方式，Flashduty On-call 支持非常多的群聊和单聊通知通道。单聊是一对一的推送渠道（如语音、短信和邮件），群聊是将消息推送到消息群中（如飞书、钉钉和 Slack），并对分派人员进行额外提醒。

    <Note>
      如果您将故障分派给了一个没有人 On-call 的值班表（轮空），系统将不会给任何个人发起通知，但如果您配置了群聊通道，仍然会给该群聊推送消息。
    </Note>
  </Step>

  <Step title="认领和解决">
    On-call 人员收到通知后，可以立即进行认领。您可以在 **语音电话**、**即时消息** 中认领故障。认领后，故障处理进度将变为 **处理中**。

    <Tip>
      Flashduty On-call 目前没有限制故障仅能被"已分派的处理人员"认领。任何看到的故障的人员，均可以点击认领。
    </Tip>

    **关闭故障** 将导致处理进度变为 **已关闭**。如果故障关联的告警自动恢复，故障也将自动关闭。相反，如果您手动关闭了故障，将导致故障关联的所有告警自动关闭。这意味着，这些告警将不会再合入任何新的事件。
  </Step>
</Steps>

## 故障时间线

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

<Frame>
  <img src="https://download.flashcat.cloud/flashduty/kb/timeline.png" alt="故障时间线" />
</Frame>

## 触发故障

### 通过集成触发故障

Flashduty On-call 已经支持大部分常见监控系统，包括 Prometheus、Zabbix、夜莺 以及云监控等，前往[告警集成](/zh/on-call/integration/alert-integration/alert-sources/prometheus)查看具体操作步骤。

<Tip>
  Flashduty On-call 支持专属集成和共享集成模式：

  * **专属集成**：将告警投递到协作空间下的专属集成，故障将在此协作空间下触发
  * **共享集成**：将告警投递到集成中心的共享集成，然后配置路由，将告警按规则投递到不同的协作空间
</Tip>

### 通过 API 触发故障

Flashduty On-call 提供了一个自定义事件标准，允许您通过标准协议上报告警，适用于任何未适配的监控系统。详细文档请阅读\[自定义告警事件]\(/zh/on-call/integration/alert-integration/alert-sources/standard alert)。

<Warning>
  为了保证整个系统的稳定，Flashduty On-call 对每个集成的 API 上报实施频率限制（**100 次/秒**、**1000 次/分钟**），超出限制将返回 `429` 状态码，请等待后重试。详见[接入告警 - 频率限制](/zh/on-call/channel/integrate-data#频率限制)。
</Warning>

<Warning>
  请确保您会主动关闭告警，或者在协作空间下，设置了故障超时自动关闭。故障数量太多时，会导致控制台检索性能急剧下降。届时，系统可能会对历史故障进行关闭，而不进行任何通知。
</Warning>

### 通过邮件触发故障

Flashduty On-call 提供了一个邮件集成，允许您通过发送邮件来上报告警，适用于所有支持邮件提醒的监控系统。详细文档请阅读[邮件集成指引](/zh/on-call/integration/alert-integration/alert-sources/email)。

<Tip>
  您可以为每一个集成设置特定的邮件前缀。您也可以联系我们，为主体账号设置一个方便记忆的专属域名。比如，[order-service@tesla.flashcat.cloud](mailto:order-service@tesla.flashcat.cloud)。
</Tip>

### 通过控制台触发故障

你可以在故障列表页面点击 **创建** 按钮手动创建故障。按照以下步骤操作：

<Steps>
  <Step title="填写故障标题">
    输入故障标题，简要描述发生了什么问题。该字段为必填。
  </Step>

  <Step title="选择严重程度">
    选择 Critical（严重）、Warning（一般）或 Info（轻微）三个级别之一。
  </Step>

  <Step title="选择协作空间">
    选择故障归属的协作空间。如果你在协作空间内创建故障，该字段已自动填充且不可更改。
  </Step>

  <Step title="选择分派方式">
    选中协作空间后，系统会展示分派方式选项：

    * **策略分派**：从当前协作空间下的分派策略中选择一条进行分派。如果协作空间下没有可用的分派策略，该选项将被禁用
    * **直接分派**：手动选择处理人员（个人或值班表），直接分派给指定人员
  </Step>

  <Step title="填写故障描述（可选）">
    输入故障的详细描述，编辑器支持富文本和 Markdown 语法。
  </Step>
</Steps>

## 延伸阅读

<CardGroup cols={2}>
  <Card title="了解告警降噪" icon="volume-slash" href="/zh/on-call/channel/noise-reduction">
    理解事件、告警、故障的关系以及降噪原理
  </Card>

  <Card title="检索与查看故障" icon="magnifying-glass" href="/zh/on-call/incident/search-view-incident">
    掌握故障列表、详情页的使用方法
  </Card>

  <Card title="处理与更新故障" icon="wrench" href="/zh/on-call/incident/handle-update-incident">
    了解如何认领、暂缓、关闭故障
  </Card>

  <Card title="升级与分派故障" icon="arrow-up-right-dots" href="/zh/on-call/incident/escalate-dispatch-incident">
    了解如何重新分派、升级分派
  </Card>
</CardGroup>
