Amazon SOA-C02: 监控、日志与修复 — 学习指南

属于 AWS SysOps Administrator Associate SOA-C02 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.

监控、日志记录和修复构成了 AWS 环境的运营神经系统:它们负责检测问题、提供上下文并驱动纠正措施。本领域涵盖创建有意义的指标和控制面板、经济高效地收集和保留日志、构建可追踪的应用程序可观测性,以及实现警报和修复的自动化。好的实施方案应平衡信噪比、控制成本,并确保操作手册和自动化经过测试且可审计。

CloudWatch 指标、控制面板和警报

围绕业务和运营 SLI(延迟、错误率、队列深度、基础设施的 CPU/内存)设计指标。使用内置指标(EC2、RDS、ELB)以及通过 PutMetricData 提供的自定义指标,用于应用程序级别的计数器(

undefined

)。优先选择可用于筛选的维度(InstanceId、ServiceName),并避免使用会激增指标成本的高基数维度。

使用 CloudWatch 控制面板将指标、日志和警报组合成运营视图。在控制台中或通过 CloudFormation(AWS::CloudWatch::Dashboard)创建小组件,并利用指标数学计算派生指标:使用指标数学计算错误率(ERRORS/SUM(REQUESTS))并显示百分位数(p50、p90、p99)。对于警报,根据意图选择配置模式:

undefined

决策标准:使用评估周期和“数据点到警报”设置来避免警报抖动;将 SNS、Auto Scaling 或 Systems Manager Automation 作为警报操作触发。对于基线可变的环境,优先使用复合警报和异常检测。

CloudWatch Logs、Logs Insights 和保留策略

使用 CloudWatch Logs 日志组聚合日志,并按应用程序和环境对其进行结构化。通过 CLI 创建日志组:

undefined

,并使用

undefined

强制执行保留策略。使用订阅筛选器将日志流式传输到 Kinesis Data Firehose(用于 S3/Redshift)、Lambda(用于实时处理)或合作伙伴工具;在 S3 中进行压缩和分区以降低存储成本。

使用 CloudWatch Logs Insights 进行即席查询和构建控制面板;构建可提取跟踪 ID 和错误上下文的已保存查询(例如,

undefined

)。保留和摄取成本控制实践:

决策标准:为详细的调试日志设置较短的保留期,为审计/安全日志设置较长的保留期;将高容量日志路由到 S3,而不是在 CloudWatch 中无限期保留。

CloudTrail、审计跟踪和事件历史

在所有区域和账户中启用 CloudTrail;创建组织跟踪以实现集中式审计日志记录,并将其保存到安全的 S3 存储桶中,同时启用日志文件验证和 SSE-KMS 加密。配置管理事件(读/写),并有选择地启用数据事件(S3 对象级别、Lambda 函数调用),仅在需要详细审计的场景下开启,因为数据事件的量更大且成本更高。

使用控制台中的 CloudTrail 事件历史进行 90 天的快速搜索,并使用 CloudTrail Lake 或基于导出的 S3 日志的 Athena 进行长期分析和调查。通过以下方式保护跟踪:

决策标准:仅在需要取证可见性的存储桶/函数上启用数据事件;使用集中式跟踪和跨账户访问模式来简化合规性。

应用程序跟踪与可观测性 (X-Ray)

使用 AWS X-Ray SDK 检测应用程序以发出分段和子分段。对于未检测的运行时,将 X-Ray 守护进程/代理作为 sidecar 或服务(ECS 任务、EC2 守护进程或 Lambda 内置跟踪)运行。配置采样规则以控制跟踪量,并在 ServiceLens 中设置服务地图以可视化服务间的依赖关系。使用业务键(userId、orderId)为跟踪添加注释,并记录异常/元数据以帮助分类。

通过在应用程序日志中包含 X-Ray 跟踪 ID(使用跟踪标头或 SDK 获取当前跟踪 ID),将跟踪与日志关联起来,这样 CloudWatch Logs Insights 查询就可以连接日志和跟踪。对于 Lambda,启用主动跟踪(在控制台或通过

undefined

)以自动将跟踪发送到 X-Ray。使用跟踪分析来检测长尾延迟、热点和数据库调用分解。

决策标准:为关键服务启用跟踪,并使用自适应采样来限制成本;优先选择结构化跟踪(注释/元数据),使日志+跟踪的关联具有确定性。

自动化修复与告警 (EventBridge/Lambda)

使用 EventBridge 规则来匹配 CloudWatch Alarm 状态变更、CloudTrail 事件或自定义事件,并将它们路由到 Lambda、Systems Manager Automation 文档、Step Functions 或 SNS 等目标。创建带有输入转换器的规则,以便向修复操作传递最小化的上下文 (aws events put-rule –name HighErrorRule –event-pattern ‘{“source”:[“aws.cloudwatch”],…}’)。对于轻量级修复(重启服务、撤销凭证),可以实施 Lambda 函数;但对于带有检查点的、可审计的、长时间运行的剧本,应使用 SSM Automation 或 Step Functions。

安全地设计修复措施:包括演练模式、幂等性、验证步骤、IAM 最小权限、日志记录和一个紧急停止开关。在 EventBridge/Lambda 集成上使用死信队列和重试策略,并将修复尝试发布到审计日志或安全轨迹中。在预生产账户中测试自动化,并在部署后运行金丝雀测试。

决策标准:对于多步骤恢复和需要人工审批的场景,优先选择 SSM Automation 或 Step Functions;对于简单、快速的修复,使用 Lambda。对于有风险的操作,务必包含手动回滚或人工介入的断点。

常见陷阱与决策标准

实践问题:用例场景

Acme Payments 在流量高峰期会经历间歇性的支付处理失败;工程师观察到延迟增加和零星的 5xx 错误,但自动化重启有时会掩盖根本原因。

  1. 使用 X-Ray SDK 和 EMF 指标来检测支付服务;将追踪 ID 添加到应用程序日志中,并通过 PutMetricData/EMF 发送结构化指标 OrdersFailed 和 OrdersProcessed。
  2. 创建 CloudWatch 指标数学来计算错误率 (OrdersFailed / OrdersProcessed),并创建一个复合告警,该告警结合了“错误率 > 阈值”和“p99 延迟 > 阈值”两个条件。
  3. 将告警操作路由到一个 EventBridge 规则,该规则触发一个 Step Functions 工作流以执行诊断步骤(收集最近的追踪/日志、运行健康检查),并在安全的情况下,通过 SSM Automation 执行自动化重启。
  4. 配置 CloudTrail 和 CloudWatch Logs 订阅,将完整日志(压缩后)归档到 S3,并设置生命周期策略迁移到 Glacier;同时为详细的调试日志在 CloudWatch 中设置较短的保留期。
  5. 运行端到端测试和金丝雀综合事务 (CloudWatch Synthetics),在生产环境中启用自动修复之前,验证可观测性和修复流程。

基本原理:关联指标、日志和追踪来定位根本原因,而不是反复处理表面症状;组合告警以减少噪音,并使用可审计、经过测试的自动化(Step Functions/SSM)进行安全修复,同时控制日志存储成本。


所有领域 · 高可用性、容错与灾难恢复

练习这些题目 → · 在 ExamRoll.io 上限时练习 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通过考试 →

浏览 Amazon →

Related guides

一体化访问

一次订阅。所有考试。

所有计划均可无限制搜索答案、进行模拟测试、获取AI解释以及访问完整的资源库 — 支持20多种语言。

每月
24.87
Just €0.83/day
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

最具价值
12个月
179.87
Just €0.49/daySave 40%
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

✓ 包含免费计划 · ✓ 随时取消 · ✓ 所有计划均解锁完整产品