本文将比较 AWS CloudWatch 和 CloudTrail,查看它们的特性、用例和技术注意事项。

关注我带你了解科技领域最新的技术与产品

关注我带你了解科技领域最新的技术与产品

在当今数字化的世界中,云计算对于各类规模的企业而言都是必不可少的,而亚马逊网络服务(Amazon Web Services,AWS)无疑是最受欢迎的云计算服务提供商。AWS提供了众多的服务,包括CloudWatch和CloudTrail,可以监控和记录AWS资源中的事件。

本文将对比AWS CloudWatch和CloudTrail,从它们的功能、应用场景和技术考虑等方面进行比较。同时还将提供每个服务的实施指南和定价详情。

AWS CloudTrail vs. AWS CloudWatch的摘要对比: AWS CloudTrail和AWS CloudWatch提供不同的功能和特点,面向特定的使用场景。

概念 亚马逊云跟踪(AWS CloudTrail) 亚马逊云监控(Amazon CloudWatch) 核心目的 亚马逊云跟踪记录AWS账户内的所有API活动,以增强安全性、确保合规性和帮助故障排除。 亚马逊云监控是一项AWS监控服务,提供全面的运营健康视图。 应用场景 合规性、安全性、提供AWS基础设施变更历史记录、治理和取证 监控、故障排除、容量规划和资源优化 日志记录 云跟踪事件是AWS账户内API活动的日志,为审计、安全分析和操作故障排除提供有价值的数据。 云监控日志是AWS的一项服务,用于集中存储、监控和分析来自AWS资源和应用程序的日志文件,帮助进行模式检测、故障排除和数据归档。 存储和数据处理 云跟踪记录AWS账户中的API调用和事件,将其存储在S3存储桶中以进行审计和安全目的,并提供数据分析和自动化处理工具,数据保留时间长达7年,并在15分钟内提供事件,每5分钟将日志文件传送到S3。 云监控将来自AWS资源和应用程序的数据收集存储在持久存储库中,实时处理以进行可视化和通知,指标数据保留时间为15个月,日志数据保留时间为2年,支持根据所请求数据的年龄调整粒度的高分辨率数据点。 查询和分析 使用云跟踪Insights,可以通过选择相关的日志组、在查询编辑器中输入关键字(如“Invoke”)、应用过滤器、执行复杂查询、以表格或图表形式查看结果,并安排定期运行查询以进行持续监控和分析,对AWS Lambda事务进行查询。 云监控允许使用标签和聚合查询和分析日志数据,包括选择日志组、在查询编辑器中输入搜索值、添加标签作为键值对、使用云监控日志Insights查询语言执行复杂查询、执行查询,并可选择保存和安排定期监控和分析。 定价和成本注意事项 亚马逊云监控和云跟踪提供单独的12个月免费层,费用基于指标、日志和存储使用情况。影响定价的各种因素因服务的具体要求而异。

AWS CloudWatch是一项用于监控AWS资源和在Amazon Web Services上运行的应用程序的服务。它的核心目的是提供数据和可操作的洞察力,以监视应用程序、理解和响应系统整体性能变化、优化资源利用率,并获得统一的运营健康视图。AWS CloudTrail是一项为AWS资源提供事件历史记录的服务。它记录您账户中的每个API调用,包括调用者、时间和来源。它的核心目的是安全性、合规性和故障排除。

AWS CloudWatch功能 度量指标:CloudWatch从AWS资源和应用程序收集、存储和分析性能数据,称为度量指标。度量指标是按时间顺序排列的数据点集,帮助您监视应用程序和基础架构的性能。 告警:CloudWatch允许您基于度量指标阈值创建告警。当度量指标越过指定的阈值时,将触发告警。您可以配置在触发告警时自动执行的操作,例如发送通知或停止实例。 日志:CloudWatch日志使您能够集中存储和分析来自AWS资源和应用程序的日志数据。您还可以为特定日志模式设置告警,或使用CloudWatch日志洞察来搜索、分析和可视化日志。 事件:CloudWatch事件是一项提供关于AWS资源更改的近实时事件流的服务。您可以创建规则以匹配特定事件,并对这些事件采取自动操作,使用AWS Lambda函数、SNS通知或其他AWS服务。 异常检测:此功能使用机器学习算法识别反映在度量指标中的异常行为。这些信息可以让您在潜在问题影响应用程序或基础架构之前主动解决。 自定义仪表盘:CloudWatch允许您创建自定义仪表盘以可视化您的度量指标和告警。仪表盘可以个性化设置,显示特定资源或应用程序的关键绩效指标(KPI)和运营健康度量。

AWS CloudTrail功能 活动日志记录:CloudTrail通过记录AWS管理控制台登录事件和AWS API调用来记录账户活动。这些日志可以帮助您跟踪用户活动和资源更改,用于安全分析、合规审计和操作故障排除。 事件历史记录:CloudTrail保留过去90天的API调用历史记录,使您可以访问和搜索最近的账户活动。 多区域支持:CloudTrail可以合并来自多个AWS区域的API活动日志,提供统一视图,展示所有区域中的账户活动。 数据事件记录:CloudTrail可以捕获Amazon S3对象级别操作和AWS Lambda函数执行的API调用。该功能使您能够记录对特定资源的访问,进行详细分析和审核。 与其他AWS服务集成:CloudTrail日志可以传送到Amazon S3、Amazon CloudWatch Logs和Amazon SNS进行进一步分析、报警和存档。将这些服务集成在一起,可以构建自定义工作流程,并自动响应AWS账户中的特定事件。 日志文件加密:CloudTrail支持使用AWS密钥管理服务(KMS)密钥进行日志文件加密,确保日志数据安全,并仅对授权用户可访问。 日志文件验证:CloudTrail允许您启用日志文件验证,确保您的日志文件完整性和真实性。启用验证后,您可以确信日志数据没有被篡改或修改。

AWS CloudTrail和AWS CloudWatch的使用场景 Amazon CloudWatch可以跟踪云资源、应用程序和自定义指标的度量指标、日志文件和告警。它提供全面的系统范围的资源利用率、应用程序性能和运营健康视图,涵盖Amazon EC2、DynamoDB、RDS等。

事件检测和响应:通过使用告警、通知和自动化操作,CloudWatch可以用于检测和响应事件,如实例故障、自动扩展操作和应用程序错误。 应用程序性能监控(APM):CloudWatch可用于APM,包括监视应用程序性能、跟踪自定义指标和追踪应用程序请求。 自定义度量指标:CloudWatch可用于跟踪和可视化自定义度量指标。您还可以将这些度量指标导出到第三方监控工具。 灾难恢复:CloudWatch可用于监视和确保灾难恢复资源(如备份和恢复服务器)的可用性和性能。

Amazon CloudTrail是一项Web服务,记录账户活动并将文件存储在Amazon S3存储桶中。它通过记录请求者、使用的服务、执行的操作、参数和响应元素等信息,提供对用户操作的可见性。CloudTrail有助于跟踪资源更改、故障排除操作问题,并确保符合内部政策和法规标准。变更管理:CloudTrail可用于跟踪AWS资源的变更历史。它提供了每个资源所做的所有变更的完整历史记录。 安全性和合规性:CloudTrail可用于安全性和合规性监控,包括监控未经授权的访问、安全事件和合规性违规行为。它可用于满足各种合规性要求,如PCI、HIPAA、SOC等。 治理和审计:CloudTrail日志可用于治理和审计目的,提供对AWS资源的所有活动和变更的审计跟踪。 风险管理:CloudTrail日志可用于识别与AWS资源相关的风险,以及配置错误和未经授权的访问尝试。 日志记录 在本节中,我们将深入了解AWS CloudWatch Logs服务以及一些AWS CloudTrail事件,以了解每个服务的工作原理。

Amazon CloudWatch Logs Amazon CloudWatch Logs使您能够使用现有日志文件监控和故障排除系统和应用程序,提供对特定短语、值或模式的准实时分析。例如,您可以基于系统日志错误设置警报,或者从应用程序日志中可视化延迟图表。CloudWatch Logs将日志数据无限期地存储在高耐用性、高性价比的存储中,消除了对硬盘容量的担忧。

用户可以使用CloudWatch Logs进行以下操作:

实时应用程序和系统监控:您可以利用日志数据在不进行任何代码更改的情况下监控应用程序和系统。例如,您可以跟踪应用程序日志中的错误发生次数,并在错误率超过指定阈值时收到通知。 长期日志保留:CloudWatch Logs代理程序可将旋转和非旋转日志文件无缝传输到日志服务,以在需要时提供原始日志事件数据的访问权限。 CloudWatch Logs代理程序是由AWS提供的一种软件代理程序,可安装在您的服务器上,自动收集、处理和传输应用程序或系统的日志数据到Amazon CloudWatch Logs。

CloudWatch Logs代理程序与各种操作系统兼容,包括Amazon Linux、Ubuntu、CentOS、Red Hat Enterprise Linux和Windows。

Amazon CloudTrail事件 当账户中发生事件时,CloudTrail评估该事件是否与配置的跟踪设置匹配。只有与跟踪设置相匹配的事件才会被传送到Amazon S3存储桶和Amazon CloudWatch Logs日志组。

可以配置多个跟踪方式,使其按照不同的方式处理和记录您指定的事件。例如,一个跟踪可以记录只读数据和管理事件,将所有只读事件传送到一个S3存储桶。另一个跟踪可以只记录写入数据和管理事件,使所有写入事件传送到一个单独的S3存储桶。

您还可以配置跟踪方式,设置一个跟踪方式以记录和传送所有管理事件到一个S3存储桶,同时配置另一个跟踪方式以记录和传送所有数据事件到另一个S3存储桶。

您可以配置跟踪方式记录以下类型的事件:

数据事件:这些事件提供了对在资源上执行的资源操作的可见性。这也被称为数据平面操作。 管理事件:管理事件提供了对在您的AWS账户中对资源执行的管理操作的可见性。这也被称为控制平面操作。管理事件还可以包括发生在您的账户中的非API事件。例如,当用户登录您的账户时,CloudTrail可以记录ConsoleLogin事件。 洞察事件:洞察事件捕获在您的账户中检测到的异常活动。如果启用了洞察事件,并且CloudTrail检测到异常活动,则会将洞察事件记录到目标S3存储桶中的不同文件夹中。在CloudTrail控制台上查看洞察事件时,您还可以看到洞察事件的类型和事件发生时间段。与在CloudTrail跟踪中捕获的其他类型事件不同,只有在CloudTrail检测到与账户的典型使用模式明显不同的API使用变更时,才记录洞察事件。洞察事件仅针对写管理API生成。

存储和数据处理 以下是AWS CloudWatch和AWS CloudTrail处理和存储数据的方式。

CloudWatch CloudTrail 收集 CloudWatch从各种源收集数据,包括AWS资源(如EC2实例、RDS数据库和Lambda函数),以及应用程序的自定义指标和日志。 CloudTrail捕获在AWS账户内进行的API调用和管理事件,包括由AWS服务、AWS管理控制台、AWS命令行界面(CLI)和AWS SDK生成的事件。 存储 CloudWatch将收集到的数据存储在自己的指标存储库中,即AWS CloudWatch Logs,这是一项由AWS管理的服务。指标存储库针对高可用性和耐久性进行了优化,在多个可用区存储多份数据副本,以确保数据可靠性。 CloudTrail将收集到的数据存储在Amazon S3存储桶中,可用于审计、安全分析和合规性目的。数据以优化搜索和检索的格式存储。 处理 CloudWatch实时处理收集到的数据,使用各种算法进行聚合、分析和可视化。这使客户能够创建自定义仪表板、设置警报和通知,并进行根本原因分析。 CloudTrail提供了各种工具,用于处理收集到的数据,包括AWS Lambda函数、AWS Glue作业和Amazon Athena查询。客户可以使用这些工具提取特定数据、进行分析和自动化任务。 保留 CloudWatch保留指标数据长达15个月,允许客户进行历史分析和跟踪长期趋势。日志数据的保留期可配置长达两年。 CloudTrail默认保留事件数据90天,但客户可以将保留期配置为更长:长达七年。 传递 CloudWatch支持高分辨率的一秒数据点和一分钟粒度的指标存储。指标可能以不同的间隔接收,如三分钟或五分钟。如果未指定为高分辨率,指标将默认为一分钟分辨率。数据的可用性取决于请求数据的年龄和保留计划。例如,从10天前请求一分钟数据将得到1440个数据点,而从五个月前的请求将自动调整为每小时粒度,并且没有GetMetricStatistics API输出。 通常,CloudTrail在API调用后的15分钟内提供事件。CloudTrail大约每五分钟将日志文件传递到S3存储桶。如果您的账户上没有进行API调用,则CloudTrail不会传递日志文件。此外,还可以使用Simple Notification Service(SNS)与CloudTrail一起发送新日志文件交付的通知。 查询和分析 通过查询和分析CloudWatch和CloudTrail的数据,可以提供对您的AWS环境行为的有价值洞察,帮助您识别问题、优化性能和确保合规性。请注意,AWS CloudWatch Logs和AWS CloudTrail都涉及日志记录,但它们用于不同的目的并记录不同类型的信息。

让我们探讨一些可用于查询和分析CloudWatch和CloudTrail数据的工具和技术。

AWS CloudWatch 要使用标签和聚合从AWS CloudWatch查询和分析数据,请按照以下步骤操作:

登录AWS管理控制台,并导航到CloudWatch仪表板。 在左侧导航菜单中点击“日志”部分。 选择要查询的日志组。 点击“搜索日志组”按钮打开查询编辑器。 在查询编辑器中,输入您想要在日志数据中搜索的关键字或值。 您还可以使用标签来帮助组织和筛选日志数据。标签是:

AWS CloudTrail是一项服务,可以对AWS资源的API活动进行记录并存储日志数据。通过AWS CloudTrail,您可以跟踪和监控在AWS账户中发生的操作,并且可以用于安全审计、合规性检查和操作故障排除等目的。

例如,要使用AWS CloudTrail查询AWS Lambda事务,可以使用CloudTrail Insights功能。CloudTrail Insights允许您搜索和分析CloudTrail日志数据,以识别安全性和操作趋势以及异常情况。

以下是使用AWS CloudTrail Insights查询AWS Lambda事务的步骤:

  1. 登录AWS管理控制台并导航到CloudTrail仪表板。
  2. 点击左侧导航菜单中的“Insights”部分。
  3. 点击“创建Insights查询”按钮。
  4. 在查询编辑器中,选择包含要搜索的AWS Lambda日志的CloudTrail日志组。
  5. 输入要在日志数据中搜索的关键字或值。例如,您可以搜索用于调用Lambda函数的“Invoke”操作。
  6. 使用过滤选项根据特定条件(如用户身份、事件时间或区域)缩小结果范围。
  7. 您还可以使用CloudTrail Insights查询语言执行更复杂的查询和聚合操作。例如,您可以使用以下查询搜索特定Lambda函数的所有调用:

复制代码fields eventTime, eventName, awsRegion, sourceIPAddress | filter (eventName = 'Invoke' AND requestParameters.functionName = 'my-lambda-function')

  1. 输入查询后,点击“运行查询”按钮执行查询。
  2. 查询结果将显示在查询编辑器中。您可以将结果以表格或图表形式查看。
  3. 您还可以保存查询并安排定期运行,以便随时间监视和分析AWS Lambda日志。同样的过程也适用于其他AWS服务。

实施示例: 本节将介绍使用AWS CLI和AWS控制台创建CloudWatch警报和创建跟踪的说明。对于其他方法,如使用boto3,最好参考官方的AWS文档。

创建CloudWatch警报的示例命令如下:

复制代码aws cloudwatch put-metric-alarm --alarm-name CPU_Utilization --alarm-description "当CPU利用率超过85%时触发警报" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 85 --comparison-operator GreaterThanThreshold --dimensions "Name=InstanceId,Value=i-01234567890" --evaluation-periods 1 --alarm-actions arn:aws:sns:us-west-2:123456789012:SomeTopic --unit Percent

这个命令创建一个警报,当具有实例ID“i-01234567890”的EC2实例的CPU利用率超过85%时触发。

要使用AWS管理控制台创建CloudWatch仪表板,请按照以下步骤操作:

  1. 在AWS管理控制台中导航到CloudWatch仪表板。
  2. 点击“创建仪表板”。
  3. 选择要在仪表板上显示的指标。
  4. 自定义仪表板的布局和外观。 5.保存仪表板。
    打开网易新闻 查看精彩图片

创建AWS CloudTrail跟踪的步骤如下:

  1. 在AWS管理控制台中导航到CloudTrail仪表板。
  2. 点击“创建跟踪”。
  3. 为跟踪输入名称,并选择存储日志的S3存储桶。
    打开网易新闻 查看精彩图片
  4. 如有需要,启用CloudWatch Logs。
    打开网易新闻 查看精彩图片
  5. 选择本文的Logging > Amazon CloudTrail事件部分描述的日志事件。
    打开网易新闻 查看精彩图片
  6. 以下是一个示例图: 6.保存跟踪。
    打开网易新闻 查看精彩图片

使用AWS CLI检索CloudTrail日志的示例命令如下:

复制代码aws s3api get-object --bucket aws-cloudtrail-logs-08132020-my-trail --key CloudTrail/AWSLogs/123456789012/CloudTrail/us-east-1/2023/03/27/123456789012_CloudTrail_us-east-1_20200327T0000Z_rndDZT1TtMyLlOoA.json --region us-east-1

结论: AWS CloudWatch和AWS CloudTrail是有效管理和监控AWS基础架构的不可或缺的工具。CloudWatch提供实时性能监测、警报和故障排除功能,而CloudTrail专注于记录和分析API活动,实现增强的安全性和合规性。