跳至主要内容

AWS CloudTrail 与 AWS CloudWatch:新手指南

探索 AWS CloudTrail 与 AWS CloudWatch 之间的关键差异。二者都是 AWS 中的日志系统,但目标略有不同。
Tim Lu
Tim Lu

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

Amazon Web Services(AWS)提供了许多日志工具,旨在帮助组织监控、管理并保障其云基础设施的安全。有些工具侧重于审计合规(CloudTrail)、资源指标(CloudWatch)、网络日志(VPC Flow)以及应用日志(X-Ray)。 

这些服务为用户提供其 AWS 生态系统不同部分的洞察,帮助用户就服务管理做出明智决策。在这些服务中,AWS CloudTrail 和 AWS CloudWatch 提供了更为“关键”的功能,例如合规和资源监控。

这两个系统分别满足不同的核心需求:CloudTrail 专注于治理、审计与合规,而 CloudWatch 致力于性能监控与运维效率。 

在本文中,我们将深入探讨 CloudTrail 与 CloudWatch 的具体功能、使用场景,并澄清它们的关键差异,帮助您高效利用它们。若想了解其他 AWS 日志与管理机制,请查看我们的云服务组件对比速查表。

什么是 AWS CloudWatch?

AWS CloudWatch 是一项监控服务,旨在收集并跟踪在 AWS 上运行的资源与应用的指标。CloudWatch 确保对系统性能的可见性,并提供告警功能,可在出现问题时通知用户。根据不同的 AWS 服务,它提供基础(免费)与详细(付费)监控。

AWS CloudWatch 关键功能

CloudWatch 的关键功能包括仪表板、指标收集、日志监控和告警。这些功能围绕一组监控系统构建,分别关注 AWS 生态系统的不同组件。

1. 指标收集与跟踪

  • 监控诸如 CPU 使用率、内存利用率、磁盘 I/O、网络活动等指标,覆盖 EC2、RDS、Lambda 等 AWS 资源。
  • 指标通常存储在 Amazon EC2 存储桶中,作为指标存储库。

2. 监控系统

  • 提供多种监控系统,如应用、网络与基础设施监控。
  • 应用监控关注应用健康状况,如时延、可用性与故障。
  • 网络监控通过 Internet Monitor 和 Network Monitor 跟踪全球(互联网)流量与混合(本地与云)场景中的时延与丢包。
  • 基础设施监控可为容器(Amazon Elastic 与 Kubernetes)提供资源使用洞察,如 CPU、内存等;也可跟踪 AWS Lambda 应用的相同指标。

3. 实时仪表板

  • 提供可自定义仪表板,以实时可视化系统性能与趋势。
  • 可展示自定义应用与所选指标。

CloudWatch 仪表板:Amazon 文档

4. 告警与阈值

  • 设置告警以检测并响应性能异常,自动触发操作或发送通知。
  • 某些操作包括启动更多实例或停止未充分利用的实例。

AWS CloudWatch 使用场景

我们来看几个 AWS CloudWatch 的典型使用场景。

性能优化

AWS CloudWatch 有助于识别瓶颈并优化资源使用。例如,Internet Monitor 可在全球云游戏平台上检测时延问题,并建议在更优区域部署服务器以降低延迟。

自动化告警

基于预设阈值设置告警,用于资源伸缩或错误检测。比如,当应用的服务级目标(SLO)未达标时,CloudWatch 可发送告警并提供可执行建议以提升性能指标。

持续可见性

使用仪表板以保持对系统健康状况的实时洞察。仪表板对跟踪来自 AWS Kinesis 与 AWS Lambda 等服务的数据流表现尤为有用。理解该流程的一个很好方式是这门课程:使用 AWS Kinesis 与 Lambda 处理流数据,最终您将用 AWS CloudWatch 构建仪表板。

什么是 AWS CloudTrail?

AWS CloudTrail 是一项日志服务,用于跟踪您 AWS 账户中的所有 API 活动,确保可追溯性。它记录用户操作、资源变更与服务交互,为治理与合规提供不可篡改的审计轨迹。这对于安全合规与用户行为审计尤为有用。若想了解更多,可查看这门课程:AWS 安全与成本管理。

AWS CloudTrail 关键功能

CloudTrail 的关键功能围绕用户活动监控展开。由于 CloudTrail 的目标是维持可追责与可审计性,因此所有操作都会被监控与存储。

1. 操作跟踪

CloudTrail 记录所有用户操作,这种全面跟踪对于了解 AWS 环境中的“何人、何事、何时”至关重要。

2. 合规支持

通过维护事件历史记录,帮助组织满足 PCI DSS 与 HIPAA 等监管要求。

在发生违规时,可用于追溯违规的确切时间与相关的用户账户。

4. 与 AWS 服务集成

CloudTrail 可将日志发送至 S3 以进行长期存储,或发送至 Amazon Athena 进行查询与分析。这些集成使趋势分析或异常调查更为便捷。

CloudTrail 日志示例:AWS CloudTrail 博客

AWS CloudTrail 使用场景

AWS CloudTrail 的几个关键使用场景主要围绕审计与合规跟踪。

安全审计

CloudTrail 支持细粒度审计,以确保符合监管标准与内部政策。在发生安全事件时,CloudTrail 日志提供识别根因与评估影响所需的详细信息。

CloudTrail 审计日志:AWS 安全成熟度模型

变更排障

通过审阅日志,团队可以追溯可能导致意外行为的资源变更。这为解决未来的下游问题提供了更直接的路径。

CloudTrail 与 CloudWatch:关键差异

如前所述,CloudTrail 与 CloudWatch 都是 AWS 环境中的基础日志工具。然而,它们关注 AWS 环境的不同组成部分。本节将从关注点到成本等方面介绍这些关键差异。

关注点

CloudWatch 与 CloudTrail 关注 AWS 环境的不同部分。

  • CloudWatch:监控资源性能与运行健康。目标是了解 AWS 组件的运行状况,以及是否存在时延、客户交互或资源限制方面的问题。
  • CloudTrail:为治理与合规跟踪 API 活动。目标是维护清晰的“书面轨迹”,以便追责。

数据时延

CloudWatch 几乎零时延,而 CloudTrail 存在一定时延。

  • CloudWatch:提供接近实时的洞察,指标最快每分钟更新一次。实时洞察至关重要,因为 CloudWatch 需要能够即时告警或按需调整资源。
  • CloudTrail:以几分钟延迟记录 API 活动,侧重历史分析。由于日志通常用于回溯历史操作,几分钟的延迟是可以接受的。

集成

二者都可与 Lambda、S3、SNS 等 AWS 服务无缝集成。

  • CloudWatch:最适合运维监控与基于性能指标的自动化响应。它还可与 Kubernetes 等容器、EC2 存储及其他应用集成,以便在特定用例中进行更详细的日志记录。
  • CloudTrail:理想用于安全审计与用户活动跟踪。可与 EC2 存储集成以进行日志存储。

成本

两者都有免费的基础日志功能,但高级日志功能需付费。

  • CloudWatch:对资源使用、故障与问题的基础日志通常免费。更详细的日志会根据收集的指标量、设置的告警数量与存储数据的复杂性计费。不同应用的日志细节级别各不相同。
  • CloudTrail:管理事件日志免费,但记录数据事件与进行高级分析会产生额外费用。

日志数据

基于各自的独特用例,这两种工具在日志收集与存储方式上存在差异。

  • CloudWatch:数据以实时提供,但可按时间范围聚合。由于未必需要精确到最细粒度,提供的数据通常在采集的时间尺度上做了汇总。
  • CloudTrail:以提供准确详尽的审计轨迹为目标,不对活动进行聚合;而是为每个执行的操作提供信息,以清晰勾勒操作脉络。

关键差异总结

下面的表格总结了关键差异。

功能

AWS CloudWatch

AWS CloudTrail

主要目的

监控资源性能与运行健康。

为治理与审计跟踪 API 活动。

关注点

性能与指标监控。

安全、合规与用户活动日志。

数据时延

近实时(每分钟更新)。

存在延迟(每隔数分钟记录)。

日志类型

实时的应用与系统日志,已聚合

历史 API 活动日志,未聚合

集成

SNS、Lambda、Auto Scaling 等用于运维操作。

S3、Athena 与第三方工具用于日志分析。

使用场景

性能优化、自动化告警、仪表板。

安全审计、取证分析、合规。

成本

按指标、告警与日志存储计费。

管理事件免费,数据事件需额外付费。

CloudTrail vs. CloudWatch vs. AWS Config

虽然 CloudTrail 与 CloudWatch 负责日志与监控,但 AWS Config 专注于跟踪 AWS 资源的配置变更。这有助于理解当前配置如何影响您的 AWS 资源。AWS Config 本身不是日志工具,而是帮助您了解变更如何影响 AWS 资源管理。

  • CloudTrail:记录 API 活动以满足合规所需的安全与审计
  • CloudWatch:监控 AWS 资源的性能,并可用于告警 
  • AWS Config:确保配置变更保持在边界内,并可展示变更如何影响资源。

结论:何时使用 CloudTrail 与 CloudWatch

对于 AWS 用户而言,在 CloudTrail 与 CloudWatch 之间做出选择,取决于您的目标。若您需要监控系统性能、跟踪运维指标并对异常进行自动响应,请使用 CloudWatch。若您的重点是安全、合规或用户活动审计,请使用 CloudTrail。 

了解何时使用哪种工具,对于全面监控、记录日志与维护 AWS 基础设施至关重要。若您想进一步学习 AWS 及这些工具的工作方式,请查看以下资源:

CloudTrail 与 CloudWatch 常见问答

AWS CloudTrail 与 AWS CloudWatch 能一起使用吗?

可以。例如,您可以配置 CloudTrail 日志,在发生特定事件(如未授权的 API 调用或对关键资源的变更)时在 CloudWatch 中触发告警。此集成有助于弥合性能监控与安全审计之间的差距。

CloudWatch 会自动为所有 AWS 服务收集指标吗?

CloudWatch 默认会为许多 AWS 服务收集基础指标,例如 EC2 实例的 CPU 使用率或 Lambda 的调用次数。但若需详细指标,您可能需要启用高级监控功能,这可能会产生额外费用。

CloudTrail 日志会保留多长时间?能否长期存储?

默认情况下,CloudTrail 会在事件历史中保留 90 天的日志。不过,您可以将 CloudTrail 配置为将日志投递到 Amazon S3 存储桶以进行长期存储。这对合规与取证调查很有帮助。

如何降低与 CloudWatch 日志相关的成本?

要尽量降低 CloudWatch 日志成本,您可以使用日志过滤器仅保留必要的日志,设置日志保留策略自动删除旧日志,并将日志压缩后导出到 Amazon S3 进行长期存储。

是否可以在不下载的情况下分析 CloudWatch 指标或 CloudTrail 日志?

CloudWatch:可在 CloudWatch 控制台中直接通过仪表板、告警与指标运算分析指标。可使用 CloudWatch Logs Insights 查询日志。

CloudTrail:可使用 Amazon Athena 分析日志,无需下载。将 CloudTrail 日志存储在 S3 存储桶后,您可在 Athena 中使用 SQL 查询快速提取洞察。

Tim Lu

作者

Tim Lu

我是一名数据科学家,擅长空间分析、机器学习和数据管道。曾使用过 GCP、Hadoop、Hive、Snowflake、Airflow 等数据科学/工程相关流程与工具。

主题