# 设置 TiDB 数据库的报警系统

__*TiDB 报警系统*__
__*TiDB 警告级别*__
__*TiDB 紧急级别*__
__*TiDB 严重级别*__
__*TiDB 警告级别*__

+ 警告级别
| 程度 | 说明 |
| :-- | :-- |
| 紧急级别 | 最高严重程度,服务不可用,通常由于服务停止或节点故障导致,此时需要马上进行人工干预 |
| 严重级别 | 服务可用性下降,需要用户密切关注异常指标 |
| 警告级别 | 对某一问题或错误的提醒 |

+ 指标
  + `PD_cluster_offline_tikv_nums`

+ 报警规则:
  + `sum(pd_cluster_status{type="store_down_count"}) > 0`

+ 规则描述:
  + PD 长时间（默认配置是 30 分钟）没有收到 TiKV 心跳。
-------------------------------------------------------------
对于 Prometheus + Grafana 的监控方式,按照严重程度由高到低,报警项可分为紧急级别,严重级别,警告级别三类。该分级适用于以下各组件的报警项。

| 程度 | 说明 |
| :-- | :-- |
| 紧急级别 | 最高严重程度,服务不可用,通常由于服务停止或节点故障导致,此时需要马上进行人工干预 |
| 严重级别 | 服务可用性下降,需要用户密切关注异常指标 |
| 警告级别 | 对某一问题或错误的提醒 |

程度说明紧急级别最高严重程度,服务不可用,通常由于服务停止或节点故障导致,此时需要马上进行人工干预严重级别服务可用性下降,需要用户密切关注异常指标警告级别对某一问题或错误的提醒

 Prometheus + Grafana 会根据预设的规则定义报警规则与级别,上面提到的规则就配置在监控服务器的 /home/tidb/deploy/conf 中,有 12 个规则配置文件,可以通过名字加以区分。我们可以在网页面板上进行相关的配置。

我们需要如何设置一个报警呢,举个例子,如果 PD 长时间没有收到 TiKV 的心跳,那么我们需要触发一个紧急级别的报警。在报警系统中已经预置了PD_cluster_offline_tikv_nums紧急级别报警项,内容如下:

- 报警规则:
sum(pd_cluster_status{type="store_down_count"}) > 0

- 规则描述:
PD 长时间（默认配置是 30 分钟）没有收到 TiKV 心跳。

- 处理方法:
  - 检查 TiKV 进程是否正常、网络是否隔离以及负载是否过高,并尽可能地恢复服务。
  - 如果确定 TiKV 无法恢复,可做下线处理。

关于其他报警项的了解请参考:https://docs.pingcap.com/zh/tidb/stable/alert-rules

参考文档:https://docs.pingcap.com/zh/tidb/stable/alert-rules