一、监控体系概述:为什么需要监控、监控的黄金指标、监控分层架构
大家好,我是你们的老朋友。今天咱们正式开篇,聊聊监控体系。
说实话,我见过太多团队,系统上线后第一件事就是写业务代码,监控?等出事了再说。结果呢?凌晨三点被报警电话叫醒,手忙脚乱查日志,那种滋味,我经历过不止一次。所以,监控不是锦上添花,它是系统的「安全带」。
1.1 为什么需要监控?
先问大家一个问题:你凭什么相信你的系统是健康的?
凭感觉?凭运气?都不靠谱。监控就是给你一双「透视眼」,让你随时知道系统在干什么。
我个人习惯把监控的目的总结为三点:
- 发现问题:系统挂了、慢了、错了,第一时间知道。别等用户投诉。
- 定位问题:出问题了,是数据库慢了?还是网络抖了?监控数据能帮你快速缩小范围。
- 预测问题:磁盘快满了、内存快爆了,提前预警。我曾经就因为没监控磁盘,导致日志把根目录写满,整个服务挂了半小时……嗯,从那以后我监控里必加磁盘使用率。
说白了,监控就是让你从「救火队员」变成「预防医生」。
1.2 监控的黄金指标
指标那么多,到底该看哪些?别急,业界早就帮我们总结好了。我个人最常用的三套方法论:USE、RED、Four Golden Signals。
1.2.1 USE 方法(资源视角)
USE 是 Brendan Gregg 提出的,专门用来监控「资源」的。比如 CPU、内存、磁盘、网络。
USE 三个字母代表:
- Utilization(使用率):资源被占用的比例。比如 CPU 用了 80%。
- Saturation(饱和度):资源排队等待的程度。比如 CPU 运行队列长度。
- Errors(错误数):资源层面的错误。比如磁盘 I/O 错误。
举个例子,我监控一台数据库服务器:
- CPU 使用率 90% → 利用率高
- CPU 运行队列 > 核心数 → 饱和了
- /var/log/messages 里出现 I/O error → 有错误
这三项一列,资源健康度一目了然。
1.2.2 RED 方法(服务视角)
RED 是 Tom Wilkie 提出的,专门用来监控「服务」的。比如你的 API、微服务。
RED 三个字母代表:
- Rate(速率):每秒请求数。QPS 就是典型的 Rate。
- Errors(错误数):请求失败的次数。比如 HTTP 500。
- Duration(持续时间):请求响应时间。比如 P99 延迟。
你想想看,一个服务好不好,就看这三样:
- Rate 高不高?说明业务量。
- Errors 多不多?说明稳定性。
- Duration 长不长?说明性能。
我在项目中遇到过,某个接口 Rate 正常,Errors 也正常,但 Duration 从 100ms 涨到了 2s。用户反馈「页面转圈圈」,但监控没报警。为什么?因为只监控了错误率,没监控延迟。后来我加上了 P99 延迟监控,这类问题再也没漏过。
1.2.3 Four Golden Signals(综合视角)
Google SRE 提出的四个黄金信号,可以说是监控界的「宪法」:
| 信号 | 说明 | 举例 |
|---|---|---|
| 延迟 | 请求处理时间 | P50、P99 延迟 |
| 流量 | 系统负载程度 | QPS、并发连接数 |
| 错误 | 请求失败率 | HTTP 5xx、业务错误码 |
| 饱和度 | 资源耗尽程度 | CPU 使用率、内存使用率 |
这四个信号覆盖了「用户体验」和「系统资源」两个维度。我个人习惯:
- 对外接口用 RED + 延迟
- 内部资源用 USE
- 整体大盘用 Four Golden Signals
1.3 监控分层架构
监控不是单点的事,它是一套分层体系。我习惯把监控分成四层,从下往上:
1.3.1 基础设施层
监控物理机、虚拟机、网络设备、存储。指标包括 CPU、内存、磁盘、网络、温度等。工具:Prometheus + node_exporter、Zabbix。
1.3.2 中间件层
监控数据库、缓存、消息队列、负载均衡。比如 MySQL 的慢查询、Redis 的命中率、Kafka 的堆积量。工具:Prometheus exporter、Grafana 仪表盘。
1.3.3 应用层
监控业务接口、微服务、容器。指标包括 QPS、延迟、错误率、调用链。工具:SkyWalking、Jaeger、Prometheus + 自定义指标。
1.3.4 用户层
监控真实用户体验。比如页面加载时间、JS 错误、白屏时间。工具:自建埋点、Sentry、Google Analytics。
这四层缺一不可。我曾经遇到一个案例:用户反馈「下单慢」,应用层监控显示延迟正常,中间件层也正常。最后查了基础设施层,发现网络带宽被打满了。你看,如果只盯着应用层,这个问题根本发现不了。
1.4 小结
这一章我们聊了:
- 监控为什么重要:发现问题、定位问题、预测问题。
- 三大黄金指标:USE(资源)、RED(服务)、Four Golden Signals(综合)。
- 监控分层架构:基础设施层 → 中间件层 → 应用层 → 用户层。
下一章,我会带大家搭建一个最小可用的监控系统。咱们从 Prometheus 开始,一步步把指标抓起来。到时候,我会分享一些我踩过的坑,比如「怎么避免监控把自己监控死」——嗯,这真不是段子。
好了,今天就到这里。有问题随时交流。