云厂商监控(阿里云 / 腾讯云 / 华为云) —— 云产品指标、告警与事件的一站式托管监控横向对比
云厂商监控(阿里云 / 腾讯云 / 华为云) —— 云产品指标、告警与事件的一站式托管监控横向对比
分类:07 商业与云监控 适用:主要业务跑在单一或多家公有云上,需要对 ECS/CVM/ECS、RDS、SLB/CLB/ELB、OSS/COS/OBS 等云产品做基础监控与告警的运维团队 一句话:阿里云云监控 CMS / 腾讯云可观测平台(云监控)/ 华为云 CES 三家托管监控的横向对比与统一用法 官方:阿里云 https://help.aliyun.com/zh/cms/ · 腾讯云 https://cloud.tencent.com/document/product/248 · 华为云 https://support.huaweicloud.com/ces/(控制台与文档入口以各云官方为准) 授权:商业云托管服务;基础云产品监控通常免费,API 调用超额、自定义指标、短信/电话通知、日志与数据转储等按量计费,计费与免费额度以各云官方计费文档为准
1. 它解决什么问题
自建 Prometheus 能监控应用与主机,但云产品内部指标(RDS 连接数、SLB 后端健康、对象存储流量)由云平台采集,自建栈拿不到;同时云主机的创建销毁、弹性伸缩、账单与资源变更也需要与云平台联动。云厂商监控解决的是:
- 免部署采集:开通即用,云产品自动上报指标到平台侧时序库,无需在实例内装 Agent(操作系统级细粒度指标仍需安装各云监控 Agent / 插件)。
- 告警与云资源联动:告警策略可直接绑定实例、实例组、标签,配合弹性伸缩、事件告警与回调(云函数 / Webhook)。
- 事件监控:实例重启、宕机迁移、欠费、运维事件等平台侧事件统一告警。
- 局限:跨云聚合能力弱、指标粒度与保留期受平台约束、自定义能力弱于自建 Prometheus;深度 APM / 日志关联通常需要各云的可观测 / 日志服务或第三方。
2. 核心概念与架构
2.1 术语表(三家对照)
| 概念 | 阿里云云监控 CMS | 腾讯云可观测平台 / 云监控 | 华为云 CES |
|---|---|---|---|
| 服务名 | 云监控 CloudMonitor(含云监控 2.0) | 可观测平台 TCOP / 云监控 CM | 云监控服务 CES(Cloud Eye) |
| 命名空间 | acs_ecs_dashboard、acs_ots_new 等 |
QCE/CVM、QCE/REDIS_MEM 等 |
服务维度(如 SYS.ECS),以官方文档为准 |
| 指标 | MetricName(如 cpu_idle、CPUUtilization) |
MetricName(如 CPUUsage、CpuUtil) |
指标(如 cpu_util) |
| 维度 | Dimensions(如 instanceId) |
Instances.N.Dimensions(如 instanceid) |
dimensions(如 instance_id) |
| 统计粒度 | Period(秒,60/300/3600) | Period(5/60/300/3600/86400) | period(以官方文档为准) |
| 告警规则 | 报警规则;云监控 2.0 用 alert rule | 告警策略(含触发条件模板) | 告警规则(含告警模板) |
| 通知对象 | 报警联系人 / 联系人组 / 报警回调 | 通知模板(每策略最多 3 个) | 消息通知主题 SMN / 告警通知 |
| 事件 | 系统事件监控 | 事件告警 | 事件监控(CreateEvents / ListEvents) |
| 自定义上报 | 自定义指标 / Prometheus 实例 | 自定义监控上报 | 自定义指标 / 自定义事件上报 |
| 权限体系 | RAM(子账号、AccessKey) | CAM(子用户、访问密钥) | IAM(用户 / 用户组、AK/SK) |
2.2 组件与数据流
云产品内部 云平台采集 云监控服务 告警/消费
┌──────────────┐ 自动上报 ┌────────────────────┐ ┌──────────────────────────┐ ┌────────────────────┐
│ECS/CVM/ECS │──────────▶│ 平台侧指标管道 │─▶│ 指标时序库(按 Namespace │─▶│ 控制台图表 / Dashboard│
│RDS / 数据库 │ (免Agent) │ + 可选监控Agent/插件│ │ + Metric + Dimension) │ │ 查询 API / CLI │
│SLB/CLB/ELB │ │ (OS级细粒度指标) │ └───────────┬──────────────┘ └────────────────────┘
│OSS/COS/OBS │ └────────────────────┘ │
│系统事件/账单 │──事件/自定义上报──────────────────────────────▶│
└──────────────┘ ▼
┌──────────────────────────────────────┐
│ 告警规则/策略:指标+比较+阈值+统计粒度│
│ +持续周期 → 通知模板/联系人组 │
└──────────────┬───────────────────────┘
▼
邮件 / 短信 / 电话 / 企业微信 / 钉钉 / Slack(经 Webhook)
回调:云函数 FC / SCF / FunctionGraph · HTTP Webhook · 弹性伸缩
云产品监控数据 → 云监控服务 → 告警规则 → 通知/回调 链路:① 云产品由平台侧自动采集(或实例内安装云监控 Agent 补充 OS 级指标)→ ② 按 Namespace + MetricName + Dimensions + Period 汇入云监控时序库,控制台与 DescribeMetricList / GetMonitorData / CES 指标 API 可查询 → ③ 用户创建告警规则/策略,选监控类型、告警对象(实例/实例组/标签/全部对象)、触发条件(指标 + 比较关系 + 阈值 + 统计粒度 + 持续 N 个周期)与通知模板 → ④ 规则周期性求值,触发后发邮件/短信/企微/钉钉,并可回调云函数、HTTP Webhook 或触发弹性伸缩。
与自建监控的分工:云监控负责「云平台看得见、应用看不见」的部分(云产品指标、平台事件、账单、资源拓扑);自建 Prometheus 负责应用内指标、业务自定义指标、跨云统一 PromQL 与长期存储。落地常见做法:云监控告警经 Webhook / 云函数汇入统一 On-call 平台,与自建栈告警一起收敛;云产品指标也可通过各云托管的 Prometheus 服务接入自建 Grafana。
⚠️ 三家云的 API 端点、CLI 子命令与参数随版本演进,本文 CLI 中标注「以各云官方文档为准」的部分均为通用形式,实际以各云官方帮助中心为准。
3. 安装与部署
3.1 环境准备
| 项 | 要求 |
|---|---|
| 账号 | 各云主账号或经 RAM / CAM / IAM 授权的子账号;建议专门建「监控只读」与「告警管理」两类子账号 |
| 密钥 | AccessKey ID/Secret(阿里云)、SecretId/SecretKey(腾讯云)、AK/SK(华为云);配到 CLI 环境变量或凭据文件 |
| CLI | 阿里云 CLI aliyun、腾讯云 CLI tccli、华为云 CLI hcloud;安装与 configure 步骤以各云官方文档为准 |
| 权限 | 查询指标需只读权限;创建告警规则需写权限 + 通知联系人组/主题的管理权限 |
| 网络 | 控制台 HTTPS 443;CLI / API 需能访问各云 OpenAPI 网关;内网场景用 VPC endpoint(以各云官方文档为准) |
| 地域 | 指标与告警规则按 Region 隔离;跨地域查询需分别调用,注意「中国香港」等地域表述 |
3.2 控制台开通 + CLI / API 接入
控制台开通(三家通用步骤):① 登录各云控制台 → ② 搜索「云监控 / 可观测平台 / CES」并进入(多数基础监控默认开通,无需付费开通)→ ③ 在「告警联系人 / 通知模板 / 消息通知主题」先创建接收人与接收组 → ④ 到「告警规则 / 告警策略」新建策略 → ⑤ 到「监控大盘 / Dashboard」查看指标。
- 阿里云:云监控控制台 → 报警服务 → 报警联系人/联系人组 → 报警规则;云监控 2.0 另需创建 Prometheus 实例与工作空间(workspace)。
- 腾讯云:可观测平台 → 告警管理 → 告警配置 → 新建策略(六要素:策略名称、监控类型、策略类型、告警对象、触发条件、告警通知;支持触发条件模板、重复通知频率、弹性伸缩)。
- 华为云:云监控服务 CES → 告警 → 创建告警规则 / 告警模板;通知走消息通知服务 SMN 主题。
CLI 初始化(通用形式,以各云官方文档为准)
# 阿里云 CLI
aliyun configure # 交互式配置 AccessKey / Region / 输出格式
# 腾讯云 CLI
tccli configure # 配置 SecretId / SecretKey / Region
# 华为云 CLI
hcloud CES ListAlarms/v1 # 先验证凭据与 CES 服务可用(命令见 §5.3)
API 接入示例(SDK / HTTP,端点以各云官方文档为准)
# 阿里云:DescribeMetricList(Cms 2019-01-01,参数名以官方 API 文档为准)
aliyun cms describe-metric-meta-list --namespace acs_ecs_dashboard --page-size 100 --page-number 1
# 腾讯云:GetMonitorData / DescribeBaseMetrics(参数以腾讯云可观测平台 API 文档为准)
tccli monitor DescribeBaseMetrics --Namespace QCE/CVM # 通用形式,以各云官方文档为准
# 华为云:CES CLI 指标管理(子命令名以华为云 CES CLI 官方文档为准)
hcloud CES ListAlarms/v1 # 已验证的告警规则列表命令
3.3 首次启动与验证
# 阿里云:查询某 ECS 的 CPU 指标(确认数据已在云端)
aliyun cms describe-metric-list --namespace acs_ecs_dashboard --metric-name cpu_idle \
--period 60 --start-time "<START>" --end-time "<END>" \
--dimensions '[{"instanceId":"<INSTANCE_ID>"}]' | jq
# 腾讯云:查询指标(通用形式,以各云官方文档为准)
tccli monitor GetMonitorData --Namespace QCE/CVM --MetricName CPUUsage --Period 300 \
--StartTime "<START>" --EndTime "<END>" | jq
# 华为云:列出告警规则与事件
hcloud CES ListAlarms/v1 ; hcloud CES ListEvents/v1
控制台验证:云监控 → 资源监控 / 主机监控看到实例与曲线;告警策略列表出现新建策略;触发一次压测或手工模拟后收到通知(⚠️ 短信/电话通知可能产生费用)。
4. 配置文件详解
4.1 告警规则 / 策略关键项(三家对照)
| 配置项 | 阿里云 CMS / 2.0 | 腾讯云可观测平台 | 华为云 CES |
|---|---|---|---|
| 规则载体 | 报警规则;2.0 用 alert rule JSON(--body) |
告警策略(控制台 / API) | 告警规则 / 告警模板 |
| 命名空间 | Namespace(如 acs_ecs_dashboard) |
Namespace(如 QCE/CVM) |
服务维度(以官方文档为准) |
| 指标 | MetricName |
MetricName |
指标名 |
| 维度 | Dimensions JSON 字符串 |
Instances.N.Dimensions |
dimensions |
| 统计粒度 | Period(60/300/3600 秒) |
Period(5/60/300/3600/86400 秒) |
period(以官方文档为准) |
| 触发条件 | 阈值 + 比较关系 + 连续次数 | 指标 + 比较关系 + 阈值 + 统计粒度 + 持续 N 个数据点 | 指标 + 比较 + 阈值 + 连续周期 |
| 告警对象 | 应用分组 / 实例 / 全部资源 | 实例 ID / 实例组 / 标签 / 全部对象 | 资源 / 资源分组 |
| 通知 | 报警联系人组;2.0 通知策略 | 通知模板(每策略 ≤3 个) | SMN 主题 / 通知模板 |
| 重复通知 | 静默 / 生效周期 | 不重复 / 5 分钟 / 10 分钟 / 周期指数递增 | 告警频率(以官方文档为准) |
| 回调 | 报警回调 URL / 函数计算 FC | 告警回调 / 云函数 SCF / Webhook | FunctionGraph / HTTP 回调 |
| 无数据 | 支持无数据告警(以官方文档为准) | 支持事件告警与数据不足策略 | 支持(以官方文档为准) |
4.2 完整可运行最小告警规则配置(云监控 2.0 alert rule JSON)
{
"name": "ecs-cpu-high",
"description": "ECS CPU 使用率超过 85% 持续 3 个周期",
"namespace": "acs_ecs_dashboard",
"metricName": "CPUUtilization",
"dimensions": [{"instanceId": "<INSTANCE_ID>"}],
"period": 300,
"condition": {"comparison": ">", "threshold": "85", "evaluationCount": 3},
"labels": {"severity": "critical", "team": "ops"},
"annotations": {"summary": "ECS <INSTANCE_ID> CPU 过高"},
"notifications": [{"type": "contactGroup", "target": "<CONTACT_GROUP>"},
{"type": "webhook", "url": "https://<WEBHOOK_HOST>/alert"}],
"status": "enabled"
}
# 云监控 2.0 CLI 子命令已验证存在;--body 字段结构以阿里云官方文档为准
aliyun cms2 alert rule create --body @alert-rule.json
aliyun cms2 alert rule list --body '{}' # 以各云官方文档为准
⚠️ 上面 JSON 是结构示意,字段名与必填项三家各异且随版本变化;生产请先用控制台创建一条规则,再用
... rule get/... rule list导出真实 JSON 作为模板(以各云官方文档为准)。
4.3 腾讯云告警策略关键配置(控制台字段)
| 字段 | 取值示例 |
|---|---|
| 监控类型 / 策略类型 | 云产品监控 / 云服务器 CVM |
| 告警对象 | 实例 ID、实例分组、标签、全部对象 |
| 触发条件 | CPU 利用率 > 80%,统计粒度 5 分钟,持续 2 个周期 |
| 告警频率 | 不重复 / 5 分钟 / 10 分钟 / 周期指数递增 |
| 告警通知 | 通知模板(≤3 个),含短信、邮件、微信、Webhook 回调 |
| 高级配置 | 弹性伸缩(部分云产品支持) |
5. 核心使用方法
5.1 阿里云 CMS CLI(查询指标 / 告警规则)
aliyun configure # 1 配置凭据
aliyun cms describe-metric-meta-list --namespace acs_ecs_dashboard --page-size 100 --page-number 1 # 2 枚举可用指标
aliyun cms describe-metric-list --namespace acs_ecs_dashboard --metric-name cpu_idle --period 60 \
--start-time "<START>" --end-time "<END>" --dimensions '[{"instanceId":"<INSTANCE_ID>"}]' # 3 查询历史指标
aliyun cms describe-metric-last --namespace acs_ecs_dashboard --metric-name cpu_idle \
--dimensions '[{"instanceId":"<INSTANCE_ID>"}]' # 4 查询最新值
aliyun cms describe-metric-list ... | jq -r '.Datapoints' | jq -c '{max:(map(.Maximum)|max)}' # 5 二次解析并聚合
aliyun cms2 alert rule create --body @alert-rule.json # 6 创建告警规则(2.0)
aliyun cms2 alert rule list --body '{}' # 7 列出规则
aliyun cms2 alert rule get --body '{"id":"<RULE_ID>"}' # 8 查询单条规则
aliyun cms2 alert rule patch --body '{"id":"<RULE_ID>","status":"disabled"}' # 9 增量改规则
aliyun cms2 alert rule enable --body '{"ids":["<RULE_ID>"]}' # 10 批量启用
aliyun cms2 alert rule delete --body '{"id":"<RULE_ID>"}' # 11 ⚠️ 删除规则
aliyun cms2 alert history list --body '{}' # 12 查询告警历史
# 说明:DescribeMetricList 免费额度 100 万次/月(含 Last/List/Data/Top),限流 50 次/秒;以官方 API 文档为准
5.2 腾讯云 CLI(查询指标 / 告警规则,通用形式)
tccli configure # 13 配置凭据
tccli monitor DescribeBaseMetrics --Namespace QCE/CVM # 14 查询可用指标(以腾讯云官方文档为准)
tccli monitor GetMonitorData --Namespace QCE/CVM --MetricName CPUUsage \
--Period 300 --StartTime "<START>" --EndTime "<END>" \
--Instances.N.Dimensions.0.Name instanceid --Instances.N.Dimensions.0.Value "<INSTANCE_ID>" # 15 查询指标(参数以官方文档为准)
tccli monitor DescribeAlarmPolicies # 16 列出告警策略(通用形式)
tccli monitor CreateAlarmPolicy --PolicyName "cvm-cpu-high" --MonitorType "MT_QCE" \
--Namespace QCE/CVM --MetricName CPUUsage --Conditions '<CONDITION_JSON>' \
--NoticeIds '["<NOTICE_ID>"]' # 17 创建告警策略(字段以官方文档为准)
tccli monitor DescribeAlarmHistories --StartTime "<START>" --EndTime "<END>" # 18 查询告警历史(通用形式)
# ⚠️ 以上 tccli 子命令与参数名为通用示意,实际名称、必填项与 JSON 结构以腾讯云可观测平台官方 API/CLI 文档为准
5.3 华为云 CES CLI(查询指标 / 告警规则)
hcloud CES ListAlarms/v1 # 19 列出告警规则(已验证)
hcloud CES ShowAlarm/v1 --alarm_id "<ALARM_ID>" # 20 查询单条告警规则(参数以官方文档为准)
hcloud CES CreateAlarm/v1 --body @ces-alarm.json # 21 创建告警规则(已验证子命令,body 字段以官方文档为准)
hcloud CES UpdateAlarm/v1 --alarm_id "<ALARM_ID>" --body @ces-alarm.json # 22 修改告警规则
hcloud CES UpdateAlarmAction/v1 --alarm_id "<ALARM_ID>" --action_enabled true # 23 启停告警规则
hcloud CES DeleteAlarm/v1 --alarm_id "<ALARM_ID>" # 24 ⚠️ 删除告警规则
hcloud CES ListAlarmHistories/v1 # 25 查询告警历史(已验证)
hcloud CES ListAlarmTemplates/v1 ; hcloud CES CreateAlarmTemplate/v1 --body @tpl.json # 26 告警模板
hcloud CES CreateEvents/v1 --body @event.json ; hcloud CES ListEvents/v1 # 27 上报/查询自定义事件(已验证)
hcloud CES ShowMetricData/v1 --namespace "<NS>" --metric_name "<METRIC>" --dim "<DIM>" --period 300 --from "<START>" --to "<END>" # 28 指标查询(通用形式,以华为云 CES CLI 官方文档为准)
5.4 控制台与 API 等效操作
| 操作 | 控制台入口 | API / CLI 等效 |
|---|---|---|
| 看指标曲线 | 云监控 → 资源监控 / 监控大盘 | DescribeMetricList / GetMonitorData / CES 指标 API |
| 枚举指标 | 指标说明页 | DescribeMetricMetaList / DescribeBaseMetrics / CES 指标列表 |
| 建告警 | 报警规则 / 新建策略 / 创建告警规则 | cms2 alert rule create / CreateAlarmPolicy / CreateAlarm/v1 |
| 看告警 | 报警历史 / 告警历史 | alert history list / DescribeAlarmHistories / ListAlarmHistories/v1 |
| 通知人 | 联系人组 / 通知模板 / SMN 主题 | 各云通知对象管理 API |
| 回调 | 报警回调 / 告警回调 / 函数回调 | HTTP Webhook / 云函数(FC / SCF / FunctionGraph) |
| 自定义数据 | 自定义监控 / 自定义指标 | 各云自定义指标上报 API(以官方文档为准) |
6. 告警与通知
- 触发条件:三家均由「指标 + 比较关系 + 阈值 + 统计粒度 + 持续周期」组成,例如「CPU 利用率 > 80%,5 分钟粒度,连续 2 个周期」;持续周期用于抑制瞬时抖动。
- 通知渠道:邮件、短信、电话(⚠️ 常按条计费)、企业微信 / 钉钉 / Slack(多经 Webhook 或机器人)、各云消息通知服务主题。
- 回调 / 自动化:阿里云报警回调 + 函数计算 FC;腾讯云告警回调 + 云函数 SCF + 弹性伸缩;华为云 SMN + 函数工作流 FunctionGraph + HTTP 回调。统一做法是把回调指向企业内部 On-call / 告警收敛平台。
{
"policyName": "rds-connections-high",
"monitorType": "云产品监控",
"namespace": "QCE/CDB",
"metricName": "ThreadsConnected",
"condition": {"operator": ">", "threshold": 200, "period": 300, "continuePeriod": 2},
"objects": [{"instanceId": "<RDS_INSTANCE_ID>"}],
"notifications": [{"type": "email", "to": "<MAIL_TO>"},
{"type": "dingtalk_webhook", "url": "https://oapi.dingtalk.com/robot/send?access_token=<TOKEN>"},
{"type": "webhook", "url": "https://<WEBHOOK_HOST>/alert"}],
"repeatPolicy": "exponential",
"callback": {"type": "scf", "function": "<FUNCTION_NAME>"}
}
⚠️ 上述为跨云通用示意 JSON,非任一家的真实请求体;请用控制台导出或官方 API 文档取真实字段(以各云官方文档为准)。
静默 / 升级 / 降噪:用「生效时段 / 维护窗口 / 告警屏蔽」做静默;按严重级别建多条规则(warning→critical)配不同通知渠道实现升级;用持续周期、重复通知频率(腾讯云支持「周期指数递增」)、告警合并 / 分组、标签绑定对象自动跟随资源增减来降噪。
7. 实战场景
场景 A:给云上 ECS / CVM / ECS 配 CPU 告警(必做)
目标:为主机实例创建 CPU 高告警,通知到钉钉群与邮件。
# 1) 建通知对象:阿里云联系人组 / 腾讯云通知模板 / 华为云 SMN 主题(控制台先行)
# 2) 确认指标存在(阿里云示例)
aliyun cms describe-metric-meta-list --namespace acs_ecs_dashboard --page-size 100 --page-number 1 | jq
# 3) 创建规则(三家分别用 §5.1 / §5.2 / §5.3 的创建命令,规则内容用 §4.2 的 JSON 结构)
aliyun cms2 alert rule create --body @ecs-cpu-rule.json
# 腾讯云:tccli monitor CreateAlarmPolicy ...(以腾讯云官方文档为准)
# 华为云:hcloud CES CreateAlarm/v1 --body @ecs-cpu-rule.json(字段以华为云官方文档为准)
验证:aliyun cms2 alert rule list --body '{}' / hcloud CES ListAlarms/v1 出现新规则;控制台告警策略列表可见;用 stress --cpu 4 --timeout 600 压测后收到钉钉与邮件。回滚:aliyun cms2 alert rule delete --body '{"id":"<RULE_ID>"}' / hcloud CES DeleteAlarm/v1 --alarm_id "<ALARM_ID>"(⚠️ 先导出规则 JSON 备份)。
场景 B:给云上 RDS 配连接数告警 + 回调自动扩容
目标:RDS 连接数超阈值时告警并触发云函数/弹性伸缩。
# 1) 枚举该云产品命名空间与指标(以各云官方文档为准)
aliyun cms describe-metric-meta-list --namespace <RDS_NAMESPACE> --page-size 100 --page-number 1
# 2) 用 §4.2 / §6 的结构建规则:指标 ThreadsConnected、阈值 200、统计粒度 300s、持续 2 周期
# 3) 在通知里挂 Webhook 指向内部 On-call,并挂云函数回调(FC / SCF / FunctionGraph)
# 4) 验证:查指标曲线与告警历史
aliyun cms2 alert history list --body '{}'
验证:控制台出现告警记录;回调 Webhook 收到 POST 载荷;云函数日志有调用记录。回滚:删除规则并停用回调;⚠️ 如回调会触发扩缩容,务必先在预发验证,避免误扩容产生费用。
场景 C:跨云指标统一查看与告警收敛
目标:把三家云告警统一送到企业 On-call 平台,避免多套通知。
# 1) 各云通知对象里配置同一个 HTTPS 回调(企业内部网关),载荷含 云/地域/实例/指标/严重级别
# 2) 网关侧做去重、分级、静默与升级(示例:用 curl 自测回调可达)
curl -s -X POST https://<WEBHOOK_HOST>/alert -H 'Content-Type: application/json' \
-d '{"cloud":"<CLOUD>","region":"<REGION>","instance":"<INSTANCE_ID>","metric":"CPUUtilization","severity":"critical"}'
# 3) 需要统一查询时,用各云 CLI 分别拉取指标后落到本地 Prometheus / 时序库(以各云官方文档为准)
验证:On-call 平台收到三家告警且分级正确。回滚:把通知模板改回各云自带邮件/短信渠道;⚠️ 回调地址变更需同步更新全部告警规则。
8. 日常运维与故障排查
8.1 服务管理、日志与健康检查
# 云托管无本地服务可管;排查对象是「数据是否上报」「规则是否存在」「通知是否送达」
aliyun cms2 alert rule list --body '{}' ; tccli monitor DescribeAlarmPolicies ; hcloud CES ListAlarms/v1
aliyun cms2 alert history list --body '{}' ; hcloud CES ListAlarmHistories/v1
# 回调侧日志:云函数 FC / SCF / FunctionGraph 的调用日志与 HTTP 网关访问日志
# CLI 自身日志:各云 CLI 的 --debug / 日志路径以各云官方文档为准
健康检查:控制台能查到实例最新数据点、规则状态为「已启用」、通知模板/联系人组有效、回调 URL 可达。
8.2 故障「现象 → 原因 → 处置」表
| 现象 | 原因 | 处置 |
|---|---|---|
| 控制台无指标曲线 | 实例刚创建 / 未安装云监控 Agent(OS 级指标)/ Region 选错 | 等待采集周期、装插件、切到实例所在地域 |
DescribeMetricList 返回空 |
Dimensions 的 key 写错(如 instanceId 大小写) |
用 DescribeMetricMetaList 查真实维度键 |
| CLI 报权限不足 | 子账号未授 CMS / Monitor / CES 只读策略 | 在 RAM / CAM / IAM 补授权(见 §10) |
| 告警不触发 | 统计粒度与指标实际 Period 不匹配 / 持续周期过长 / 规则被停用 | 对齐 Period,缩短持续周期,检查规则启用状态 |
| 告警触发但没通知 | 联系人组为空 / 通知模板未绑定 / 短信额度耗尽 | 检查通知对象绑定与消息通知服务配额 |
| 告警风暴 | 阈值过低、无持续周期、实例批量异常 | 加持续周期、按标签分组、设重复通知频率与静默 |
| 回调 4xx/5xx | URL 变更 / 签名校验失败 / 云函数超时 | 查云函数日志与网关日志,重签与调超时 |
| 历史查不到 | 超出指标保留期(与 Period 相关,见 §11) | 用更大 Period 重查,或提前转储到自建存储 |
9. 性能、容量与高可用
| 维度 | 建议 |
|---|---|
| 数据粒度 | 阿里云 Period<60s 保留 7 天、60s 保留 31 天、≥300s 保留 91 天;腾讯云支持 5/60/300/3600/86400 秒;华为云粒度与保留以官方文档为准 |
| 查询配额 | 阿里云 DescribeMetricList/Last/Data/Top 合计 100 万次/月免费、50 次/秒限流(以官方为准);批量查询用分页与聚合,避免高频轮询 |
| 告警对象规模 | 用实例组 / 标签 / 应用分组绑定,避免逐实例建规则;资源增减自动跟随 |
| 长期存储 | 云监控保留期有限,长期趋势用「数据转储 / 托管 Prometheus / 自建 TSDB」定期拉取归档 |
| 高可用 | 云监控为平台托管,无需自建 HA;但通知链路(短信网关、Webhook、云函数)需自身冗余 |
| 成本 | 基础监控多免费;超额 API 调用、自定义指标、短信/电话、日志服务与转储按量计费,用账单与配额告警控费 |
10. 安全加固、备份与升级
- RAM / CAM / IAM 子账号:按最小权限分离「指标只读」「告警规则管理」「通知对象管理」三类策略;主账号 AccessKey 不用于日常运维,全部走子账号。
- 密钥轮换:使用各云凭据管理 / KMS 托管密钥,定期轮换;禁用长期不用的 AccessKey;审计
ActionTrail/ 云审计 / 云审计 CTS 中的 CLI 调用。 - 回调安全:Webhook 用 HTTPS + 签名/令牌校验,云函数限制来源与并发;⚠️ 回调里的实例与业务信息避免写入公开日志。
- TLS / 网络:CLI / API 强制 HTTPS;内网用 VPC Endpoint(以各云官方文档为准);凭证不写入镜像、脚本或 Git。
- 配置即代码:告警规则 JSON、通知模板、Terraform / ROS / 资源编排模板入库;用各云 CLI 的
list/get定期导出备份(GitOps)。 - 升级顺序:先在测试地域/测试实例建规则 → 验证通知与回调 → 灰度到生产 → 失败用
delete/ 停用回滚;云监控为托管服务,无本地组件升级,但要跟进 API 版本与 CLI 版本变更(以各云官方文档为准)。
11. 常见坑
| # | 现象 | 原因 | 解决 |
|---|---|---|---|
| 1 | 指标保留期不够查历史 | 粒度越小保留越短(阿里云 <60s 仅 7 天、60s 31 天、≥300s 91 天) | 按需要选 Period,长期数据提前转储 |
| 2 | 告警比预期晚几分钟 | 云产品采集与聚合有延迟,且统计粒度 5 分钟时天然滞后 | 按粒度设合理持续周期,别用秒级预期评估分钟级监控 |
| 3 | API 调用超额被限流 | 阿里云 100 万次/月免费、50 次/秒 QPS(以官方为准) | 聚合查询、缓存结果、分页拉取,开通按量计费 |
| 4 | 账单出现意外费用 | ⚠️ 短信/电话通知、自定义指标、API 超额、日志与数据转储按量计费 | 查计费明细,设预算与配额告警,关掉不用的电话通知 |
| 5 | Dimensions 维度键不匹配 |
三家键名与大小写不同(instanceId / instanceid / instance_id) |
用元数据接口查真实维度键 |
| 6 | 跨地域查不到数据 | 指标与规则按 Region 隔离 | 逐地域查询,注意「中国香港」等地域表述 |
| 7 | 子账号建规则报无权限 | 只有读权限或缺少通知对象管理权限 | RAM / CAM / IAM 补写策略与通知服务授权 |
| 8 | 误扩容/误回调产生费用 | ⚠️ 回调直连弹性伸缩或计费资源且未设上限 | 预发验证、加并发与金额上限、先告警后自动动作 |
| 9 | 资源重建后规则失效 | 规则绑定旧实例 ID,新实例未纳入 | 改用实例组 / 标签 / 全部对象绑定 |
| 10 | 通知模板超过上限 | 腾讯云每个告警策略最多绑 3 个通知模板 | 合并通知渠道或用回调统一分发 |
| 11 | 删规则后无法追溯 | ⚠️ 删除不可逆且告警历史随保留期消失 | 删前 get/list 导出 JSON,历史定期归档 |
| 12 | 混淆平台事件与指标告警 | 宕机迁移、欠费等属事件监控,不在指标曲线里 | 单独配事件告警规则 |
12. 速查表
| 项 | 阿里云 CMS | 腾讯云可观测平台 | 华为云 CES |
|---|---|---|---|
| CLI 工具 | aliyun cms / aliyun cms2 |
tccli monitor |
hcloud CES |
| 凭据 | AccessKey ID/Secret(RAM) | SecretId/SecretKey(CAM) | AK/SK(IAM) |
| 命名空间示例 | acs_ecs_dashboard |
QCE/CVM、QCE/REDIS_MEM |
服务维度(以官方文档为准) |
| 查询指标 API | DescribeMetricList / DescribeMetricLast |
GetMonitorData / DescribeBaseMetrics |
CES 指标 API(以官方文档为准) |
| 查询指标 CLI | aliyun cms describe-metric-list |
tccli monitor GetMonitorData(通用形式) |
hcloud CES ShowMetricData/v1(通用形式) |
| 建告警 | aliyun cms2 alert rule create |
CreateAlarmPolicy(通用形式) |
hcloud CES CreateAlarm/v1 |
| 列告警 | aliyun cms2 alert rule list |
DescribeAlarmPolicies(通用形式) |
hcloud CES ListAlarms/v1 |
| 告警历史 | aliyun cms2 alert history list |
DescribeAlarmHistories(通用形式) |
hcloud CES ListAlarmHistories/v1 |
| 事件监控 | 系统事件监控 | 事件告警 | hcloud CES CreateEvents/v1 / ListEvents/v1 |
| 通知对象 | 报警联系人组 / 报警回调 | 通知模板(≤3 个) | SMN 主题 / FunctionGraph |
| 权限体系 | RAM | CAM | IAM |
| 控制台入口 | 控制台 → 云监控 | 控制台 → 可观测平台 | 控制台 → 云监控服务 CES |
| 免费额度 | 指标查询 100 万次/月(以官方为准) | 基础监控免费(以官方为准) | 基础监控免费(以官方为准) |
| 计费项 | API 超额 / 自定义指标 / 短信电话 | 短信电话 / 自定义监控 / 回调 | 短信电话 / 自定义指标 / 转储 |
| 地域 | 按 Region,含中国香港等地域 | 按 Region,含中国香港等地域 | 按 Region,含中国香港等地域 |
13. 选型建议与同类对比
| 维度 | 自建(Prometheus + Grafana) | 商业 SaaS(如 Datadog) | 云厂商监控 |
|---|---|---|---|
| 部署运维 | 自管采集、存储、升级、扩容 | 免运维,装 Agent 即可 | 免管控制面,云产品零采集成本 |
| 云产品指标 | 拿不到平台内部指标,需各云 exporter | 靠云集成同步,可能有延迟 | 原生、最全、最及时 |
| 成本模型 | 算力 + 存储 + 人力 | 按主机/日志/指标/APM 多维计费 | 基础免费,高级与通知按量,通常最低 |
| 数据主权 | 完全自控 | ⚠️ 数据出境到 SaaS,需评估合规 | 数据在云账号同地域,合规最易 |
| 定制能力 | 最高(PromQL + 任意 exporter) | 中(受平台约束) | 中低(受托管与保留期限制) |
| 跨云/长期存储 | 需自建聚合层 | 原生全局视图最强 | 各云割裂,需自行汇总归档 |
| 信创/国产化 | 可控,易适配国产发行版 | 需确认境内节点与合规资质 | 三家均有政务云 / 信创形态 |
选云监控:业务集中在单朵云、需要云产品指标与事件告警、希望零运维且与弹性伸缩/账单联动、合规要求数据留在云账号内。不选:跨多云需要统一视图与长期自定义分析、需要深度 APM/日志关联、指标粒度与保留期不满足(此时用托管 Prometheus 或自建栈补充)。推荐组合:云产品基础告警与事件用云监控,应用指标用自建 Prometheus,二者告警经统一 Webhook 收敛到 On-call;长期趋势用数据转储归档。
14. 参考链接
- 阿里云云监控 2.0 告警规则管理:https://help.aliyun.com/zh/cms/cloudmonitor-2-0/developer-reference/alert-rule-management
- 阿里云 DescribeMetricList API:https://api.alibabacloud.com/document/Cms/2019-01-01/DescribeMetricList
- 腾讯云 API 拉取监控数据:https://www.tencentcloud.com/document/product/248/39917
- 腾讯云配置告警策略:https://intl.cloud.tencent.com/zh/document/product/1245/65410
- 腾讯云查看监控数据(Redis 示例):https://cloud.tencent.com.cn/document/product/400/7080
- 华为云 CES CLI 命令参考:https://support.huaweicloud.com/intl/zh-cn/clir-ces/CES-cli_v1.html
- 各云控制台、CLI 与计费文档入口:以各云官方帮助中心为准