🚀 云应用架构调优 总览与云监控服务
官网教程链接:
一、云应用架构调优整体认知
1.1 什么是云应用架构调优?
云应用架构调优是基于云计算原生特性,对应用的资源配置、网络拓扑、数据存储、流量调度、监控告警等全链路进行系统性优化的过程。其核心目标是在成本、性能、可用性三者之间找到最佳平衡点,构建能够弹性应对业务波动、稳定可靠且高效运行的云应用系统。
1.2 为什么需要云应用架构调优?
传统单体架构和简单云迁移架构在面对现代互联网业务时,普遍存在以下痛点:
| 痛点类型 | 具体表现 | 量化影响 |
|---|---|---|
| 资源利用率低 | 为应对高峰提前部署大量冗余资源,平时闲置率高达70%以上 | 云资源成本浪费30%-60% |
| 弹性能力不足 | 流量突增时无法快速扩容,导致系统崩溃;流量下降时无法及时缩容 | 业务中断时长增加,用户流失率上升20%-50% |
| 单点故障风险 | 核心服务依赖单台服务器,故障后恢复时间长 | 平均故障恢复时间(MTTR)超过4小时 |
| 数据瓶颈突出 | 传统数据库无法支撑海量数据和高并发读写 | 系统响应时间超过3秒,用户体验严重下降 |
| 运维效率低下 | 缺乏统一监控,故障发现滞后,定位困难 | 运维人员人均管理服务器数量不足50台 |
1.3 云应用架构调优四大核心支柱
云应用架构调优是一个闭环体系,由四大核心服务协同完成:
🖥️ 四大核心服务协同架构
- 4.1 云监控服务:整个调优体系的"眼睛"和"大脑",负责全链路数据采集、分析和告警,为所有调优动作提供决策依据
- 4.2 弹性伸缩服务(ESS):自动调整计算资源规模,解决"资源闲置"与"容量不足"的矛盾
- 4.3 负载均衡服务(SLB):将流量均匀分发到多个后端服务器,解决单点故障和性能瓶颈问题
- 4.4 分布式数据库服务(PolarDB):提供高性能、高可用、可扩展的数据存储和处理能力,支撑海量业务数据
本章节我们将首先深入学习云监控服务,这是所有云架构调优工作的基础和前提。
📌 【4.1 云监控服务 学习目标】
- 理解阿里云云监控的产品定位、核心价值与三层技术架构
- 掌握云产品监控、主机监控、站点监控、自定义监控、报警服务、数据可视化六大核心能力
- 了解云监控与其他云服务的协同逻辑与典型业务场景
- 建立监控指标体系、阈值分级、告警降噪的最佳实践思维
二、云监控服务基础认知 理论基础
2.1 监控技术的发展历程
监控技术随着IT架构的演进经历了三个主要阶段:
🖥️ 监控技术演进路线
| 阶段 | 核心特点 | 适用场景 | 主要局限性 |
|---|---|---|---|
| 传统监控 | 基于Shell脚本和命令行工具,手动配置,单机监控 | 小规模单机环境,服务器数量<10台 | 扩展性差,无法统一管理,缺乏可视化 |
| 集中式监控 | 中心化部署,支持多节点监控,提供可视化界面 | 传统数据中心,服务器数量10-1000台 | 部署复杂,维护成本高,云原生支持不足,弹性差 |
| 云原生监控 | 与云平台深度集成,开箱即用,自动发现资源,弹性扩展 | 云环境、混合云环境,服务器数量>1000台 | 依赖云厂商,跨云能力有限,定制化成本较高 |
2.2 阿里云云监控产品定义
阿里云云监控(CloudMonitor)是阿里云原生提供的一站式企业级全栈监控解决方案,覆盖IT基础设施、外网网络质量、应用性能与业务指标,支持跨云、跨地域、跨账号统一管理。
它不仅是一个监控工具,更是云应用架构调优的数据入口与决策底座,所有的弹性伸缩、流量调度、数据库优化动作都必须基于云监控提供的量化数据来进行。
2.3 云监控的核心价值
| 价值维度 | 具体说明 | 量化收益 |
|---|---|---|
| 故障前置 | 提前发现异常,在故障影响业务前进行处理 | MTTR缩短60%以上,故障影响范围减少80% |
| 弹性依据 | 为ESS弹性伸缩提供精准的负载数据 | 资源利用率提升40%-60%,峰值响应速度提升3倍 |
| 成本优化 | 精准识别资源闲置/过载,实现合理配给 | 云资源成本降低15%-40%,年度节省数十万至数百万 |
| 全域可视 | 单控制台统一管理80+云产品 | 运维效率提升50%以上,人均管理服务器数量提升至200+台 |
| 合规审计 | 完整保留监控与告警历史,满足等保要求 | 审计合规成本降低80%,满足等保2.0三级要求 |
2.4 云监控在架构调优中的核心位置
云监控是整个云应用架构调优闭环的起点和终点:
🖥️ 调优闭环逻辑
没有有效的监控,所有的架构调优都是盲目的;没有基于监控数据的持续迭代,架构调优就无法达到最佳效果。
三、云监控核心三层技术架构 重难点
阿里云云监控采用分层架构设计,从下到上分为数据采集层、监控中心层、告警中心层,每层各司其职,共同完成全链路监控任务。
3.1 数据采集层
数据采集层是整个监控体系的数据源,负责全维度、实时、可靠地获取各类监控数据。其设计目标是高可用、低延迟、低资源消耗,确保数据的准确性和完整性。
🖥️ 数据采集层详细架构
3.1.1 自动采集
工作原理:阿里云所有云产品在运行过程中,会通过内置的监控代理自动将自身的运行指标上报到云监控服务。这个过程完全透明,用户无需进行任何配置。
技术细节:
- 数据传输:采用HTTPS加密传输,确保数据安全
- 上报频率:默认1分钟上报一次,部分核心产品支持15秒粒度
- 数据可靠性:采用本地缓存+重试机制,确保网络异常时数据不丢失
- 资源消耗:云产品内置监控代理的CPU占用<0.1%,内存占用<10MB,对业务无影响
覆盖范围:支持80+阿里云核心产品,包括:
- 计算类:ECS、ECI、ESS、ACK、函数计算
- 网络类:SLB、EIP、NAT网关、CDN、VPN网关、高速通道
- 数据库类:PolarDB、RDS、Redis、MongoDB、DRDS、OceanBase
- 存储类:OSS、NAS、云盘、混合云存储、归档存储
- 中间件类:MQ、API网关、微服务引擎、消息队列RocketMQ
3.1.2 插件采集
工作原理:在ECS实例上安装云监控插件,插件定期采集操作系统级别的细粒度指标,并通过加密通道上报到云监控服务。
插件架构:
技术细节:
- 资源消耗:CPU占用<1%,内存占用<50MB,磁盘占用<100MB
- 支持系统:Linux(CentOS 6+/Ubuntu 14+/Debian 8+)、Windows Server 2012+
- 自动升级:插件支持自动升级,无需人工干预
- 离线缓存:网络异常时,数据会在本地缓存最多24小时,网络恢复后自动补报
安装方式:
- 新购ECS自动安装:在创建ECS实例时,勾选"安装云监控插件"选项
- 存量ECS批量安装:在云监控控制台选中多台ECS,点击"批量安装或升级插件"
- 手动命令行安装:通过SSH登录ECS,执行官方提供的安装脚本
3.1.3 主动上报
工作原理:用户通过SDK、API或命令行工具,将自定义的业务指标或应用指标主动上报到云监控服务。
技术细节:
- 上报频率:最高支持1秒上报一次
- 数据保留:与标准指标相同,保存30天
- 批量上报:支持一次上报多个指标,提高上报效率
- 权限控制:通过RAM权限控制上报权限,确保数据安全
支持的上报方式:
- SDK上报:支持Java、Python、Go、PHP、Node.js、C#等主流语言
- API上报:通过HTTP API上报,适合任何语言和平台
- 命令行上报:通过云监控提供的cms命令行工具上报,适合脚本采集
- 日志上报:通过日志服务SLS将日志转化为指标上报
Python SDK上报示例:
from aliyunsdkcore.client import AcsClient
from aliyunsdkcms.request.v20190101.PutCustomMetricRequest import PutCustomMetricRequest
client = AcsClient('<your-access-key-id>', '<your-access-key-secret>', 'cn-hangzhou')
request = PutCustomMetricRequest()
request.set_MetricList([
{
"metricName": "order_count",
"dimensions": {"region": "cn-hangzhou", "app": "shop"},
"value": 1234,
"time": int(time.time() * 1000)
}
])
response = client.do_action_with_exception(request)3.1.4 主动探测
工作原理:从全球多个探测节点模拟用户访问,向目标服务发送请求并记录响应结果,从用户视角监控服务质量。
探测流程:
技术细节:
- 探测节点:覆盖全球20+国家和地区,国内30+省市,包括电信、联通、移动三大运营商
- 探测频率:支持1分钟、5分钟、15分钟、30分钟、1小时
- 超时设置:可自定义超时时间,范围1-60秒
- 重试机制:探测失败时自动重试2次,减少误报
支持的探测协议:
| 协议 | 探测内容 | 适用场景 |
|---|---|---|
| HTTP/HTTPS | 状态码、响应时间、内容匹配、SSL证书有效期 | 网站、Web应用、API接口 |
| ICMP(Ping) | 丢包率、延迟 | 服务器网络连通性 |
| TCP | 端口连通性、响应时间 | 数据库、缓存、中间件 |
| UDP | 端口连通性、响应时间 | DNS、流媒体服务 |
| DNS | 域名解析时间、解析结果 | DNS服务器 |
| FTP | 登录、上传、下载时间 | FTP服务器 |
3.1.5 日志采集
工作原理:对接阿里云日志服务SLS,将日志数据通过正则表达式或SQL查询转化为指标数据进行监控。
技术细节:
- 实时性:日志数据采集延迟<1分钟
- 灵活性:支持自定义正则表达式和SQL查询,提取任何日志内容
- 告警支持:支持基于日志指标设置报警规则
- 存储:日志数据可长期保存,满足审计要求
典型应用:
- 应用日志监控:监控应用的错误日志数量
- 业务日志监控:从订单日志中提取订单量、支付成功率等指标
- 安全日志监控:监控异常登录、攻击行为等
3.2 监控中心层
监控中心层是整个监控体系的大脑,负责数据的加工、存储、计算与可视化。其设计目标是高吞吐、高可靠、高可扩展,能够处理每秒数百万条监控数据。
🖥️ 监控中心层详细架构
3.2.1 数据接收与清洗
数据接收模块:
- 采用分布式架构,支持水平扩展
- 每秒可处理数百万条数据
- 支持多种数据格式:JSON、Protocol Buffers等
- 提供负载均衡和故障转移能力,确保高可用
数据清洗模块:
- 格式校验:检查数据格式是否正确,丢弃无效数据
- 去重:去除重复上报的数据
- 过滤:过滤掉不符合规则的数据
- 转换:将数据转换为统一的格式
3.2.2 数据存储
阿里云云监控采用分布式时序数据库存储监控数据,专门针对时间序列数据进行了优化。
时序数据库特点:
- 高写入性能:支持每秒千万级写入
- 高查询性能:支持毫秒级查询
- 压缩比高:数据压缩比可达10:1以上
- 自动过期:数据自动过期,无需手动清理
数据保留策略:
- 1分钟粒度数据:保存30天
- 5分钟粒度数据:保存90天
- 1小时粒度数据:保存180天
- 1天粒度数据:保存365天
3.2.3 数据计算
数据计算引擎支持两种计算模式:
- 实时计算:对流入的数据进行实时计算,用于实时监控和告警
- 离线计算:对历史数据进行批量计算,用于报表和趋势分析
支持的聚合函数:
- 统计函数:最大值、最小值、平均值、求和、计数
- 时间聚合:按分钟、小时、天、周、月聚合
- 空间聚合:按实例、应用、地域、账号聚合
- 滑动窗口:支持滑动窗口和滚动窗口计算
3.2.4 可视化与报表
可视化模块:
- 提供交互式Dashboard,支持拖拽式布局
- 支持多种图表类型:折线图、柱状图、饼图、数字图、拓扑图、热力图
- 支持自定义图表样式:颜色、大小、坐标轴等
- 支持全屏展示,适合运维监控大屏
报表模块:
- 自动生成日/周/月/年资源使用与性能报表
- 支持自定义报表模板
- 支持报表导出为PDF、Excel格式
- 支持邮件订阅,定期自动发送报表
3.2.5 智能分析
智能分析模块基于机器学习算法,提供以下能力:
- 异常检测:自动识别指标的异常波动,无需手动设置阈值
- 趋势预测:基于历史数据预测未来的指标趋势
- 根因分析:当发生故障时,自动分析可能的根因
- 容量规划:基于历史数据和趋势预测,提供容量规划建议
智能阈值算法原理:
3.3 告警中心层
告警中心层是整个监控体系的响应出口,负责规则判断、通知分发与事件联动。其设计目标是及时、准确、高效,确保告警能够快速触达相关人员,并触发相应的处理动作。
🖥️ 告警中心层详细架构
3.3.1 规则引擎
规则引擎是告警中心的核心,负责判断监控数据是否满足报警条件。
支持的告警规则类型:
- 阈值告警:当指标值达到或超过设定的阈值时触发告警
- 事件告警:当发生特定事件时触发告警,如ECS实例重启、磁盘卸载
- 日志告警:当日志中出现特定内容时触发告警
- 智能告警:基于机器学习算法自动检测异常并触发告警
规则匹配流程:
3.3.2 告警降噪
告警降噪是告警中心的重要功能,用于减少误报和避免告警风暴。
主要降噪技术:
- 告警合并:将同一资源的多个同类告警合并为一个
- 告警抑制:当高级别告警发生时,抑制低级别告警
- 告警静默:在计划内维护期间暂时关闭告警
- 告警延迟:延迟发送告警,等待数据稳定,减少误报
3.3.3 通知分发
通知分发模块负责将告警信息通过多种渠道发送给相关人员。
支持的通知渠道:
| 渠道 | 特点 | 适用场景 |
|---|---|---|
| 短信 | 到达率高,速度快 | 紧急告警 |
| 电话 | 强提醒,不易忽略 | 最高级别紧急告警 |
| 邮件 | 内容详细,可保存 | 普通告警、报表通知 |
| 钉钉 | 实时性好,支持群聊 | 日常运维告警 |
| 企业微信 | 与企业办公集成 | 企业内部告警 |
| Webhook | 可自定义处理 | 对接第三方系统 |
通知策略:
- 联系组管理:按职责划分联系人组,如运维组、开发组、测试组
- 告警升级:如果告警在指定时间内未处理,自动升级通知更高权限人员
- 通知频率限制:限制同一告警的通知频率,避免骚扰
3.3.4 联动触发
联动触发模块支持将告警与其他云服务联动,实现自动化故障处理。
典型联动场景:
- 当ECS CPU使用率过高时,自动触发弹性伸缩服务扩容
- 当磁盘使用率过高时,自动触发函数计算清理日志
- 当SLB后端服务器不健康时,自动将其从负载均衡中移除
- 当数据库连接数过高时,自动调整数据库参数
联动配置示例:
- 创建报警规则,监控ECS CPU使用率
- 在"触发动作"中选择"弹性伸缩"
- 选择要触发的伸缩组和伸缩规则
- 保存配置
3.3.5 告警历史管理
告警历史管理模块负责存储和管理所有告警记录。
核心功能:
- 全量保存所有告警记录,支持按时间、级别、资源、规则检索
- 提供告警统计分析功能,如告警数量趋势、TOP告警资源、告警级别分布
- 支持告警导出为CSV格式,满足审计要求
- 提供告警详情页面,展示告警的完整信息和处理记录
四、云监控六大核心功能模块 核心能力
4.1 云产品监控
云产品监控是云监控最基础也是最常用的功能,提供对阿里云所有云产品的开箱即用监控能力。
4.1.1 覆盖范围与核心指标
| 产品类别 | 代表产品 | 核心监控指标 |
|---|---|---|
| 计算类 | ECS云服务器 | CPU使用率、内存使用率、系统负载(1/5/15分钟)、磁盘使用率、网络带宽、TCP连接数 |
| ESS弹性伸缩 | 实例总数、运行中实例数、伸缩活动次数、伸缩成功率 | |
| ACK容器服务 | 节点数、Pod数、容器数、CPU使用率、内存使用率、网络流量 | |
| 网络类 | SLB负载均衡 | 流入/流出带宽、新建连接数、活跃连接数、QPS、响应时间、健康检查状态 |
| EIP弹性公网IP | 流入/流出带宽、流入/流出包量、丢包率 | |
| CDN内容分发网络 | 带宽、流量、请求数、命中率、响应时间、错误率 | |
| 数据库类 | PolarDB云原生数据库 | CPU使用率、内存使用率、连接数、QPS、TPS、慢查询数、锁等待时间 |
| RDS关系型数据库 | CPU使用率、内存使用率、磁盘使用率、连接数、QPS、TPS | |
| Redis云数据库 | CPU使用率、内存使用率、连接数、QPS、命中率、过期键数 | |
| 存储类 | OSS对象存储 | 存储空间、请求数、流量、下载带宽、上传带宽 |
| NAS文件存储 | 存储空间、IOPS、吞吐量、延迟 | |
| 云盘 | 读写IOPS、读写吞吐量、读写延迟、使用率 | |
| 中间件类 | MQ消息队列 | 消息生产数、消息消费数、消息堆积数、消费延迟 |
| API网关 | 请求数、QPS、响应时间、错误率、流量 |
4.1.2 核心能力
- 预置监控图表:每个云产品都预置了常用的监控图表,无需配置即可查看
- 资源配额监控:监控云资源配额使用情况,当配额使用率达到阈值时发送告警
- 跨地域统一视图:一个控制台管理所有地域的云资源,无需切换地域
- 批量操作:支持批量查看、批量导出监控数据
- 操作路径:云监控控制台 → 云资源监控 → 云产品监控
4.1.3 使用技巧
- 使用"收藏"功能,将常用的云产品监控页面添加到收藏夹
- 使用"对比"功能,对比不同实例或不同时间段的监控数据
- 使用"导出"功能,将监控数据导出为CSV格式进行深入分析
- 为重要的云产品设置默认报警模板,一键启用常用指标的报警
4.2 主机监控
主机监控通过在ECS实例上安装云监控插件,实现对操作系统级别的细粒度监控,比云产品监控提供更深入的主机运行状态信息。
4.2.1 核心监控维度与指标详解
| 监控类别 | 具体指标 | 指标含义 | 正常范围 |
|---|---|---|---|
| 基础系统指标 | CPU使用率 | 系统CPU的使用百分比 | <70% |
| 系统负载(1分钟) | 过去1分钟内等待CPU处理的任务数 | <CPU核心数*2 | |
| 系统负载(5分钟) | 过去5分钟内等待CPU处理的任务数 | <CPU核心数*1.5 | |
| 系统负载(15分钟) | 过去15分钟内等待CPU处理的任务数 | <CPU核心数 | |
| 内存使用率 | 系统内存的使用百分比 | <75% | |
| 磁盘使用率 | 磁盘分区的使用百分比 | <80% | |
| 网络指标 | 入方向带宽 | 服务器接收数据的带宽 | 根据业务需求 |
| 出方向带宽 | 服务器发送数据的带宽 | 根据业务需求 | |
| TCP连接数(ESTABLISHED) | 已建立的TCP连接数 | 根据业务需求 | |
| TCP连接数(TIME_WAIT) | 处于TIME_WAIT状态的TCP连接数 | <10000 | |
| 网络丢包率 | 网络数据包的丢失百分比 | <1% | |
| 磁盘指标 | 磁盘读IOPS | 每秒磁盘读操作次数 | 根据磁盘类型 |
| 磁盘写IOPS | 每秒磁盘写操作次数 | 根据磁盘类型 | |
| 磁盘读吞吐量 | 每秒磁盘读数据量 | 根据磁盘类型 | |
| 磁盘写吞吐量 | 每秒磁盘写数据量 | 根据磁盘类型 | |
| 磁盘读延迟 | 磁盘读操作的平均延迟 | <10ms(SSD) | |
| 磁盘写延迟 | 磁盘写操作的平均延迟 | <20ms(SSD) | |
| 进程指标 | 进程CPU使用率 | 指定进程的CPU使用百分比 | 根据进程需求 |
| 进程内存使用率 | 指定进程的内存使用百分比 | 根据进程需求 | |
| 进程线程数 | 指定进程的线程数 | 根据进程需求 | |
| 进程文件句柄数 | 指定进程打开的文件句柄数 | <系统限制 | |
| 系统指标 | 文件句柄总数 | 系统打开的文件句柄总数 | <系统限制 |
| 进程总数 | 系统运行的进程总数 | 根据系统配置 | |
| 系统日志错误数 | 系统日志中的错误条目数 | 0 | |
| GPU指标 | GPU使用率 | GPU的使用百分比 | <80% |
| GPU显存使用率 | GPU显存的使用百分比 | <85% | |
| GPU温度 | GPU的核心温度 | <85℃ | |
| GPU功耗 | GPU的功耗 | <额定功耗 |
4.2.2 插件工作原理详解
云监控插件采用轻量级、模块化设计,主要由以下几个部分组成:
- 采集模块:定期采集操作系统和进程的指标数据,支持多种采集方式
- 缓存模块:在本地缓存采集到的数据,网络异常时防止数据丢失
- 传输模块:将采集到的数据通过HTTPS加密传输到云监控服务
- 管理模块:负责插件的自动升级、配置更新、状态监控和故障恢复
插件运行状态:
- 运行中:插件正常运行,正在采集和上报数据
- 已停止:插件已停止运行,无法采集和上报数据
- 未安装:插件未安装在ECS实例上
- 升级中:插件正在自动升级
4.2.3 常见问题排查
- 插件安装失败:检查ECS实例的网络连接是否正常,是否能够访问阿里云公网
- 插件运行异常:查看插件日志文件,Linux系统日志位于
/usr/local/cloudmonitor/logs/,Windows系统日志位于C:\Program Files\Alibaba\cloudmonitor\logs\ - 无监控数据:检查插件是否正常运行,ECS实例是否能够访问云监控服务的API地址
4.3 站点监控
站点监控从全球多个探测节点模拟用户访问,监测您的网站、API、服务器的可用性和网络质量,帮助您了解不同地域用户的真实访问体验。
4.3.1 核心能力详解
- 可用性探测:检测服务是否正常响应,统计可用性百分比(可用性=正常响应次数/总探测次数×100%)
- 性能探测:统计完整的响应时间分解,包括DNS解析时间、TCP连接时间、SSL握手时间、首包时间、内容下载时间
- 错误率统计:统计不同类型错误的出现频率,如DNS解析错误、TCP连接错误、HTTP 4xx错误、HTTP 5xx错误
- 内容匹配:检查响应内容中是否包含指定的关键字,确保服务返回正确的内容
- 多步骤探测:支持组合多个请求完成复杂业务链路的巡检,如登录→浏览商品→加入购物车→下单
- 地域对比:对比不同地域、不同运营商的访问质量,找出访问慢的地区
4.3.2 探测协议对比
| 协议 | 探测内容 | 配置参数 | 适用场景 |
|---|---|---|---|
| HTTP/HTTPS | 状态码、响应时间、内容匹配、SSL证书有效期 | 请求方法(GET/POST)、请求头、请求体、超时时间、重试次数 | 网站、Web应用、RESTful API |
| ICMP(Ping) | 丢包率、平均延迟、最大延迟、最小延迟 | 包大小、超时时间、重试次数 | 服务器网络连通性、网络质量评估 |
| TCP | 端口连通性、响应时间 | 端口号、超时时间、重试次数 | 数据库、缓存、消息队列、中间件 |
| UDP | 端口连通性、响应时间 | 端口号、请求内容、响应内容匹配、超时时间 | DNS服务器、流媒体服务、游戏服务器 |
| DNS | 域名解析时间、解析结果 | 域名、DNS服务器、记录类型、超时时间 | DNS服务器可用性、域名解析正确性 |
| FTP | 登录时间、上传时间、下载时间 | 服务器地址、端口、用户名、密码、文件路径、超时时间 | FTP服务器可用性、文件传输性能 |
4.3.3 典型配置示例
HTTP网站监控配置:
- 监控地址:https://www.example.com
- 探测频率:1分钟
- 超时时间:10秒
- 重试次数:2次
- 报警规则:可用性<99%持续5分钟,或响应时间>3秒持续3分钟
- 通知方式:钉钉+邮件
API接口监控配置:
- 监控地址:https://api.example.com/v1/users
- 请求方法:GET
- 请求头:Authorization: Bearer token
- 内容匹配:包含"success":true
- 探测频率:5分钟
- 报警规则:返回状态码≠200,或响应时间>1秒持续3次
4.4 自定义监控
自定义监控是云监控提供的扩展能力,用于解决预置指标无法覆盖的业务和应用个性化监控需求。
4.4.1 适用场景详解
- 业务指标监控:订单量、支付成功率、注册用户数、在线人数、转化率、复购率
- 应用指标监控:接口QPS、错误率、平均响应时间、P95/P99响应时间、队列堆积长度、线程池状态
- 自定义设备监控:IoT设备、工业传感器、特殊硬件、第三方系统的运行状态
- 自定义业务流程监控:订单处理流程、物流跟踪流程、审批流程的各环节耗时和成功率
4.4.2 完整工作流程
4.4.3 指标命名规范
- 指标名称:使用小写字母、数字和下划线,不超过64个字符
- 指标维度:用于区分不同的监控对象,如地域、应用、服务、接口等,最多支持10个维度
- 指标单位:支持多种单位,如个、次、秒、毫秒、百分比、字节等
示例:
- 指标名称:
order_count - 维度:
region=cn-hangzhou, app=shop, service=order - 单位:个
4.4.4 上报方式对比
| 上报方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| SDK上报 | 集成简单,功能丰富,支持批量上报 | 需要修改代码 | 应用程序内部指标上报 |
| API上报 | 灵活,支持任何语言和平台 | 需要处理HTTP请求 | 第三方系统、脚本上报 |
| 命令行上报 | 无需修改代码,简单易用 | 功能有限 | 简单脚本、定时任务上报 |
| 日志上报 | 无需修改代码,利用现有日志 | 需要配置日志服务 | 应用日志、业务日志指标提取 |
4.5 报警服务
报警服务是云监控的核心功能之一,实现了故障的快速发现和通知,是保障业务连续性的关键。(本部分内容已在3.3节详细介绍)
4.6 数据可视化与应用分组
4.6.1 Dashboard大盘详解
Dashboard是云监控提供的交互式数据展示面板,支持用户自定义展示各种监控指标和数据,是运维人员日常监控的主要工具。
核心功能:
- 拖拽式布局:通过拖拽方式调整图表的位置和大小,灵活布局
- 多图表类型:支持折线图、柱状图、饼图、数字图、拓扑图、热力图、仪表盘等多种图表类型
- 跨产品展示:在一个大盘中展示多个云产品的指标,如ECS、SLB、PolarDB的指标
- 时间范围选择:支持快速选择常用时间范围(1小时、6小时、1天、7天、30天),也支持自定义时间范围
- 自动刷新:支持1分钟、5分钟、15分钟、30分钟、1小时的自动刷新间隔
- 全屏模式:支持全屏展示,适合运维监控大屏
- 分享与权限控制:支持将Dashboard分享给其他用户,并设置查看或编辑权限
- 模板市场:提供多种预置模板,如电商大促监控模板、微服务监控模板、数据库监控模板
创建Dashboard步骤:
- 云监控控制台 → Dashboard → 创建大盘
- 输入大盘名称和描述
- 点击"添加图表",选择要展示的指标
- 调整图表的位置和大小
- 配置图表的样式和参数
- 保存大盘
4.6.2 应用分组详解
应用分组是云监控提供的资源管理功能,帮助用户按照业务维度对云资源进行分组管理,提高运维效率。
核心功能:
- 灵活分组:支持按业务线、环境、地域、团队等多种方式分组
- 跨地域管理:支持将不同地域的资源加入同一个分组
- 批量操作:对组内所有资源批量设置报警规则、批量查看监控状态
- 分组视图:提供分组级别的监控大盘和报警视图,一目了然地查看整个业务的运行状态
- 资源自动发现:支持通过标签自动发现资源并加入分组,无需手动添加
典型分组方式:
- 按业务线分组:电商业务、支付业务、用户中心、后台管理系统
- 按环境分组:生产环境、测试环境、预发布环境、开发环境
- 按地域分组:华东1、华东2、华北1、华南1
- 按团队分组:前端团队、后端团队、运维团队、数据库团队
创建应用分组步骤:
- 云监控控制台 → 应用分组 → 创建分组
- 输入分组名称和描述
- 选择要加入分组的资源
- 配置报警联系人组
- 保存分组
五、典型业务场景与最佳实践 重难点
5.1 电商大促监控场景
5.1.1 场景背景
电商大促(如双11、618)是电商企业一年中最重要的业务时刻,具有以下特点:
- 流量突增:峰值流量是平时的10-100倍,持续时间短
- 业务复杂:涉及商品、订单、支付、物流、库存等多个系统
- 影响重大:任何系统故障都可能导致巨大的经济损失和品牌声誉损失
- 压力集中:数据库、缓存、消息队列等中间件面临巨大压力
传统的监控方式无法应对大促期间的复杂情况,需要建立一套全面、实时、高效的监控体系。
5.1.2 解决方案
1. 建立三层监控指标体系
| 层级 | 核心指标 | 监控目的 |
|---|---|---|
| 业务层 | 订单量、支付成功率、支付金额、用户在线数、转化率 | 监控业务整体运行状态,及时发现业务异常 |
| 应用层 | 接口QPS、错误率、平均响应时间、P95/P99响应时间、线程池状态、队列堆积长度 | 监控应用程序的性能和稳定性 |
| 基础设施层 | ECS CPU/内存/磁盘使用率、SLB带宽/连接数、PolarDB CPU/连接数/QPS、Redis命中率/连接数 | 监控基础设施的资源使用情况 |
2. 构建大促专属监控大盘
- 创建"大促总览"大盘,展示所有核心业务指标
- 创建"应用监控"大盘,展示每个应用的性能指标
- 创建"基础设施监控"大盘,展示所有基础设施的资源使用情况
- 创建"数据库监控"大盘,展示所有数据库的性能指标
- 所有大盘设置为1分钟自动刷新,确保实时性
3. 设置多级报警阈值 为每个核心指标设置三级报警阈值,确保不同严重程度的问题能够得到及时处理:
| 告警级别 | 阈值 | 通知方式 | 响应时间 | 处理人员 |
|---|---|---|---|---|
| 紧急 | 指标达到严重影响业务的程度(如支付成功率<90%) | 电话+钉钉群@所有人 | 5分钟内响应 | 运维负责人+开发负责人 |
| 警告 | 指标达到需要关注的程度(如CPU使用率>80%) | 钉钉群@相关人员 | 30分钟内响应 | 运维工程师+开发工程师 |
| 普通 | 指标达到需要留意的程度(如磁盘使用率>70%) | 邮件 | 24小时内响应 | 运维工程师 |
4. 配置自动化联动 将常见的告警与自动化操作联动,实现故障自动恢复:
- 当ECS CPU使用率>80%持续3分钟时,自动触发弹性伸缩服务扩容2台实例
- 当SLB连接数>10000持续5分钟时,自动触发弹性伸缩服务扩容
- 当Redis命中率<90%持续3分钟时,自动触发缓存预热脚本
- 当磁盘使用率>85%持续5分钟时,自动触发日志清理脚本
5. 建立应急响应机制
- 成立大促应急指挥小组,明确各人员职责
- 制定详细的应急预案,包括故障排查流程、处理步骤、回滚方案
- 提前进行压力测试和故障演练,验证监控体系和应急预案的有效性
- 大促期间安排7×24小时值班,确保随时能够处理故障
5.2 全球服务质量监控场景
5.2.1 场景背景
随着企业出海业务的发展,越来越多的企业将服务部署在全球多个地域,服务全球用户。但由于不同地域的网络环境差异较大,用户的访问体验参差不齐,主要面临以下问题:
- 部分地域用户访问速度慢,体验差
- 部分地域服务可用性低,经常出现无法访问的情况
- 无法准确了解不同地域用户的真实访问体验
- 出现问题时无法快速定位是网络问题还是服务问题
5.2.2 解决方案
1. 部署全球站点监控
- 为每个地域的服务创建独立的站点监控任务
- 选择覆盖目标用户群体的探测节点,如面向欧洲用户选择欧洲的探测节点
- 配置合适的探测频率,核心服务设置为1分钟,非核心服务设置为5分钟
- 启用多协议探测,如HTTP探测网站可用性,ICMP探测网络连通性
2. 建立全球服务质量看板
- 创建"全球服务质量"Dashboard,展示所有地域的服务可用性和响应时间
- 使用地图图表直观展示不同地域的访问质量
- 按地域和运营商对数据进行分组,找出访问慢的地区和运营商
- 定期生成全球服务质量报告,分析趋势和问题
3. 设置地域级报警规则
- 为每个地域的服务设置独立的报警规则
- 当某个地域的可用性<99%持续5分钟时,发送告警
- 当某个地域的平均响应时间>3秒持续3分钟时,发送告警
- 告警通知中包含地域、运营商、具体的探测结果等信息,便于快速定位问题
4. 优化全球网络架构
- 根据监控数据,优化CDN节点分布,在访问慢的地区增加CDN节点
- 优化DNS解析策略,使用智能DNS将用户解析到最近的服务节点
- 对于跨地域访问的服务,使用高速通道或全球加速服务优化网络连接
- 定期评估不同云厂商的服务质量,选择最合适的云厂商部署服务
5.3 资源成本优化场景
5.3.1 场景背景
随着企业云资源使用量的增加,云资源成本成为企业IT支出的重要组成部分。但很多企业存在资源利用率低、成本浪费严重的问题,主要表现为:
- 大量ECS实例长期低负载运行,CPU使用率<20%
- 为应对高峰提前部署大量冗余资源,平时闲置
- 资源配置过高,远超实际需求
- 存在大量僵尸资源,如未使用的ECS实例、EIP、云盘等
据统计,企业云资源的平均利用率仅为20%-30%,通过合理的资源优化,可以降低30%-50%的云资源成本。
5.3.2 解决方案
1. 全面盘点云资源
- 使用云监控的资源监控功能,全面盘点企业所有的云资源
- 统计每个资源的CPU、内存、磁盘使用率等指标,分析过去30天的使用情况
- 识别出闲置资源、低负载资源、高负载资源
- 建立资源台账,记录每个资源的用途、负责人、使用情况
2. 分类处理资源 根据资源的使用情况,对资源进行分类处理:
| 资源类型 | 定义 | 处理方式 |
|---|---|---|
| 闲置资源 | 过去7天CPU使用率<5%,且没有网络流量 | 确认是否需要,不需要则释放 |
| 低负载资源 | 过去30天平均CPU使用率<20% | 降配到合适的规格,或合并到其他实例 |
| 正常负载资源 | 过去30天平均CPU使用率20%-70% | 保持现状,继续监控 |
| 高负载资源 | 过去30天平均CPU使用率>70% | 升配或扩容,确保业务稳定 |
3. 实施弹性伸缩
- 对于有周期性波动的业务,使用弹性伸缩服务自动调整资源规模
- 白天业务高峰时自动扩容,晚上业务低谷时自动缩容
- 周末和节假日根据业务需求调整伸缩策略
- 结合云监控的指标数据,实现精准的弹性伸缩
4. 优化资源配置
- 根据业务需求选择合适的实例规格,避免过度配置
- 使用抢占式实例运行非核心业务,降低计算成本
- 使用预留实例和节省计划,降低长期使用的资源成本
- 优化存储配置,将不常用的数据归档到低成本存储
5. 建立成本监控体系
- 创建"云资源成本"Dashboard,展示云资源的使用成本和趋势
- 按业务线、部门、项目对成本进行分摊
- 设置成本预算和报警,当成本超过预算时发送告警
- 定期进行成本分析,找出成本优化的空间
5.4 最佳实践
5.4.1 监控指标体系设计原则
- 全面性:覆盖基础设施、应用、业务三个层次
- 相关性:指标与业务目标相关,能够反映业务的健康状态
- 可操作性:指标能够指导运维人员采取行动
- 简洁性:避免指标过多,导致信息过载
- 实时性:核心指标的采集频率不低于1分钟
5.4.2 推荐阈值标准(生产环境通用)
| 指标 | 警告阈值 | 紧急阈值 | 处理建议 |
|---|---|---|---|
| ECS CPU使用率 | 70%-80% | ≥90% | 扩容、限流、优化程序 |
| ECS内存使用率 | 75% | ≥85% | 清理缓存、扩容、调整JVM参数 |
| 磁盘使用率 | 80% | ≥90% | 清理日志、扩容磁盘、归档数据 |
| 接口平均响应时间 | 500ms | ≥1s | 优化SQL、增加缓存、扩容 |
| 数据库连接数使用率 | 70% | ≥85% | 调整连接池大小、扩容数据库 |
| Redis命中率 | <95% | <90% | 优化缓存策略、增加缓存容量 |
| SLB QPS | 达到规格的70% | 达到规格的85% | 升级SLB规格、增加SLB实例 |
5.4.3 告警管理最佳实践
- 分级告警:不同级别的告警使用不同的通知方式,紧急告警使用电话,警告使用钉钉,普通使用邮件
- 告警降噪:合理设置统计周期和连续次数,避免误报;合并同类告警,避免告警风暴
- 定期复盘:每周回顾告警历史,分析告警原因,优化报警规则
- 自动化响应:将常见的告警与自动化操作联动,实现故障自动恢复
- 告警闭环:建立告警处理流程,确保每个告警都得到处理和闭环
5.5 常见误区
- 只监控基础设施,不监控应用和业务指标
- 只设置一个阈值,没有分级机制
- 告警通知发送给所有人,导致信息过载
- 只创建报警规则,不维护和优化
- 过度依赖监控,忽视了架构设计的重要性
- 监控数据保留时间过短,无法进行长期趋势分析
六、实操环节概述 实操
本部分内容将在后续的实践课程中详细讲解,主要包括以下核心操作:
- ECS主机监控插件的安装与验证
- 云产品监控图表的查看与分析
- 站点监控任务的创建与配置
- 自定义监控指标的上报与展示
- 报警规则的创建与管理
- 自定义Dashboard的创建与分享
💡 【本节总结】
- 云应用架构调优是一个由云监控、弹性伸缩、负载均衡、分布式数据库四大核心服务协同完成的闭环体系
- 云监控是整个调优体系的感知中枢,为所有调优动作提供决策依据
- 云监控采用三层架构设计,由数据采集层、监控中心层、告警中心层组成,每层都有明确的职责和技术实现
- 云监控提供六大核心功能,覆盖从基础设施到业务指标的全场景监控需求
- 建立完善的监控指标体系和告警管理机制,是保障云应用高可用、高性能、低成本运行的基础
- 云监控在电商大促、全球服务质量监控、资源成本优化等典型业务场景中发挥着重要作用
📖 拓展阅读(点击展开)
- 阿里云云监控官方文档:https://help.aliyun.com/document_detail/28572.html
- 云监控与Prometheus的对比与集成
- 自定义监控高并发上报优化方案
- 智能告警算法原理与使用场景
- 云监控账单与资源包选购指南
- 云监控与阿里云其他服务的联动配置 :::