AustinDatabases

DB 监控 --乱搞监控最后挨罚了吧?(3)

❝

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共3400人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7 8群已经爆满  9群 300+,开10群PolarDB专业学习群110+)

DB 监控 不是我不聪明系列--只从技术角度考虑监控问题是要挨骂的(2)

DB 监控-告警老明白了,但就是搞不好 ,老挨骂-- 不是我不聪明系列(1)

上集咱们说到数据库的分类分级和数据库的告警应该怎么做的问题,为什么数据库告警要先对数据库进行分类分级,分类分级有什么标准,通用的操作手段是什么。

1 业务重要性作为数据库分类分级的标注标准

这是一个数据库告警工作的前缀,公司中的数据库类型非常多,我们举几个例子

1 生产库,测试库

2 边缘业务库,核心业务库

3 离线核心业务库,在线核心业务库

4 核心业务mongodb 数据库 ,核心业务 MySQL数据库,核心业务Redis数据库

大家可以看到上面的类型非常多,正常的DBA一半会给这些库列一个等级

1  直接划分数据库告警与不告警的维度,生产和测试

分类维度
分类类型
定义
示例
运维重点
环境类型
PROD
生产环境,直接承载用户业务
支付库
最高优先级
环境类型
PRE
预发布环境,生产前验证
staging库
高优先级
环境类型
TEST
测试环境
QA测试库
中优先级
环境类型
DEV
开发环境
dev开发库
低优先级

这里我们可以清晰的看到,数据库告警的必要性,生产是必须要告警的,而大部分情况TEST ,DEV 是不需要告警的。

这里就有人提到,不对,测试和预生产也需要告警。

他说的是对的,测试和与生产也需要告警,告什么警,告数据库DOWN机的警,也就是当这个数据库发生严重的无法连接,或者数据库整体DOWN机且无法启动后的告警。

这样的告警方式可能很多,比如邮件告警,或者企业微信,钉钉告警等。但这里注意这样的告警必须和生产数据库告警群分离,不能将这样的告警与生产数据库的告警放到一起。

2 业务重要性的分类

分类维度
分类类型
定义
示例
运维重点
业务重要性
核心业务库
直接影响公司收入
支付库、订单库
极高保护
业务重要性
重要业务库
关键功能支撑
用户库
高保护
业务重要性
一般业务库
辅助业务
报表库
中保护
业务重要性
非关键业务库
可中断业务
测试库
低保护

生产数据库也是需要分类分级,比如数据库性能出现问题,就会导致生产事故,或者数据库只要不DOWN机就不会产生生产事故。

除了上面的数据库告警分类以外,以业务的重要性来衡量数据库告警的方式,方法,阀值是最有效的方法。

我们举例一个数据库平时的工作CPU没有超过 40%的情况,某天突发超过60%,要不要告警,怎么告警,告的什么警。这些统统和你的业务的重要性有关。

这里又会牵扯出,环比和同步的告警问题,当然这个问题咱们后面说,今天就不说这个问题了

这里我们举一个例子,一个公司一个报表的数据库,每到月底CPU几乎95%以上,内存使用率到到90%以上,磁盘IOPS 能告警一晚上,但是他就是不DOWN机,同时没有客诉,或者项目经理告诉你,这个业务就是这样,平时CPU连5%都没有,就到月底,年底,CPU这样,我请问你的数据库要不要告警,怎么告警,告的什么警。

这里就要牵扯,告警的级别了,数据库告警有级别,当然数据库告警当然有级别

分别是 alert, warning, info 用中文,事故告警,风险告警,和观察告警。

那么什么是事故告警,我们在举一个例子,数据库down机了,数据库无法连接了,数据库主从复制中断了,磁盘写满了。

这些必然是严重的生产事故,因为数据库不可用了。

而我们刚才提到了,一晚上数据库都那样,但没有事情,这算什么告警,这算风险告警,而我们很多的情况都是 风险告警,比如CPU 90% 但就几秒钟, IOPS打满了,但就2分钟,内存90%了,但就10分钟。

我请问这些要不要告警,告的什么警。

这是一个好问题,怎么办???  你说呢 ,我相信很多人都会说这还不告警吗??

那么我们举例,核心业务库,一晚上90%的CPU ,你设置的电话告警,一分钟一个电话,你起来看,业务告诉你,导数据呢,暂时就这样,然后你就一晚上的电话不断,最后你把告警电话拉黑了,半夜因为倒数导致数据库挂了,你没有接到告警电话,最后你挨罚了。

请问你该怎么办?  咱们下期说

Image