YatishChhatrapati/AWS-CloudWatch-Monitoring-Alerting-Incident-Response

GitHub: YatishChhatrapati/AWS-CloudWatch-Monitoring-Alerting-Incident-Response

一份指导如何在AWS Free Tier上使用CloudWatch搭建EC2监控告警体系并进行标准事件响应与RCA分析的实操指南。

Stars: 0 | Forks: 0

# AWS CloudWatch — 监控、告警与事件响应 在 AWS Free Tier 上实践的 CloudWatch 监控和事件响应实操场景 — 我向云支持工程师转型的实践之一。 ## 环境 - Amazon CloudWatch — 指标、控制面板、告警、日志 - Amazon SNS — 邮件通知 - Amazon EC2 — Ubuntu Server (Free Tier) - Ubuntu Linux CLI — stress, top, ps, kill - AWS 管理控制台 ## 场景 1 — CloudWatch 控制面板设置 **执行步骤:** 1. 打开 CloudWatch 控制台 → 控制面板 → 创建控制面板 2. 命名控制面板:`EC2-Monitoring-Dashboard` 3. 添加小部件: | 小部件 | 指标 | 目的 | |---|---|---| | 折线图 | CPUUtilization | 随时间跟踪 CPU | | 折线图 | NetworkIn / NetworkOut | 监控网络流量 | | 数字 | StatusCheckFailed | 一目了然的实例健康状况 | | 折线图 | DiskReadOps / DiskWriteOps | 磁盘活动监控 | 4. 将时间范围设置为过去 3 小时 5. 保存控制面板并将其设为默认视图 **主要收获:** CloudWatch 控制面板提供了实例健康状况的统一视图。 自定义控制面板对于云支持监控至关重要。 小部件可以混合搭配使用 — 图表、数字、告警 — 都在同一屏幕上。 ## 场景 2 — 创建带有 SNS 通知的 CPU 告警 **执行步骤:** 1. 打开 CloudWatch 控制台 → 告警 → 创建告警 2. 选择指标: - 命名空间:AWS/EC2 - 指标:CPUUtilization - 实例:选定的目标 EC2 实例 3. 配置告警条件: - 阈值类型:静态 - 条件:大于 80% - 周期:5 分钟 - 触发告警的数据点:1 个中的 1 个 4. 配置通知操作: - 创建新的 SNS 主题:`cpu-alert-topic` - 添加电子邮件端点 — 从收件箱确认订阅 5. 命名告警:`High-CPU-Alert` 6. 成功创建告警 **告警状态:** | 状态 | 含义 | |---|---| | OK | 指标在阈值范围内 | | In Alarm | 指标突破了阈值 | | Insufficient Data | 数据点尚不足 | **主要收获:** CloudWatch 告警需要 SNS 主题来传递通知。 必须确认电子邮件订阅才能接收告警。 周期和数据点设置控制着告警的敏感度。 ## 场景 3 — CPU 超载模拟与告警验证 **问题:** 需要验证当 CPU 阈值被突破时, CloudWatch 告警是否能正确触发。 **执行步骤:** 1. 通过 SSH 登录到 Ubuntu EC2 实例 ``` ssh -i "my-key.pem" ubuntu@ ``` 2. 安装 stress 工具 ``` sudo apt update sudo apt install stress -y ``` 3. 模拟 CPU 负载 — 将 CPU 推至 100% ``` stress --cpu 4 --timeout 120 ``` 4. 在单独的终端中监控实时 CPU ``` top -c ``` 5. 等待 5 分钟 — CloudWatch 告警进入 In Alarm 状态 6. 收到 SNS 电子邮件通知 ✅ 7. 停止 stress 进程 — CPU 恢复正常 8. CloudWatch 告警返回 OK 状态 ✅ **结果:** 在 CPU > 80% 时告警正确触发。 在预期时间内收到了 SNS 通知。 CPU 降至阈值以下后,告警自动解除。 **主要收获:** CloudWatch 指标每 5 分钟更新一次(基础监控)。 启用详细监控可获取 1 分钟粒度的数据。 stress 工具对于在测试期间模拟负载非常有用。 ## 场景 4 — 事件响应与 RCA 文档 **事件:** 生产环境的 EC2 实例触发了 CloudWatch CPU 告警。 实例响应缓慢 — 报告了客户受到影响。 **响应步骤:** 1. 收到 CloudWatch SNS 告警通知 2. 检查 CloudWatch 控制面板 — 确认 CPU 达到 95% 3. 通过 SSH 登录到 Ubuntu EC2 实例 ``` ssh -i "my-key.pem" ubuntu@ ``` 4. 识别失控进程 ``` top -c ps aux --sort=-%cpu | head -10 ``` 5. 记录异常进程的 PID 6. 终止进程 ``` kill -9 ``` 7. 确认 CPU 恢复正常 ``` top -c ``` 8. 监控 CloudWatch — 告警在 2 分钟内解除 9. 以 SOP 格式记录事件 ## 事件 SOP — CPU 使用率过高 ``` ======================================== SOP: High CPU Utilization — EC2 Instance ======================================== Incident ID : INC-001 Severity : High Service : EC2 Ubuntu — Web Server Alarm : High-CPU-Alert (CloudWatch) TIMELINE: T+00 — CloudWatch alarm triggered (CPUUtilization > 80%) T+01 — SNS email notification received T+02 — CloudWatch dashboard reviewed — CPU at 95% T+03 — SSH into EC2 instance T+04 — Ran: top -c and ps aux — identified runaway process T+05 — Executed: kill -9 T+06 — CPU dropped to 12% T+08 — CloudWatch alarm returned to OK state T+10 — Apache status verified — service healthy T+15 — Incident resolved — SOP documented ROOT CAUSE: Uncontrolled background process consuming 95% CPU. Process was not part of any scheduled job or application workflow. RESOLUTION: Runaway process identified via top and ps aux. Process terminated via kill -9 command. CPU normalized within 2 minutes of termination. IMPACT: Website response was slow for approximately 8 minutes. No data loss. Apache service remained running throughout. PREVENTION: 1. CloudWatch CPU alarm at 80% threshold — already active 2. Enable detailed monitoring (1-minute intervals) on EC2 3. Review cron jobs and background processes periodically 4. Consider Auto Scaling to distribute load in future ITSM ALIGNMENT: Detection — CloudWatch Alarm + SNS Diagnosis — CloudWatch Metrics + Linux CLI (top, ps) Resolution — Process kill via SSH Review — RCA documented in SOP ======================================== ``` ## CloudWatch 告警 — 配置参考 | 参数 | 使用值 | |---|---| | 指标 | CPUUtilization | | 命名空间 | AWS/EC2 | | 阈值 | 大于 80% | | 周期 | 5 分钟 | | 触发告警的数据点 | 1 个中的 1 个 | | 通知 | SNS 电子邮件告警 | | 告警名称 | High-CPU-Alert | ## 展示技能 | 技能 | 场景 | |---|---| | CloudWatch 控制面板创建 | 1 | | CPU 告警配置 | 2 | | SNS 主题和电子邮件通知 | 2 | | CPU 突破模拟 | 3 | | 告警验证 | 3 | | 事件响应工作流 | 4 | | 根因分析 (RCA) | 4 | | SOP 文档编写 | 4 | | 符合 ITSM 标准的事件处理 | 4 | | Linux 进程管理 | 3, 4 | ## 关于 在 Accenture 和 Genpact 拥有 6 年以上的运营与支持经验 — 正在向 AWS 云支持工程师转型。 所有场景均使用 Ubuntu Server 在 AWS Free Tier 上实践。
标签:ASM汇编, AWS, AWS Free Tier, Cloud Support Engineering, CloudWatch, CPU监控, DPI, EC2, IaC, IT支持, SNS, Ubuntu Linux, 云监控, 云运维, 仪表盘, 压力测试, 告警配置, 异常检测, 指标监控, 运维, 邮件通知