Skip to content

🚀 云应用架构调优 总览与云监控服务

官网教程链接:

  1. 云监控官网教程

一、云应用架构调优整体认知

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 云监控服务 学习目标】

  1. 理解阿里云云监控的产品定位、核心价值与三层技术架构
  2. 掌握云产品监控、主机监控、站点监控、自定义监控、报警服务、数据可视化六大核心能力
  3. 了解云监控与其他云服务的协同逻辑与典型业务场景
  4. 建立监控指标体系、阈值分级、告警降噪的最佳实践思维

二、云监控服务基础认知 理论基础

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上报示例

python
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后端服务器不健康时,自动将其从负载均衡中移除
  • 当数据库连接数过高时,自动调整数据库参数

联动配置示例

  1. 创建报警规则,监控ECS CPU使用率
  2. 在"触发动作"中选择"弹性伸缩"
  3. 选择要触发的伸缩组和伸缩规则
  4. 保存配置

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步骤

  1. 云监控控制台Dashboard创建大盘
  2. 输入大盘名称和描述
  3. 点击"添加图表",选择要展示的指标
  4. 调整图表的位置和大小
  5. 配置图表的样式和参数
  6. 保存大盘

4.6.2 应用分组详解

应用分组是云监控提供的资源管理功能,帮助用户按照业务维度对云资源进行分组管理,提高运维效率。

核心功能

  • 灵活分组:支持按业务线、环境、地域、团队等多种方式分组
  • 跨地域管理:支持将不同地域的资源加入同一个分组
  • 批量操作:对组内所有资源批量设置报警规则、批量查看监控状态
  • 分组视图:提供分组级别的监控大盘和报警视图,一目了然地查看整个业务的运行状态
  • 资源自动发现:支持通过标签自动发现资源并加入分组,无需手动添加

典型分组方式

  • 按业务线分组:电商业务、支付业务、用户中心、后台管理系统
  • 按环境分组:生产环境、测试环境、预发布环境、开发环境
  • 按地域分组:华东1、华东2、华北1、华南1
  • 按团队分组:前端团队、后端团队、运维团队、数据库团队

创建应用分组步骤

  1. 云监控控制台应用分组创建分组
  2. 输入分组名称和描述
  3. 选择要加入分组的资源
  4. 配置报警联系人组
  5. 保存分组

五、典型业务场景与最佳实践 重难点

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 常见误区

  • 只监控基础设施,不监控应用和业务指标
  • 只设置一个阈值,没有分级机制
  • 告警通知发送给所有人,导致信息过载
  • 只创建报警规则,不维护和优化
  • 过度依赖监控,忽视了架构设计的重要性
  • 监控数据保留时间过短,无法进行长期趋势分析

六、实操环节概述 实操

本部分内容将在后续的实践课程中详细讲解,主要包括以下核心操作:

  1. ECS主机监控插件的安装与验证
  2. 云产品监控图表的查看与分析
  3. 站点监控任务的创建与配置
  4. 自定义监控指标的上报与展示
  5. 报警规则的创建与管理
  6. 自定义Dashboard的创建与分享

💡 【本节总结】

  1. 云应用架构调优是一个由云监控、弹性伸缩、负载均衡、分布式数据库四大核心服务协同完成的闭环体系
  2. 云监控是整个调优体系的感知中枢,为所有调优动作提供决策依据
  3. 云监控采用三层架构设计,由数据采集层、监控中心层、告警中心层组成,每层都有明确的职责和技术实现
  4. 云监控提供六大核心功能,覆盖从基础设施到业务指标的全场景监控需求
  5. 建立完善的监控指标体系和告警管理机制,是保障云应用高可用、高性能、低成本运行的基础
  6. 云监控在电商大促、全球服务质量监控、资源成本优化等典型业务场景中发挥着重要作用
📖 拓展阅读(点击展开)
  1. 阿里云云监控官方文档:https://help.aliyun.com/document_detail/28572.html
  2. 云监控与Prometheus的对比与集成
  3. 自定义监控高并发上报优化方案
  4. 智能告警算法原理与使用场景
  5. 云监控账单与资源包选购指南
  6. 云监控与阿里云其他服务的联动配置 :::