Amazon CloudWatch 常见问题

一般性问题

Amazon CloudWatch 是一项针对云资源和在 AWS 上运行的应用程序的 AWS 监控服务。使用 Amazon CloudWatch 可以收集和跟踪指标、收集和监控日志文件以及设置警报。Amazon CloudWatch 可以监控各种 AWS 资源,例如 Amazon EC2 实例、Amazon DynamoDB 表和 Amazon RDS 数据库实例,应用程序和服务生成的自定义指标,以及应用程序生成的、本地托管的、混合或在其他云端的任何日志文件。您可通过使用 Amazon CloudWatch 全面地了解系统的资源使用率、应用程序性能和运行状况。使用这些分析结果,您可以及时做出反应,保证应用程序顺畅运行。

要开始监控,您可以使用融合 AWS 最佳实践的自动化控制面板,查看基于账户和资源的指标与告警视图,并轻松深入分析以了解性能问题的根本原因。

您可以使用 API、命令行界面、AWS SDK 和 AWS 管理控制台访问 Amazon CloudWatch。

Amazon CloudWatch 为所有 Amazon EC2 实例接收和提供指标,应该适用于 Amazon EC2 服务目前支持的所有操作系统。

Amazon CloudWatch 集成了 AWS Identity and Access Management (IAM),可以支持您指定 AWS 账户中的用户可以执行的 CloudWatch 操作。例如,您可以创建一个向组织中的特定用户授予 GetMetricStatistics 使用权限的 IAM 策略。然后,他们可以使用该操作来检索有关您的云资源的数据。

您无法使用 IAM 控制对有关特定资源的 CloudWatch 数据的访问。例如,您无法仅为一组特定的实例或特定的 LoadBalancer 授予对 CloudWatch 数据的用户访问权限。使用 IAM 授予的权限涵盖所有通过 CloudWatch 监控的云资源。此外,您不能在 Amazon CloudWatch 命令行工具中使用 IAM 角色。

Amazon CloudWatch Logs 支持您使用现有系统、应用程序和定制日志文件来监控系统与应用程序,并进行故障排除。

借助 CloudWatch Logs,您可以近乎实时地监控日志中的特定短语、值或模式。例如,您可以针对系统日志中出错的次数设置警报,或查看应用程序日志中的 Web 请求延迟图表。然后,您可以查看原始日志数据,了解问题根源。日志数据可以在经久耐用的低成本存储器中无限期保存,您既能够访问所需数据,又无需担心填满硬盘。
Amazon CloudWatch Logs 支持您使用现有系统、应用程序和自定义日志文件来监控系统与应用程序,并进行故障排除。

CloudWatch Logs 能够监控并存储日志,以帮助您更好地了解并运行系统和应用程序。您可以通过多种方式使用 CloudWatch Logs。

实时监控应用程序和系统:您可以使用 CloudWatch Logs 通过日志数据来监控应用程序和系统。例如,CloudWatch Logs 能够追踪应用程序日志中的出错次数,并在错误率超过指定阈值时向您发送通知。CloudWatch Logs 使用日志数据进行监控,因此无需更改代码。

长期保留日志:您可以使用 CloudWatch Logs 将日志数据长期存储在高持久性且经济高效的存储中,无需担心耗尽硬盘空间。CloudWatch Logs Agent 能够支持您轻松快速地将已轮换和未轮换的日志文件从主机移动到日志服务系统。然后,您可以按需访问原始日志事件数据。

Amazon Linux、Ubuntu、CentOS、Red Hat Enterprise Linux 和 Windows 均支持 CloudWatch Logs Agent。此代理程序支持在主机上监控单个日志文件。

符合。CloudWatch Logs Agent 集成了 Identity and Access Management (IAM),同时支持访问密钥和 IAM 角色。

Amazon CloudWatch Logs Insights 是用于 CloudWatch Logs 的一项随用随付的交互式集成日志分析功能。它允许开发人员、操作人员和系统工程师搜索和可视化其日志,以帮助他们了解、改进和调试其应用程序。Logs Insights 与 CloudWatch 完全集成,让您能够管理、探索和分析自己的日志。您还可以利用 CloudWatch 指标、警报和控制面板结合日志,获取对应用程序的全面可视性。这样能够支持您了解自己的应用程序、做出改进,并快速地找出和修复问题,从而让您能够继续快速地创新。您可以使用聚合、筛选条件和正则表达式编写查询,以从日志中获取可行的见解。您还可以可视化时间序列数据,深入查看各个日志事件以及将查询结果导出到 CloudWatch 控制面板。

您可以立即开始使用 Logs Insights 对正在发送到 CloudWatch Logs 的所有日志运行查询。无需进行设置,也无需管理基础设施。您可以从 AWS 管理控制台访问 Logs Insights,也可以使用 AWS 软件开发工具包通过应用程序以编程方式访问。

Amazon CloudWatch 异常检测应用机器学习算法来连续分析系统和应用程序的单时间序列,确定正常基线并发现异常,需要的用户干预极少。它允许您创建基于自然指标模式(例如一天中的时间、星期几、季节性或变化的趋势)自动调整阈值的告警。您还可以使用控制面板上的异常检测将指标可视化,监控、隔离指标中的意外变化并进行故障排除。

异常检测非常容易上手。在 CloudWatch 控制台中,转至导航窗格中的告警以便创建告警,或者通过指标,将指标的预期值以区段的形式叠加到图表上。您还可以通过 AWS CLI、AWS SDK 或 AWS CloudFormation 模板启用异常检测。要了解详情,请访问 CloudWatch 异常检测文档和定价页面

Amazon CloudWatch 现已包含 Contributor Insights,它可以分析时间序列数据,进而了解影响系统性能的几大因素。安装完成后,Contributor Insights 将持续运行,用户无需干预。这有助于开发人员和操作人员在事件运行期间更快地隔离、诊断和补救问题。

在 CloudWatch 控制台中,转到导航窗格中的 Contributor Insights,创建 Contributor Insights 规则。您还可以通过 AWS CLI、AWS 开发工具包或 AWS CloudFormation 模板启用 Contributor Insights。所有商业 AWS 区域均已推出 Contributor Insights。要了解更多信息,请访问 CloudWatch Contributor Insights 文档。

Amazon CloudWatch ServiceLens 功能可让您在一个地方直观呈现和分析应用程序的运行状况、性能和可用性。CloudWatch ServiceLens 将 CloudWatch 指标和日志以及来自 AWS X-Ray 的跟踪结合在一起,为您提供应用程序及其依赖关系的完整视图。这能让您快速查明性能瓶颈、找出应用程序问题的根本原因和确定受影响的用户。利用 CloudWatch ServiceLens,您可以从三个主要方面了解应用程序:基础设施监控(使用指标和日志了解支持应用程序的资源)、事务监控(使用跟踪了解资源之间的依赖关系)及最终用户监控(使用 Canary 监控您的终端节点并在您的最终用户体验降低时通知您)。

如果您已使用 AWS X-Ray,那么您可以根据原定设置在 CloudWatch 控制台上访问 CloudWatch ServiceLens。如果您尚未使用 AWS X-Ray,则首先可以使用 X-Ray 开发工具包在应用程序中启用 AWS X-Ray。Amazon CloudWatch ServiceLens 已在 AWS-X-Ray 可用的所有公共 AWS 区域推出。要了解更多信息,请访问 Amazon CloudWatch ServiceLens 的相关文档。

借助 Amazon CloudWatch Synthetics,您可以更加轻松地监控应用程序终端节点。它全天候对终端节点运行测试,并在应用程序终端节点运行不正常时立即发出提醒。可以自定义测试,在应用程序中检查可用性、延迟、交易、坏链接或死链接、分步任务的完成情况、页面加载错误、UI 资产加载延迟、复杂的向导流或检出流。您还可以使用 CloudWatch Synthetics 隔离警报应用程序终端节点,并将它们映射回底层基础设施问题,以缩短解决问题的平均时间。

CloudWatch Synthetics 非常容易上手。您可以在几分钟内编写自己的第一个通过的 Canary。要了解详情,请访问 Amazon CloudWatch Synthetics 的相关文档

定价

请参阅我们的定价页面,了解最新信息。

所有 Amazon EC2 实例类型都会自动将关键运行状况和性能指标免费发送到 CloudWatch。如果启用 EC2 详细监控,则将根据实例发送到 CloudWatch 的指标数量向您收取自定义指标的费用。为实例发送的指标数量取决于实例类型,有关详细信息,请参阅实例的可用 CloudWatch 指标

除非另行说明,否则我们的价格不包含适用的税费和关税(包括增值税和适用销售税)。了解详情。

在 2017 年 7 月之前,CloudWatch 费用分开显示在 AWS 账单与成本和使用率报告中的两个不同部分。由于历史原因,CloudWatch 警报、CloudWatch 指标和 CloudWatch API 的使用费显示在您账单的“Elastic Compute Cloud (EC2)”详情部分,而 CloudWatch Logs 和 CloudWatch 控制面板的使用费显示在“CloudWatch”详情部分。为了合并和简化您的每月 AWS CloudWatch 使用费和账单,我们将 CloudWatch 指标、警报和 API 的使用费从账单的“EC2”部分移到了“CloudWatch”部分,从而有效地将您的所有 CloudWatch 监控费用整合到了“CloudWatch”部分。请注意,这不会影响您的 AWS 账单总额。您的账单与成本和使用率报告现在在一个部分即可显示 CloudWatch 使用费。

另外,可将 CloudWatch 中名为“预估费用”的账单指标看作“总预估费用”,并且还可按服务对该指标进行细分。“总预估费用”指标不会发生变化。但是,当“ServiceName”维度等于“AmazonEC2”和“ServiceName”等于“AmazonCloudWatch”时,按服务细分的“EstimatedCharges”指标将会发生变化。由于账单合并,您可能会发现您的 Amazon EC2 账单指标减少了,而 Amazon CloudWatch 账单指标增加了,因为使用率和账单费用从 EC2 移到了 CloudWatch。

Logs Insights 按查询定价,并基于查询扫描的摄取日志数据量收费。如需了解关于定价的其他详细信息,请查看 CloudWatch 定价

会。如果手动取消查询,您需要为取消查询前已扫描的提取日志数据量付费。

否。如果查询失败,系统不会向您收取费用。

跨账户可观测性

CloudWatch 中的跨账户可观测性让您可以监控跨越一个区域内多个账户的应用程序并对其进行故障排除。使用跨账户可观测性,您可以无缝搜索、可视化和分析您的指标、日志和跟踪,而不必担心账户边界问题。您可以从应用程序的聚合跨账户视图开始,以直观地识别出现错误的资源,并深入研究相关的跟踪、指标和日志以找出问题的根源。跨账户监控支持的无缝跨账户数据访问和导航可帮助您减少解决问题所需的手动工作,并节省宝贵的解决时间。跨账户可观测性是对 CloudWatch 统一可观测性功能的补充。

跨账户可观测性引入了两个新的账户概念。“监控账户”是一个中央 AWS 账户,可以查看跨其他账户生成的可观测性数据并与之交互。“源账户”是一个单独的 AWS 账户,它为驻留在其中的资源生成可观测性数据。一旦您确定了您的监控账户和源账户,您就可以通过选择要与您的监控账户共享哪些遥测数据来完成跨账户监控配置。您只需几分钟即可轻松设置中央监控账户,并可以从中全面了解跨多个相关账户或整个 AWS 组织部署的应用程序的运行状况和性能。借助 CloudWatch 中的跨账户可观测性,您可以鸟瞰可能影响服务可用性的跨应用程序依赖关系,并且可以主动查明问题并进行故障排除,从而缩短平均解决时间。

使用跨账户可观测性,您可以从中央视图搜索跨多个账户存储的日志组,运行跨账户 Logs Insights 查询、Live Tail 分析,并跨账户创建 Contributor Insights 规则以识别生成日志条目的前 N 个贡献者。您可以使用指标搜索在整合视图中可视化来自多个账户的指标,创建警报来评估来自其他账户的指标以收到异常和趋势问题的通知,并在集中式控制面板上可视化它们。您还可以使用此功能设置单个跨账户指标流,以包含跨 AWS 区域中多个 AWS 账户的指标。借助跨账户可观测性,您还可以使用 ServiceLens 查看跨账户应用程序的交互式地图,并一步深入到相关指标、日志和跟踪。

CloudWatch 中的跨账户监控和跨账户跨区域功能都将在 CloudWatch 控制台上可用。当您在 CloudWatch 中设置跨账户可观测性时,跨账户、跨区域下拉菜单将从控制台中删除。请注意,CloudWatch 中的跨账户可观测性体验一次在一个区域内可用。跨账户、跨区域功能允许通过 IAM 角色访问组织范围的遥测数据。CloudWatch 中的跨账户可观测性使用可观察性访问管理器 API 来定义访问策略。有关更多信息,请参阅我们的文档。

应用程序监控

Amazon CloudWatch 应用程序信号[预览版]通过适用于 CloudWatch 的 AWS 管理控制台中的标准化应用程序指标和以应用程序为中心的可观测性视图扩展了 Amazon CloudWatch。您无需编写自定义检测即可开始使用。新视图总结了应用程序运行状况,以帮助确定业务影响和优先级,然后提供深入分析以方便地确定根本原因。

您可以在 AWS 管理控制台中为 CloudWatch 打开应用程序信号,或者在 AWS 资源(例如 Amazon EKS 集群)上启用 CloudWatch 时打开应用程序信号。应用程序检测包含在 Amazon CloudWatch Agent 中。应用程序服务及其 API 和依赖项在摘要视图和服务地图上发现和可视化。为了反映业务影响和重要性,只需点击几下,您就可以根据标准应用程序指标、真实用户或综合监视器创建服务级别目标(SLO)。控制台中的“启用更多 APM”视图提供了受监控和未受监控资源的视图,允许客户逐步添加应用程序可见性。您可以使用 CloudWatch 设置来增加对关键服务的跟踪采样,并捕获更多关键交易示例,例如付款订单。要添加外部可用性监控或 UI 工作流程,您可以添加合成金丝雀,并添加客户端可见性,在其 Web 应用程序上启用 RUM 遥测。

Amazon CloudWatch 应用程序信号[预览版]可发现应用程序服务,例如在 EKS 中运行的抵押贷款支付处理器,并针对 API 的数量、延迟、错误和故障生成一组标准应用程序指标(例如用于添加用户、下订单、付款等)和依赖项(例如应用程序服务之间的调用、AWS 服务或外部端点的调用)。客户可以通过定义服务级别目标来反映应用程序服务、其 API 和依赖项的业务影响和重要性。AWS 管理控制台中适用于 CloudWatch 的新的以应用程序为中心的可观测性视图将根据 SLO 总结应用程序运行状况,并提供深入分析以方便地确定根本原因。

使用应用程序信号获得集成的应用程序性能监控体验。通过集成监控,您可以自动收集和关联应用程序遥测数据,同时优先考虑业务关键应用程序。您还可以利用警报、跟踪和事件数据来采取自动化操作并减少从问题中恢复所需的时间(MTTR)。您想要监控在 Amazon EKS、Amazon EC2、Amazon ECS、数据库、组件或本地资源上运行的应用程序。只需指定要监控的资源,并在 CloudWatch 控制台中启用 Amazon EKS 的应用程序信号,无需手动配置。对于所有其他应用程序环境,您可以快速部署 CloudWatch 代理并开始监控您的应用程序。借助应用程序信号,您可以创建、衡量和跟踪与您的业务和运营 KPI 相一致的 SLO。SLO 对于管理关键应用程序、提高可用性、减少停机时间和实现一致的客户体验至关重要。您需要访问所有应用程序的全面视图并能够管理应用程序性能。利用自动、预构建和标准化的控制面板来处理您的所有应用程序、服务和遥测数据。这些可视化功能可帮助您快速扫描和访问影响应用程序的指标,例如数量、可用性延迟和错误。应用程序信号服务地图使您能够深入了解跟踪、API 和计算资源,以全面了解应用程序问题的根本原因。Amazon CloudWatch RUM 和 Amazon CloudWatch Synthetics 在应用程序信号中的集成在单一视图中为您提供实时用户数据和金丝雀数据。如果您需要在影响任何最终用户之前快速查明代码、依赖项或托管环境中的根本原因,这一点非常重要。

CloudWatch Application Insights 可以帮助您监控使用 Amazon EC2 实例以及其他应用程序资源的应用程序。它可以跨应用程序资源和技术堆栈(例如,Microsoft SQL Server 数据库、Web(IIS)和应用程序服务器、操作系统、负载均衡器和队列)识别并设置关键指标、日志和警报。它可以持续监控指标和日志,以检测和关联异常和错误。当检测到错误和异常时,Application Insights 会生成 CloudWatch Events,您可以使用它们来设置通知或采取操作。为了帮助排除故障,它为检测到的问题创建自动化控制面板,其中包括相关指标异常和日志错误,以及为您指出潜在根本原因的其他见解。

容器监控

CloudWatch 容器见解提供了监控、排查容器化应用程序和微服务和针对其发布警报的功能。容器见解简化了影响容器环境的性能问题的隔离和分析。DevOps 和系统工程师可以访问 CloudWatch 控制台中的自动控制面板,获得按容器组(pod)/任务、容器和服务汇总 Amazon Elastic Container Service for Kubernetes(EKS)Amazon Elastic Container Service(ECS)AWS FargateKubernetes 集群的性能和运行状况的指标、日志和分布式跟踪的端到端运营可见性。

对 Container Insights(EKS)具有增强可观测性的 Container Insights 使您能够直观地在 EKS 容器层上向上和向下钻取,并轻松发现单个容器中的内存泄漏等问题,从而缩短解决问题的平均时间。借助控制面板指标,您现在可以监控自动扩展状态并在自动测试功能中规划测试集群生命周期,以提高运营效率。通过对 EKS 的增强可观测性,您现在可以按资源消耗对集群、节点或工作负载进行排序,快速识别异常,设置自己的警报以进行密切监控,并在最终用户体验受到影响之前主动缓解风险。

符合。通过对 Amazon Elastic Kubernetes Service(EKS)具有增强可观测性的 Container Insights,您可以监控控制面板状态。例如,您可以使用它来了解自动扩展状态并在自动化测试功能中规划测试集群生命周期。

对 Amazon Elastic Kubernetes Service(EKS)具有增强可观测性的 Container Insights 提供开箱即用的详细运行状况和性能指标,其中包括容器级 EKS 性能指标、Kube 状态指标和 EKS 控制面板指标,以更快地隔离问题并进行故障排除。增强的可观测性使客户能够直观地在各个容器层中向上和向下钻取,并轻松发现诸如单个容器中的内存泄漏之类的问题,从而缩短解决问题的平均时间。借助控制面板指标,客户现在可以监控自动扩展状态并在其自动测试功能中规划测试集群生命周期,以提高运营效率。通过增强的可观测性,客户现在可以按资源消耗对集群、节点和工作负载进行排序,快速识别异常,设置自己的警报以进行密切监控,并在最终用户体验受到影响之前主动缓解风险。增强可观测性是一项可选功能。不具有增强可观测性的容器洞察可提供集群和服务级别的汇总指标。

符合。您可以决定在每个集群的基础上使用具有或不具有增强可观测性的 Container Insights。使用集群信息视图中的“附加组件”选项卡创建集群后,您可以通过在集群中安装适用于 EKS 的 CloudWatch 可观测性附加组件来增强集群的可观测性。请参阅 CloudWatch Container Insights 文档,了解如何配置 CloudWatch 代理以增强 EKS 的可观测性。

具有增强可观测性的 Container Insights 支持 Amazon EKS。

只需单击几下,就可以开始从容器和集群中收集详细的性能指标、日志和元数据,或者启用 CloudWatch 可观测性附加组件以增强可观测性。要开始使用 Container Insights,请按照 Amazon CloudWatch Container Insights 文档中提供的步骤进行操作。

有关 Container Insights 定价的更多详细信息,请访问 CloudWatch 定价页面

否,目前受支持的指标类型为表盘图和计数器。计划将在即将推出的版本中支持直方图和汇总指标。

Prometheus 是一个受欢迎的开源监控项目,它是 Cloud Native Compute Foundation(CNCF)的一部分。该开源社区已经构建了 150 多个插件,并定义了一个框架,开发运营团队可以使用该框架通过基于拉取的方法公开要从应用程序中收集的自定义指标。借助这项新功能,DevOps 团队可以自动发现针对容器化工作负载的服务,例如 AWS App Mesh、NGINX 和 Java/JMX。他们随后可以在这些服务上公开自定义指标,并将指标摄取到 CloudWatch 中。通过安排 Prometheus 指标的收集和聚合,CloudWatch 用户可以在减少所用监控工具数量的同时,对应用程序性能下降和故障进行监控、故障排除和警报。

Prometheus 指标将会自动摄取为 CloudWatch 自定义指标。保留期为每个指标数据点 15 个月,并且会自动汇总(3 小时可用 <60 秒,15 天可用 1 分钟,63 天可用 5 分钟,15 个月可用 1 小时)。要了解更多信息,请参阅 CloudWatch 指标保留文档

符合。每个 Kubernetes(k8s)集群均拥有其自己的事件日志组(如,/aws/containerinsights//prometheus)及自己的可配置保留期。有关详细信息,请参阅日志组保留文档

否。所有指标均摄取为 CloudWatch Logs 事件,可使用 CloudWatch Logs Insights 查询对其进行查询。有关更多信息,请参阅 CloudWatch Logs Insights 搜索语言语法文档

您需要支付所使用的以下服务的费用:(1) 摄取的 CloudWatch Logs (GB),(2) 存储的 CloudWatch Logs,以及 (3) CloudWatch 自定义指标。请参阅 CloudWatch 定价页面,了解您所在的 AWS 区域的定价详情。

互联网监控

Amazon CloudWatch 网络监测仪可帮助您持续监控 AWS 托管的应用程序和应用程序最终用户之间的互联网可用性和性能指标。借助网络监测仪,您可以快速可视化问题的影响、查明受影响的位置和提供商,进而采取行动来提升最终用户的网络体验。您不仅可以从整体上了解流量模式和运行状况事件,还可以深入了解不同地理粒度的事件信息。如果此问题由 AWS 网络所致,您将收到 AWS Health Dashboard 通知,告知您 AWS 为缓解问题将要采取的措施。网络监测仪还提供见解和推荐,帮助您通过使用其他 AWS 服务改进用户体验。

要使用网络监测仪,您需要创建一个监测仪并将应用程序的资源、Amazon Virtual Private Clouds (VPC)、CloudFront 分配或 WorkSpaces 目录与其相关联,以使网络监测仪能够了解您的应用程序的互联网流量所在的位置。然后,网络监测仪将提供来自 AWS 的网络测量结果,这些测量结果特定于与您的应用程序通信的位置和网络。

然后,您可以使用 CloudWatch 控制面板了解运行状况事件、查看性能和可用性分数、探索不同地理粒度的应用程序历史数据,并深入了解如何配置应用程序以提高最终用户的性能。

网络监测仪将网络测量结果发布到 CloudWatch Logs 和 CloudWatch Metrics,因此,您可以轻松使用 CloudWatch 工具全面了解特定于您的应用程序的地理位置和网络中的应用程序运行状况。网络监测仪还会将运行状况事件发送到 Amazon EventBridge,让您可以设置通知。

在探索网络监测仪时,熟悉服务中引用的组件和概念会有所帮助。网络监测仪使用或引用以下术语:监测、CloudWatch 日志、CloudWatch 指标、城市网络、运行状况事件、自治系统号(ASN)、受监测的资源、网络测量结果、往返时间、传输的字节数以及性能和可用性分数。

阅读文档中对这些组件的简短描述。

网络监测仪的定价包含以下组成部分:每个受监测资源的费用、每个城市网络的费用以及发布到 CloudWatch Logs 的诊断日志的费用。有关更多信息,请访问 Amazon CloudWatch 网络监测仪定价页面

对于网络监测仪,区域支持取决于您添加到监测仪的资源类型。对于 Amazon CloudFront 分配和 Amazon WorkSpaces 目录,网络监测仪在所有受支持的区域均可用。对于 Amazon Virtual Private Clouds (VPC),来自选择加入区域的 VPC 只能添加到在同一区域中创建的监测仪。有关受支持的 AWS 区域的完整列表,请参阅 Amazon CloudWatch 网络监测仪端点。

Lambda 监控

CloudWatch Lambda Insights 是一种用于监控、排查问题及优化您的 Lambda 函数性能和成本的功能。Lambda Insights 简化了影响 Lambda 环境的性能问题的隔离和分析。DevOps 和系统工程师可访问 CloudWatch 控制台中的自动化控制面板,从而能够端到端地可视化操作指标、日志和轨迹,并汇总 AWS Lambda 函数的性能和正常运行状态。

遵循 CloudWatch Lambda Insights 文档中的这些步骤,即可开始从您的 Lambda 函数中收集详细的性能指标、日志和元数据。

CloudWatch Lambda Insights 自动从 Lambda 函数中作为 CloudWatch Logs 而摄取的性能事件中收集自定义指标。有关定价的更多详细信息,请访问 CloudWatch 定价页面

网络监控

Network Monitor 提供对连接 AWS 托管应用程序和本地目标的网络性能和可见性的可见性。Network Monitor 使您能够快速可视化混合网络连接的数据包丢失和延迟,设置警报和阈值,然后采取措施改善终端用户的网络体验。如果您的混合网络连接通过 AWS Direct Connect 进行,则 Network Monitor 允许您在几分钟内确定任何网络性能下降的根源。

Network Monitor 为监控器中配置的每个探测器提供往返延迟和数据包丢失。此外,对于通过 AWS Direct Connect 进行的混合网络连接,Network Monitor 会提供 AWS Network Health Indicator 的指标。这些指标按 VPC 子网和每个目标端点汇总并发布到 Amazon CloudWatch。然后,您可以从 Network Monitor 控制台中访问 CloudWatch 控制面板,以查看这些指标、设置警报并查看 AWS 网络运行状况,以了解网络问题何时影响了性能。您还可以通过观察记录指标的 30 天历史记录对数据包丢失和往返延迟进行基准测试,或设置警报以接收网络事件通知。

Network Monitor 定价包含以下组成部分:每个受监控资源的费用和发布到 CloudWatch 的指标的费用。有关更多信息,请参阅 Amazon CloudWatch 定价并导航到 Network Monitor 选项卡。

要使用 Network Monitor,您需要创建一个监视器并将应用程序的资源与之关联。您可以选择属于您的 Amazon Virtual Private Cloud(VPC)的源子网,然后选择本地网络中的目标 IP 地址。Network Monitor 在单个监视器内创建可能的源和目标组合的网格,每种组合都称为探测器。Network Monitor 的创建完全由 AWS 托管,您应该能够在设置监控器后的几分钟内查看实时指标。Network Monitor 将这些实时指标提供给 CloudWatch Metrics,因此您可以轻松地使用 CloudWatch 工具更好地了解特定网络的 AWS 区域的网络运行状况。有关详细设置说明,请参阅 CloudWatch 文档

数字化体验监控

借助 Amazon CloudWatch DEM,您可以监控终端用户对应用程序的体验(包括性能、可用性和易用性)。 

发现间歇性问题,即使没有用户流量也能得到通知,并使用 CloudWatch Synthetic Canary 监控端点和 UI。CloudWatch RUM 与综合监控相补充,以了解终端用户的影响,并获得数字体验的更好可见性。借助 CloudWatch Evidently,通过试验和验证新设计和新功能,改善终端用户的数字化体验。 

Amazon CloudWatch RUM 是一项真实的用户监控功能,使您可以了解应用程序的客户端性能,帮助您减少解决问题的平均时间 (MTTR)。借助 CloudWatch RUM,您可以实时收集关于 Web 应用程序性能的客户端数据,以识别和调试问题。它对 CloudWatch Synthetics 数据进行补充,使您更加了解终端用户的数字化体验。你可以将性能异常可视化,并使用相关调试数据(如错误信息、堆栈跟踪和用户会话)来修复性能问题(如 JavaScript 错误、崩溃和延迟)。你还可以了解终端用户影响的范围,包括会话数量、地理位置或浏览器。CloudWatch RUM 聚合应用程序中关于用户旅程的所有数据,从而帮助您确定要启动哪些功能和优先修复哪些错误。

在 CloudWatch RUM 中创建一个应用程序监视器,并在应用程序的 HTML 标头中添加轻量级 Web 客户端。然后使用 CloudWatch RUM 的控制面板启动,以接收来自不同地理位置、设备、平台和浏览器的用户洞察。 

借助 Amazon CloudWatch Evidently,您可以在推出新功能供普遍使用之前进行试验,以提前发现意外后果,从而减少与推出新功能有关的风险。 Evidently 能够使您在发布新功能之前在整个应用程序堆栈中验证这些功能,确保所发布的功能更加安全。 在发布新功能时,您可以对小范围用户群开放,监控页面加载时间或转化率等关键指标,然后调高流量。Evidently 还允许开发人员测试不同的设计方案,收集用户数据,在生产中发布最有效的设计。该服务可帮助您解释试验结果并采取行动,而无需高级统计知识。您可以在试验进行时使用 Evidently 统计引擎提供的洞察(例如任何时候的 p 值和置信区间)做出决策。

您可以使用 CloudWatch RUM JavaScript 代码段收集客户端的用户旅程数据和性能指标。您还可以使用 Evidently API 按需添加自定义指标,如转换率。下一步,您可以使用 CloudWatch Evidently SDK 测试需要检测的新功能,该功能使您能够控制用户如何访问新功能。现在,您可以使用 AWS 控制台 或 CLI 运行启动和试验。 

借助 Amazon CloudWatch Synthetics,您可以更加轻松地监控应用程序终端节点。它全天候对终端节点运行测试,并在应用程序终端节点运行不正常时立即发出提醒。可以自定义测试,在应用程序中检查可用性、延迟、交易、坏链接或死链接、分步任务的完成情况、页面加载错误、UI 资产加载延迟、复杂的向导流或检出流。您还可以使用 CloudWatch Synthetics 隔离警报应用程序终端节点,并将它们映射回底层基础设施问题,以缩短解决问题的平均时间。

CloudWatch Synthetics 非常容易上手。您可以在几分钟内编写自己的第一个通过的 Canary。要了解详情,请访问 Amazon CloudWatch Synthetics 的相关文档

这两种服务可以单独使用,但结合使用效果更好。

AppConfig 是 AWS Systems Manager 的一项功能,可用于创建、管理和部署功能标志和其他应用程序配置。在开发新功能时,您可以使用 AppConfig 将新功能部署到生产中,但是可以把功能隐藏在标志切换后面。准备好启动之后,只需更新配置即可立即或逐渐发布此功能。

如需更高级的功能管理和试验,您可以使用 Evidently,这是 Amazon CloudWatch 的一项新功能。借助 Evidently,您可以根据不同的功能变化运行试验,将其与基准功能对比,或如期发布功能变化,同时监控业务指标(如访问持续时间和收入)。Evidently 还与提供客户端侧应用程序性能监控功能的 CloudWatch RUM 集成,是您能够直接在 Evidently 中使用 RUM 指标。

指标分析

CloudWatch Metrics Insights 是一个高性能查询引擎,它可以帮助您实时切割运营指标,使用标准 SQL 查询动态地创建聚合。借助 Metrics Insights,您可以通过大规模分析指标,了解应用程序的运行状况和性能状况。它与 CloudWatch 控制面板集成,因此您可以将查询保存到您的运行状况和性能控制面板中,以主动监控和快速查明问题。

开始使用前,只需单击 CloudWatch 控制台上的指标选项卡,您将在“查询”选项卡下发现 Metrics Insights 作为内置的查询引擎,无需额外付费。Metrics Insights 配备标准 SQL 语言,但也可以使用可视化查询生成器开始使用 Metrics Insights。要使用查询生成器,请可视化选择感兴趣的指标、命名空间和尺寸,控制台将根据您的选择自动构建 SQL 查询。您可以使用查询编辑器随时在原始 SQL 查询中键入内容,深入挖掘并在进一步精细细节确定问题。Metrics Insights 还提供了一组即时可用的示例查询,这可以帮助您立即开始监控和调查应用程序的性能。Metrics Insights 也可以通过 CloudFormation、AWS SDK 和 CLI 以编程方式使用。

AWS 资源和自定义指标监控

Amazon CloudWatch 可使您监控 AWS 上运行的 AWS 云资源和应用程序。指标将自动提供给多种 AWS 产品和服务,包括 Amazon EC2 实例、EBS 卷、Elastic Load Balancer、Auto Scaling 组、EMR 作业流、RDS DB 实例、DynamoDB 表、ElastiCache 集群、RedShift 集群、OpsWorks 堆栈、Route 53 状态检查、SNS 主题、SQS 队列、SWF 工作流和 Storage Gateway。您还可以监控自己的应用程序和服务生成的自定义指标。

您可以发布和存储低至 1 秒钟分辨率的自定义指标。CloudWatch 于 2016 年 11 月 1 日推出了更长的指标保留期,此项功能使得客户所有指标的存储期从之前的 14 天延长为 15 个月。CloudWatch 支持以下几种指标数据保留方式:

时段低于 60 秒的数据点可保留 3 个小时。这些数据点是高分辨率自定义指标。

时段为 60 秒(1 分钟)的数据点可保留 15 天

时段为 300 秒(5 分钟)的数据点可保留 63 天 

时段为 3600 秒(1 小时)的数据点可保留 455 天(15 个月)

您可以将最初发布的时段较短的数据点聚合在一起,以获取长期存储。例如,如果您以 1 分钟为间隔收集数据,则分辨率为 1 分钟的数据可保留 15 天。15 天之后,此数据仍然可用,但已聚合起来,只能以 5 分钟的分辨率进行检索。63 天后,这些数据将进一步聚合,并以 1 小时的分辨率进行保留。如果您需要比上述期限更长的指标保留期,可以使用 GetMetricStatistics API 检索离线数据点或不同存储的数据点。

此项功能目前在以下地区可用:美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、美国西部(加利福尼亚北部)、欧洲(爱尔兰)、欧洲(法兰克福)、南美洲(圣保罗)、亚太地区(新加坡)、亚太地区(东京)、亚太地区(首尔)、亚太地区(孟买)、亚太地区(悉尼)、欧洲(伦敦)、加拿大(中部)、美国东部(俄亥俄)和中国(北京)。

CloudWatch 支持的最小分辨率是 1 秒钟数据点,这是一种高分辨率指标,或者,您也可以使用 1 分钟的时间间隔存储指标。有时,Cloudwatch 会以各种时间间隔接收指标,例如 3 分钟或 5 分钟的时间间隔。如果您没有将指标指定为高分辨率,可以在 PutMetricData API 请求中设置 StorageResolution 字段,根据原定设置,CloudWatch 将以 1 分钟的分辨率聚合并存储指标。

系统会按上述保留期限中定义的分辨率提供指标,具体取决于请求的数据在生成后经过的时间。例如,如果您在 10 天前的某天请求 1 分钟数据,您会收到 1440 个数据点。但是,如果您在 5 个月前请求 1 分钟数据,UI 会自动将时间间隔更改为 1 小时,并且 GetMetricStatistics API 不会返回任何输出。

CloudWatch 不支持指标删除功能。指标过期与否取决于上述保留期限。

可以,Amazon CloudWatch 支持查询多个来源的数据,帮助您监控 AWS、本地和其他云上的指标。现在,您可以在几分钟(而不是几小时)内排除关键事件的故障,并了解应用程序的运行状况,更快地获得洞察以实现无缝操作。将所有监控工具的查询、可视化和警报集中在一处。

否。您始终可以按照上述保留期限,检索任何 Amazon EC2 实例的指标数据。但是,CloudWatch 控制台会将对指标的搜索限制到某个指标被摄取后 2 周内,以确保最新实例显示在您的命名空间中。

符合。对于已终止的 Amazon EC2 实例或已删除的 Elastic Load Balancer,Amazon CloudWatch 会将其指标存储 15 个月。

首先,导航到 Amazon CloudWatch 控制台中的指标查询构建器并打开数据来源选择器。通过选择器,您可以启动向导来添加新的数据来源以进行查询和警报。您选择要查询的数据来源并指定访问详细信息,例如 URL 或路径和凭证。有关更多详细信息,请参阅文档

如果在 5 分钟和 1 分钟时段内查看同一时间窗口,您可能会发现数据点显示在图形中不同的位置上。对于您在图形中指定的时段,Amazon CloudWatch 会查找所有可用的数据点,再计算出单个聚合点来代表整个时段。在 5 分钟时段的情况下,该单一数据点会处于 5 分钟时间窗口的开头。在 1 分钟时段的情况下,该单一数据点会处于 1 分钟标记上。我们建议使用 1 分钟时段来进行故障诊断,以及其他要求最精确的时段图形的活动。

您可以使用 Amazon CloudWatch 来监控应用程序、脚本和服务生成的数据。自定义指标即您向 Amazon CloudWatch 提供的任何指标。例如,您可以使用自定义指标来监控网页加载时间、请求出错率、实例进程或线程数,以及应用程序所执行的工作量。您可以通过使用 PutMetricData API、适用于 Windows 和 Linux 的监控脚本样本、CloudWatch collectd 插件以及 AWS 合作伙伴提供的多种应用程序和工具,开始使用自定义指标。

自定义指标可采取的分辨率如下:

标准分辨率,数据采用 1 分钟时间间隔

高分辨率,数据采用 1 秒钟时间间隔

根据原定设置,系统会以 1 分钟的分辨率将指标存储在 CloudWatch 中。通过在 PutMetricData API 请求中将 StorageResolution 参数设置为 1,您可以将指标定义为高分辨率。如果您没有设置可选的 StorageResolution 参数,根据原定设置,CloudWatch 将以 1 分钟的分辨率存储指标。

在发布高分辨率指标时,CloudWatch 将以 1 秒钟的分辨率进行存储,您可以使用 1 秒钟、5 秒钟、10 秒钟、30 秒钟的时段或 60 秒钟的任意倍数的时段进行读取和检索。

自定义指标的保留期限与上述保留期限相同。

目前,只有您发布到 CloudWatch 的自定义指标是以高分辨率提供的。高分辨率自定义指标以 1 秒钟的分辨率存储在 CloudWatch 中。高分辨率是由 PutMetricData API 请求中的 StorageResolution 参数字段(参数值为 1)定义的,该字段不是必填字段。如果您没有指定可选 StorageResolution 字段的值,根据原定设置,CloudWatch 将以 1 分钟的分辨率存储自定义指标。

否。高分辨率自定义指标与标准 1 分钟自定义指标的定价方式相同。

您可以使用自定义指标、CloudWatch Logs 或两者结合的方式来监控自己的数据。如果您的数据并非以日志格式生成,例如操作系统进程或性能测量信息,您可能需要使用自定义指标。或者,您可能期望编写或使用自己的或由 AWS 合作伙伴提供的应用程序或脚本。如果您想要存储并保存单独的测量数据和其他详细信息,可能需要使用 CloudWatch Logs。

您可以检索 Amazon CloudWatch 指标的以下统计值:平均值、合计、最小值、最大值和采样计数,并绘制图表和设置告警。您还可以计算一分钟或 60 秒倍数的时间间隔的统计数据。对于高分辨率自定义指标,您可以计算从 1 秒到 3 小时内任意时间段内的统计数据。

适用于 .NET 和 SQL Server 的 Amazon CloudWatch Application Insights 是一项功能,您可以借此轻松监控您的 .NET 和 SQL Server 应用程序。该功能有助于跨应用程序资源和技术堆栈识别和设置关键指标和日志,即数据库、Web (IIS) 应用程序服务器、操作系统、负载均衡器、队列等。它会持续监控这些遥测数据,以检测和关联异常和错误,并向您通知应用程序中的任何问题。为帮助排查问题,它会创建自动化控制面板来直观呈现它检测到的问题,包括相关的指标异常和日志错误,以及帮助您分析潜在根源的其他洞察。

自动识别应用程序指标和日志:它会扫描您的应用程序资源,推荐要监控的指标和日志,并自动对这些指标和日志进行设置,让您可以更轻松地设置应用程序监控。 

智能检测问题:它使用内置规则和机器学习算法来动态监控和分析应用程序堆栈中的问题症状,并检测应用程序问题。借此,您可以减少在处理各指标峰值、事件或日志异常方面的开销,只需接收实际问题以及这些问题的上下文信息即可。

提高问题排查速度:它会评测所检测到的问题,为您提供相关洞察,例如所检测到的问题的可能根源,以及受问题影响的指标和日志的列表。您可以针对生成的洞察提供反馈,让问题检测引擎更了解您的使用案例。

板载应用程序:通过选择与您要监控的应用程序关联的 AWS 资源组来指定该应用程序。

确定应用程序组件:它会分析您的应用程序资源,以确定应用程序组件(独立资源或相关资源组,例如自动扩缩组和负载均衡器组)。您还可以通过将资源分组来自定义组件,以获得更好的见解并轻松进行注册。

启用监控:对于应用程序组件,您可以指定技术层,即 IIS 前端层、.NET 辅助角色层等。根据您的选择,它会为您推荐一组可以根据您的需求进行自定义的指标和日志。保存这些“监控器”之后,适用于 .NET 和 SQL Server 的 Application Insights 会设置 CloudWatch,以代表您收集这些信息。

设置完成之后,适用于 .NET 和 SQL Server 的 Application Insights 会组合使用预构建规则和机器学习模型来开始确定应用程序问题。它会在 CloudWatch 上创建自动化控制面板,其中包含检测到的问题列表、这些问题的详细视图,以及相关的异常和错误。

CloudWatch Metric Streams 是一种功能,支持您以最少的设置和配置将 CloudWatch 指标连续流式传输到您选择的目的地。这是一种完全托管的解决方案,无需编写任何代码或维护任何基础设施。只需点击几下,您就可以向目的地(如 Amazon Simple Storage Service (S3))配置指标流。您还可以将指标发送给选定的第三方服务提供商,使运营仪表板保持最新。

Metric Streams 提供了一种无需轮询 API 即可从 CloudWatch 获取指标数据的替代方法。您只需点击几下就可以创建指标流,并且指标数据已开始流向您的目的地。您可以轻松将指标传输到 Data Lake on AWS,如 Amazon S3,并开始使用 Amazon Athena 等工具分析使用情况或性能。Metrics Streams 还简化了使用 Amazon Kinesis Data Firehose HTTP 终端节点向常用的第三方服务提供商发送 CloudWatch 指标的流程。您可以创建包含最新的 CloudWatch 指标数据的连续、可扩展的流,为仪表板、警报和其他依赖于准确及时指标数据的工具提供支持。

您可以通过 CloudWatch 控制台或以编程方式通过 CloudWatch API、AWS SDK、AWS CLI 或 AWS CloudFormation 创建和管理 Metric Streams,以预置和配置 Metric Streams。您还可以使用由第三方服务提供商提供的 AWS CloudFormation 模板将 Metric Streams 传递设置为传输到 AWS 外部的目标位置。有关更多信息,请参阅有关 CloudWatch Metric Streams 的文档

符合。您可以选择在默认情况下发送所有指标,也可以创建过滤规则,包括和排除由命名空间(如 AWS/EC2)定义的指标组。Metric Streams 能够自动检测与过滤规则匹配的新指标,并在流式传输中包含指标更新。当资源终止时,Metric Streams 将自动停止发送非活动指标的更新。

Metric Streams 能够输出 OpenTelemetry 或 JSON 格式。您可以在创建或管理指标流时选择输出格式。

符合。您可以访问 Metric Streams 控制台页面的监控部分。您可以看到指标更新量随时间推移的自动仪表板。这些指标也可以在 AWS/CloudWatch 命名空间下使用,并可用于创建警报,以便在量出现异常峰值时发送通知。

日志监控

CloudWatch Logs 支持您使用现有系统、应用程序和定制日志文件监控系统和应用程序,并排除故障。

借助 CloudWatch Logs,您可以近乎实时地监控日志中的特定短语、值或模式。例如,您可以针对系统日志中出错的次数设置警报,或查看应用程序日志中的 Web 请求延迟图表。然后,您可以查看原始日志数据,了解问题根源。日志数据可以在经久耐用的低成本存储中保存任意长的时间,因此无需担心硬盘空间不足。

Amazon CloudWatch 公开日志是由 AWS 产品代表客户发布在本地的日志。VPC 流日志是第一种将从该分级模型中受益的公开日志。不过,我们日后将会向公开日志类型增加更多 AWS 服务日志类型。

请参见区域性产品和服务,了解 CloudWatch Logs 服务在不同区域的具体提供情况。

请参阅我们的定价页面,了解最新信息。

CloudWatch Logs 能够监控并存储日志,以帮助您更好地了解并运行系统和应用程序。当使用 CloudWatch Logs 处理日志时,它会使用现有的日志数据进行监控,因此您将无需修改代码。以下是您可以对 Amazon CloudWatch 和日志执行操作的两个示例:

实时监控应用程序和系统:您可以使用 CloudWatch Logs 通过日志数据近乎实时地监控应用程序和系统。例如,CloudWatch Logs 能够追踪应用程序日志中的出错次数,并在错误率超过指定阈值时向您发送通知。Amazon CloudWatch 使用日志数据进行监控,因此您将无需修改代码。

长期保留日志:您可以根据需要使用 CloudWatch Logs 在高持久性且经济高效的存储中长期保存日志数据,无需担心耗尽硬盘空间。CloudWatch Logs Agent 能够支持您轻松快速地将已轮换和未轮换的日志文件从主机移动到日志服务系统。然后,您可以按需访问原始日志事件数据。

您可以将 EC2Config 服务配置为将各种数据和日志文件发送至 CloudWatch,其中包括:自定义文本日志、事件(应用程序、自定义、安全、系统)日志、事件跟踪 (ETW) 日志和性能计时器 (PCW) 数据。在此处了解有关 EC2Config 服务的更多信息。

CloudWatch Logs Agent 在默认状态下每五秒发送一次日志数据,可由用户配置。

CloudWatch Logs 能够导入、聚合并监控基于常见日志数据的任何文本或 JSON 格式的日志。

如果配置 CloudWatch Logs Agent 来报告非文本日志数据,则它将记录错误。错误记录在 /var/logs/awslogs.log 中。

通过创建指标筛选条件,可以在日志事件发送到 CloudWatch 日志服务时对其进行监控。指标筛选条件将日志数据转换为用于绘制图表或发出警报的 Amazon CloudWatch 指标。指标筛选条件可在控制台或 CLI 中创建。指标筛选条件搜索并匹配日志事件中的术语、短语或值。当指标筛选条件找到日志事件中的一个术语、短语或值时,即将其计入所选择的 Amazon CloudWatch 指标。例如,您可以创建一个指标筛选条件来搜索并统计单词“Error”在日志事件中的出现次数。指标筛选条件还可以提取空格分隔日志事件的值,例如 Web 请求的延迟情况。此外,您也可以使用条件运算符和通配符创建精确匹配。Amazon CloudWatch 控制台可以帮助您在创建指标筛选条件之前测试模式。

指标筛选条件模式可以包含搜索术语或常见日志或 JSON 事件格式的规范。

例如,如果您想要搜索术语 Error,指标筛选条件的模式即为术语 Error。筛选条件中可同时包含多个搜索术语,用于搜索多个术语。例如,如果您想统计含有术语 Error 和 Exception 的事件数量,可以使用模式 Error Exception。如果您想精确匹配术语 Error Exception,则需要为搜索术语加上双引号“Error Exception”。您可以根据需要指定多个搜索术语。

CloudWatch Logs 还能用于从常见日志格式或 JSON 格式中的日志事件提取值。例如,您可以访问 Apache 日志传输的字节数。或者也可以使用条件运算符和通配符匹配并提取感兴趣的数据。要使用指标筛选条件的提取功能,日志事件必须以空格分隔,且必须在字段的开始和末尾处使用双引号“"”或方括号“[ ]”,以围住字段。或者,可以是 JSON 格式的日志事件。如需查看语法和示例的完整详细信息,请参阅指标筛选条件开发人员指南

CloudWatch Logs 支持您在创建指标筛选条件之前测试指标筛选条件模式。您可以针对 CloudWatch Logs 中已存在的日志数据测试模式,也可以提供自己的日志事件进行测试。通过测试模式,您可以了解哪些日志事件匹配该指标筛选条件;以及如果提取这些值,将会提取测试数据中的哪些值。指标筛选条件测试功能可以在控制台和 CLI 中使用。

Amazon CloudWatch 指标筛选条件不支持正则表达式。如需使用正则表达式处理日志数据,请考虑使用 Amazon Kinesis,并将该数据流连接到正则表达式处理引擎。

日志管理

您可以使用 CloudWatch Logs 控制台或通过 CloudWatch Logs CLI 来检索任何日志数据。日志事件可以基于日志组、日志流和关联的时间进行检索。适用于检索日志事件的 CloudWatch Logs API 是 GetLogEvents。

您可以使用 CLI 来检索日志事件,并使用命令行查询或类似的搜索功能进行搜索。

您可以根据需要在 CloudWatch Logs 中长久保存日志数据。默认情况下,CloudWatch Logs 将无限期保存日志数据。您可以随时更改每个日志组的保留期限。

Amazon CloudWatch Logs Standard 是 CloudWatch 提供的两个日志类别之一。Logs Standard 提供全面的日志管理,旨在实现实时监控和高级分析功能,例如 Live Tail、指标提取、警报和数据保护。您可以近乎实时地监控日志中的特定短语、值或模式。例如,您可以针对系统日志中出错的次数设置警报,或查看应用程序日志中的 Web 请求延迟图表。然后,您可以查看原始日志数据,了解问题根源。

Amazon CloudWatch Logs Infrequent Access(Logs-IA)是 CloudWatch 提供的两个日志类别之一。Logs-IA 专为在 AWS 上本地整合所有日志而构建。它提供 CloudWatch Logs Standard 的托管摄取、跨账户日志分析和加密功能,并且每 GB 摄取价格较低。由于兼具定制功能和低成本的特点,CloudWatch Logs-IA 成为临时查询和事后取证分析的理想选择。日志数据可以在经久耐用的低成本存储器中无限期保存,您既能够访问所需数据,又无需担心填满硬盘。

Amazon CloudWatch Logs Infrequent Access(Logs-IA)在所有提供 CloudWatch Logs 的 AWS 区域均可用。您可以在控制台中开始使用,也可以通过 AWS CLI 或 API 以编程方式开始使用

日志分析

要访问 Logs Insights,您的 IAM 策略中必须包括用于 logs:DescribeLogGroups 和 logs:FilterLogEvents 的权限。

您可以使用 Logs Insights 查询正在发送到 CloudWatch 的所有日志。Logs Insights 自动从来自 AWS 服务的日志获得日志字段,例如 Lambda、CloudTrail、Route53 和 VPC 流日志以及生成 JSON 格式的日志事件的任何应用程序日志。此外,对于所有日志类型,它会为发送到 CloudWatch 所有日志生成 3 个系统字段:@message、@logStream 和 @timestamp。@message 包含未解析的原始日志事件,@logStream 包含生成日志事件的源的名称,@timestamp 包含日志事件添加到 CloudWatch 的时间。

Logs Insights 引入了专门构建的新查询语言用于日志处理。该查询语言支持一些简单而强大的查询命令。您可以编写命令来检索一个或多个日志字段、寻找与一个或多个搜索条件匹配的日志事件、聚合日志数据,以及从基于文本的日志中提取临时字段。该查询语言很容易学习,Logs Insights 使用示例查询、命令描述和查询自动完成的格式提供产品帮助,以帮助您完成入门。您可以在此处找到关于该查询语言的其他详细信息。

服务限制记录在此处

Logs Insights 在以下区域推出:美国西部(俄勒冈)、美国西部(加利福尼亚北部)、美国东部(俄亥俄)、美国东部(弗吉尼亚北部)、亚太地区(孟买)、亚太区域(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(巴黎)、南美洲(圣保罗)。

您可以编写包含聚合、筛选条件、正则表达式和文本搜索的查询。您还可以从日志事件提取数据以创建临时字段,这些字段可由查询语言进一步处理以帮助您评估您正在查找的信息。查询语言支持字符串、数字和数学函数,例如 concat、strlen、trim、log 和 sqrt 以及其他函数。您还可以使用布尔和逻辑表达式,并聚合多种函数,例如最小值、最大值、求和、平均和百分位以及其他函数。您可以在此处找到关于该查询语言和可支持的函数的其他详细信息。

您可以在此处找到查询命令列表。您可以在此处找到可支持的函数列表。

您可以使用可视化功能来识别日志中随着时间出现的趋势和模式。Logs Insights 支持使用折线图和堆叠面积图进行数据可视化。它可以生成包含一个或多个聚合函数的所有查询的可视化格式,数据按照使用 bin() 函数指定的间隔时间进行分组。您可以在此处找到关于可视化时间序列的其他详细信息。

您可以将 Java 型正则表达式用于 Logs Insights。正则表达式可用在筛选条件命令中。您可以在产品帮助中或此处找到使用正则表达式进行查询的示例。

您可以使用反引号转义特殊字符。包含非字母数字、@ 和 . 字符的日志字段名称需要使用反引号转义。

Logs Insights 生成的系统字段以 @ 开头。Logs Insights 目前可生成 3 种系统字段:@message 包含发送到 CloudWatch 的未解析的原始日志事件,@logStream 包含生成日志事件的源的名称,@timestamp 包含日志事件添加到 CloudWatch 的时间。

通过 Logs Insights,您可以查询 2018 年 11 月 5 日或之后添加到 CloudWatch Logs 的日志数据。

可以通过向日志查询添加查询命令筛选条件 @logStream = "log_stream_name",从特定日志流搜索日志事件。

CloudWatch Logs 已经支持与其他 AWS 服务(例如,Amazon Kinesis、Amazon Kinesis Data Firehose、Amazon Elasticsearch 以及 Splunk、Sumo Logic 和 DataDog 之类的 AWS 合作伙伴 ISV 解决方案和其他服务)进行集成的选项,以便为您提供涉及所有环境的选择和灵活性,用于满足自定义日志处理、扩充、分析和可视化需要。此外,CloudWatch Logs Insights 的查询功能还可用于通过 AWS 软件开发工具包进行的编程访问,以促使 AWS ISV 合作伙伴在 CloudWatch Logs Insights 的基础上构建更深层次的集成、高级分析和创造其他价值。

ISV 合作伙伴与 CloudWatch Logs Insights 集成后,您可将日志数据存放在一个位置,并能够采用高性能且经济实惠的方式使用自己选择的工具和框架进行分析,而不必移动大量的数据。它还能通过消除与数据传输相关的延迟让您更快地访问日志,并杜绝配置和维护特定数据传输的操作复杂性。

Logs 异常检测功能

Amazon CloudWatch Logs 异常检测功能由 AI/ML 提供支持,是一项自动化日志分析功能,可帮助您为相关日志创建集群以加速日志调查、比较一段时间内的日志以揭示关键见解,以及监控您的日志并在发生异常行为时通知您,以便更快地进行修复。使用先进的算法,CloudWatch 可以自动检测应用程序日志中的异常模式和变化,提醒您潜在的问题。您不再需要在每次日志更改时更新查询或筛选条件。通过 Logs 异常检测功能,您可以在日志消息中出现的错误和峰值对您造成影响之前尽早发现它们,无需提前了解具体情况即可识别新问题,无需配置参数即可收到异常活动警报,并持续监控最重要的日志。通过主动发现潜在问题,CloudWatch Logs 异常检测功能可帮助您提前发现问题并提供可靠的性能。
 

Amazon CloudWatch Logs 异常检测功能有助于自动检测应用程序日志中的异常行为。尽管您可以通过指标筛选条件等工具监视特定的已知变量,但异常检测功能可以识别以前未知的条件,例如日志中新出现的错误代码或特定日志消息的突然增加。Logs 异常检测功能会随着时间的推移,根据应用程序日志灵活发展,并且不需要您定义复杂的配置参数,例如查询或筛选条件语法。Logs 异常检测功能为最关键的应用程序日志组提供额外的保障。

Amazon CloudWatch Logs 异常检测不需要特定格式的日志即可工作。该功能使用机器学习来灵活解析您的日志。CloudWatch Logs 异常检测功能最适用于应用程序日志,例如在 EC2、EKS、ECS、Lambda 以及用于运行应用程序代码的其他资源中运行的应用程序代码生成的日志。

Amazon DevOps Guru 提供异常检测功能,该功能专为 Lambda 等特定应用程序源而构建。Amazon CloudWatch Logs 异常检测功能是一种适用于任何应用程序日志的解决方案。CloudWatch Logs 异常检测功能可在 CloudWatch 控制台中使用。

Logs Live Tail

Amazon CloudWatch Logs Live Tail 是一项新的交互式分析功能,可让您实时查看传入日志。使用 Live Tail 可以快速解决问题:开发人员可以利用日志的流式视图来调试代码,而 IT 工程师可以可靠监控其部署状态。Live Tail 在相关事件的上下文中提供日志的实时交互式视图,有助于缩短平均检测时间,进而缩短平均解决时间。

您应该使用交互式 CloudWatch Live Tail 功能在您的原生 AWS 可观测性工具中开箱即用地检测应用程序或部署问题。Live Tail 使开发运维团队可以在开发环境中深入了解您的关键应用程序日志和调试代码,而无需在多个工具之间切换。通过使用 Live Tail 监控部署的状态和运行状况,IT 工程师、运营支持和中央安全团队可以高效监控其服务和应用程序,从而加快根本原因分析并缩短平均解决时间。

除了在自定义应用程序日志上提供 Live Tail 功能外,Live Tail 还有助于客户深入了解 Amazon Virtual Private Cloud、Amazon Route53、AWS Lambda、Amazon Elastic Kubernetes Service、Amazon Elastic Container Service 等 AWS 服务的日志。 AWS 服务可以通过使用 Live Tail 小部件,将相同的交互式实时跟踪体验嵌入到您的控制台中。此外,也可以通过其他服务(例如 Amazon Managed Grafana、AWS Thinkbox)实施直接集成,以便在您自己的控制台和任何生成日志事件的应用程序日志中为您提供相同的深入分析功能。

要使此功能按预期运行,应允许用户执行以下操作。启动 Live Tail 会话时,如果您不是管理员角色的一员或拥有包含 logs: 的策略*,请确保在策略声明中添加以下操作:logs:StartLiveTail 和 logs:StopLiveTail。

了解有关 Live Tail 服务限制的更多信息。

Live Tail 现已在以下区域推出:美国东部(俄亥俄州)、美国东部(弗吉尼亚州北部)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、亚太地区(孟买)、亚太地区(首尔)亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)和南美洲(圣保罗)。

您可以根据日志组、日志流进行筛选,也可以按关键字进行筛选。在监控账户中,日志组选择支持在多个账户中进行多项选择(跨账户可观测性)。日志流选择支持基于名称或前缀的多项选择。按关键字筛选区分大小写。可以输入一个或多个关键字(例如,error、exception 或 fault)以进一步缩小搜索范围。您可以键入关键字,也可以从 “信息” 面板中提供的示例中复制和粘贴。了解有关筛选模式的更多信息。

不能,Live Tail 提供 CloudWatch 收集的日志数据的实时视图。有关历史日志,请参阅 Logs Insights 和日志组功能。

日志数据保护

数据保护是 CloudWatch Logs 中的一项功能,允许您定义自己的规则和策略,以自动检测和屏蔽从您的系统和应用程序收集的日志中的敏感数据。这是使用机器学习(ML)和模式匹配完成的。可以使用提升的身份和访问管理(IAM)权限查看未屏蔽的数据。

为了防止记录敏感数据,客户有时依赖于手动调查或通过配置简短的日志保留策略来删除日志,这会带来有价值的操作日志丢失的风险。CloudWatch Logs 数据保护会使用模式匹配和 ML 自动识别和屏蔽日志中的敏感信息,而无需任何人访问它们。此功能对于需要确保不存储任何个人信息的严格法规下的行业很有用。此外,构建需要大量个人和敏感信息的支付或身份验证服务的客户可以使用此新功能来降低不需要的信息存储在其日志中的可能性。

在 CloudWatch Logs 中创建数据保护策略时,您可以指定要保护的数据。有许多数据标识符供您选择,例如电子邮件地址、许多国家/地区的驾驶执照、信用卡号、地址等等。这些多种多样的目标数据标识符让您可以灵活地选择您的应用程序使用哪些敏感数据,并屏蔽不需要轻松访问的敏感数据。重要的是您要决定哪些信息对您的应用程序敏感,并为您的用例选择相关的标识符。

警报

您可以在账户中创建警报来监控任何 Amazon CloudWatch 指标。例如,您可以创建警报来监控 Amazon EC2 实例 CPU 使用情况、Amazon ELB 请求延迟、Amazon DynamoDB 表吞吐量、Amazon SQS 队列长度、甚至 AWS 账单费用。

您还可以为特定于自定义应用程序或基础设施的自定义指标创建警报。如果自定义指标是高分辨率指标,您可以选择创建高分辨率警报,该警报将在 10 秒钟或 30 秒钟时段时发出提醒。

使用复合警报,您可以将多个警报合并到警报层次结构。在多个警报同时触发时,仅触发一次可减少警报噪音。您可以为应用程序、AWS 区域或可用区等资源分组提供一个整体状态。

请参阅 CloudWatch 定价页面,了解更多信息。

创建警报时,可进行配置,以便在所选监控指标超出所定义的阈值时执行一项或多项自动操作。例如,您可以设置发送电子邮件的警报,发布到 SQS 队列,停止或终止一个 Amazon EC2 实例,或执行 Auto Scaling 策略。由于 Amazon CloudWatch 警报与 Amazon Simple Notification Service 实现集成,因此还可使用由 SNS 支持的任意通知类型。 当警报进入 ALARM 状态时,您可以使用 AWS Systems Manager OpsCenter 操作自动创建 OpsItem。这有助于您通过单个控制台快速诊断和修复 AWS 资源问题。

创建警报时,首先要选择期望用之实施监控的 Amazon CloudWatch 指标。接下来,您要选择评估时长(例如,五分钟或一小时)和要测量的统计值(如平均值或最大值)。设定阈值时,设定一个目标值,并选择当实际值大于 (>)、大于等于 (>=)、小于 (<)、或小于等于 (<=) 该目标值时是否触发警报。

警报会持续根据您选择的阈值来评估指标,即便已被触发也不例外。这可使您随时查看当前的最新状态。您可能注意到,其中一个警报长时间处于 ALARM 状态。如果您的指标值始终超出阈值,警报将一直保持 ALARM 状态,直到不再超出阈值。这是正常现象。如果您希望警报将这种新状态处理为正常,可以相应地调节警报阈值。

警报历史记录有效期为 14 天。要查看警报历史记录,请在 AWS 管理控制台登录 CloudWatch,选择左侧菜单中的“Alarms”,然后单击下方面板中的“History”选项卡。您可以在这里查找警报状态更改的历史记录以及警报配置修改。

控制面板

Amazon CloudWatch 仪表板让您能够创建、自定义、交互和保存 AWS 资源及自定义指标的图表。

要开始使用,请访问 Amazon CloudWatch 控制台,然后选择“Dashboards”。单击“Create Dashboard”按钮。 您还可以单击“选项” -> “添加到控制面板”以从自动化控制面板复制所需的视图。

自动化控制面板预先构建了 AWS 服务建议的最佳实践,保持资源感知,并能动态更新以反映重要性能指标的最新状态。您现在可以对特定视图进行筛选和故障排除,无需添加其他代码来反映 AWS 资源的最新状态。确定性能问题的根本原因之后,您就可以直接转到 AWS 资源以快速采取行动。

符合。仪表板处于打开状态时会自动刷新。

可以。只要拥有针对您账户的正确权限,任何人都可以访问您的仪表板。

活动

Amazon CloudWatch Events (CWE) 是一个描述 AWS 资源更改的系统事件流。该事件流扩充了现有的 CloudWatch 指标和日志流,以提供更为完整的应用程序运行状况和状态概况。您可以编写声明式规则,将您关注的事件与要执行的自动化操作关联起来。

目前支持 Amazon EC2、Auto Scaling 和 AWS CloudTrail。通过 AWS CloudTrail,可在 CloudWatch Events 中查看所有服务的更改类 API 调用(即,除 Describe*、List* 和 Get* 之外的所有调用)。

当某个事件与您在系统中创建的某条规则匹配时,您可以自动调用一个 AWS Lambda 函数、将事件中继到 Amazon Kinesis 流、发送 Amazon SNS 主题通知,或调用一个内置工作流。

符合。通过使用 PutEvents API,您的应用程序可发送自定义事件,并采用专门满足您需求的有效负载。

通过使用常见的 Unix cron 语法,CloudWatch Events 能够按您设定的计划生成事件。通过监控这些事件,您可实施计划应用程序。

CloudWatch Events 是一个近乎实时的系统事件流,用于描述 AWS 资源的更改。借助 CloudWatch Events,您可以定义规则,从而以自动方式监控特定的事件并执行相应操作。AWS CloudTrail 是一种服务,用于记录 AWS 账户的 API 调用并将包含 API 调用的日志文件发送到 Amazon S3 存储桶或 CloudWatch Logs 日志组。借助 AWS CloudTrail,您可以查看与 AWS 资源的创建、删除和修改有关的 API 活动历史记录,很可以排查运行和安全问题。

AWS Config 是一种完全托管的服务,可为您提供 AWS 资源库存、配置历史记录和配置更改通知,以确保安全性和方便管理。Config 规则可帮助您确定配置更改是否合规。CloudWatch Events 用于近乎实时地应对资源状态更改。它不会裁定这些更改是否符合政策,也不会像 Config/Config Rules 那样提供详细的历史记录。它是一个通用的事件流。