说明 EC2 基础与详细监控、CloudWatch Agent 系统指标、Alarm 参数、缺失数据和 SNS 通知,排查内存无数据与告警不送达。
默认做法:在 AWS 中文控制台“CloudWatch → 指标/警报”使用 EC2 默认 CPU 和状态指标;内存、磁盘使用率不是 EC2 默认指标,需要 CloudWatch Agent 和实例 IAM 角色。通知通过 SNS 主题订阅。详细监控、自定义指标、日志和通知可能收费,创建前核对 CloudWatch 与 SNS 价格。
告警真正可用,需要同时配置指标、周期、评估数据点、缺失数据处理和 SNS 通知,并通过测试确认订阅生效。
EC2 指标与告警链路

默认能看到哪些指标
- CPUUtilization:实例 CPU 使用情况;
- NetworkIn/NetworkOut:网络流量;
- DiskRead/WriteOps 与 Bytes:特定实例存储指标;
- StatusCheckFailed:实例或底层系统状态检查;
- EBS 指标:在对应 VolumeId 维度查看。
Linux 内存、Swap、文件系统容量和进程并非 EC2 默认指标。没有 Agent 时找不到这些指标是正常边界。
基础监控和详细监控怎么选
基础监控的告警周期通常至少 300 秒;详细监控提供 1 分钟粒度,对需要更快发现异常的生产服务更合适,但会产生费用。周期短于指标实际分辨率不会产生更多数据。
怎样建立 SNS 通知链路
- 在 SNS 创建 Topic;
- 添加邮件或其他订阅端点;
- 完成订阅确认;
- 在 CloudWatch Alarm 选择 SNS Topic;
- 受控触发告警并验证 ALARM 与 OK 通知。
CloudWatch 不会验证告警动作是否真实存在或配置正确。规则保存成功不等于通知链路通过测试。
Alarm 关键参数怎么理解
- Period:每个统计窗口长度;
- Evaluation periods:用于判断的窗口数;
- Datapoints to alarm:越界数据点数量;
- Statistic:Average、Maximum、Sum 等;
- Missing data:缺失数据的状态处理;
- Actions:SNS、Auto Scaling 或 EC2 动作。
CPU 短暂尖峰与连续资源不足不是同一问题。阈值、统计方式和窗口必须结合业务基线。
内存和磁盘使用率怎样采集
需要在 EC2 内安装 CloudWatch Agent,并通过 IAM Role 授予最小必要权限。配置采集内存、Swap、文件系统和日志,再启动 Agent 并确认自定义命名空间出现持续数据。
Agent 无数据时按顺序检查 IAM Role、Agent 服务、配置文件、Region、到 CloudWatch 端点的网络、时间同步和日志。不要把长期访问密钥写进服务器配置来替代实例角色。
为什么告警一直是 INSUFFICIENT_DATA
- 指标维度选错;
- Period 小于实际分辨率;
- Agent 停止或自定义指标未上报;
- 新告警尚未积累足够周期;
- 资源停止后没有数据;
- 缺失数据策略不匹配。
收到告警后怎样定位
- 记录 Region、InstanceId、指标、维度和时间范围;
- 同时查看 CPU、网络、EBS、状态检查和系统事件;
- 检查进程、内存、文件系统和日志;
- 区分 AWS 基础设施异常、容量不足和应用故障;
- 处理后验证指标恢复、状态转为 OK 且通知送达。
常见问题
为什么 CloudWatch 看不到 EC2 内存?
内存不是 EC2 默认指标,需要 CloudWatch Agent 或其他方式发布自定义指标。
详细监控是否免费?
详细监控和自定义指标可能产生费用,应查看当前区域价格,不要默认全部开启。
已经 ALARM,为什么没收到邮件?
检查 SNS 订阅是否确认、Topic 是否正确、动作是否启用以及邮件过滤。
告警参数先按基线设
先观察一个完整业务周期,再设统计方法、周期、连续数据点和缺失数据处理。CPU 短峰不一定故障,磁盘容量与 inode、内存和 Swap 需结合。SNS 邮件订阅必须完成确认,否则告警状态变化也收不到。
无数据排查
- 确认指标命名空间、实例 ID 和维度。
- 检查 Agent 服务、配置文件和日志。
- 核对 IAM 角色允许发布指标/日志。
- 确认周期与指标上报频率一致,实例当前在运行。
验收与回退
在测试实例制造可控负载或降低临时阈值,确认 OK→ALARM→OK、SNS 到达和通知能定位实例。新告警先并行观察;噪声过大时恢复原阈值并基于数据调整,不删除历史证据。
AWS EC2 CloudWatch 监控告警怎么配置现场验收单
- 入口或命令:CloudWatch → 指标/警报;SNS → 主题/订阅;EC2 绑定 Agent 所需 IAM 角色
- 提交前风险:详细监控、自定义指标、日志和 SNS 可能收费;配置不删数据但错误权限会漏监控
- 不能继续时:Agent 未运行、IAM 权限缺失、维度不匹配、周期错、订阅未确认、INSUFFICIENT_DATA
- 完成证据:制造可控阈值越界,状态变 ALARM,通知收到并能关联实例,恢复后回 OK
- 退出办法:保留旧告警;新告警先并行观察,失败恢复旧阈值/配置而不删除历史
完成这项任务后继续检查
- AWS EC2 和 Lightsail 怎么选?架构、成本与扩展能力对比
- AWS EC2 安全组怎么配置?入站规则、端口开放与连接排查
- AWS EBS 怎么扩容?Linux、Windows 分区与文件系统处理
官方资料
- AWS:CloudWatch metrics concepts
- AWS:Using CloudWatch alarms
- AWS:Monitor EC2 with CloudWatch
- AWS:Install the CloudWatch agent
如需确认 AWS 账户、充值或基础监控方向,可通过 Telegram 联系 @heishayun。排障时请提供 Region、InstanceId、指标维度和脱敏后的 Agent 日志。

