Amazon CloudWatch 功能
概览
全部打开Amazon CloudWatch 是一种监控和管理服务,可提供有关 AWS、本地、混合和其他云应用程序和基础设施资源的数据和可行洞察。您可以从一个平台收集和访问以日志和指标形式提供的所有性能和运营数据,而不是在孤岛(服务器、网络或数据库)中监控它们。通过 CloudWatch,您可以监控整个堆栈(应用程序、基础设施、网络和服务),并利用告警、日志和事件数据来执行自动操作并缩短解决问题的平均时间(MTTR)。这释放了重要的资源,使您可以专注于构建应用程序和创造业务价值。
CloudWatch 可为您提供可行洞察,有助于您优化应用程序性能,管理资源利用率并了解整个系统的运营状况。CloudWatch 提供频率高达 1 秒的指标和日志数据可见性,可保留 15 个月的数据(指标)并针对指标执行计算。这使您可以执行历史分析以便优化成本,并获得实时洞察以优化应用程序和基础设施资源。 您可以使用 CloudWatch Container Insights 监控、排查容器化应用程序和微服务并发出相关提示。CloudWatch 收集、汇总和总结计算使用率信息(如 CPU、内存、磁盘和网络数据)以及诊断信息(如容器重启故障),以帮助 DevOps 工程师隔离问题并快速解决问题。Container Insights 为您提供来自 Amazon ECS for Kubernetes(EKS)、Amazon Elastic Container Service(ECS)、AWS Fargate 和独立 Kubernetes(k8s)等容器管理服务的洞察。
收集
全部打开- Amazon CloudWatch Logs Infrequent Access(Logs-IA))专为在 AWS 上本地整合所有日志而构建。它提供 CloudWatch Logs Standard 的托管摄取、跨账户日志分析和加密功能,并且每 GB 摄取价格较低。由于兼具定制功能和低成本的特点,CloudWatch Logs-IA 成为临时查询和事后取证分析的理想选择。
- Amazon CloudWatch Logs Standard 提供全面的日志管理,旨在实现实时监控和高级分析功能,例如 Live Tail、指标提取、警报或数据保护。
有两个日志类:
Amazon CloudWatch Logs 服务允许您近乎实时地收集和存储来自资源、应用程序和服务的日志。日志分为三个主要类别:
1)公开日志这些是由 AWS 服务代表您在本地发布的日志。目前支持两类日志:Amazon VPC 流日志和 Amazon Route 53 日志。
2)由 AWS 服务发布的日志。目前有超过 30 种 AWS 服务会向 CloudWatch 发送日志。这些服务包括 Amazon API Gateway、AWS Lambda、AWS CloudTrail 以及许多其他服务。
3)自定义日志。这些是来自您自己的应用程序和本地资源以及其他云端的日志。
您可以使用 AWS Systems Manager 安装 CloudWatch 代理,也可以使用 PutLogData API 操作轻松发布日志。
借助 Amazon CloudWatch,您无需执行任何操作即可从超过 70 种 AWS 服务(例如 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon DynamoDB、Amazon Simple Storage Service (Amazon S3)、Amazon ECS、AWS Lambda 和 Amazon API Gateway)收集基础设施指标。例如,Amazon EC2 实例会自动发布 CPU 利用率、数据传输和磁盘使用情况指标,以帮助您了解状态更改。您可以使用 API Gateway 的内置指标来检测延迟,也可以利用 AWS Lambda 的内置指标来检测错误或限制。同样,Amazon CloudWatch 还允许您从您的应用程序收集应用程序指标(例如用户活动、错误指标或已用内存),以监控运营性能,排查问题和发现趋势。您可以使用 CloudWatch 代理或通过 PutMetricData API 服务调用将这些指标发布到 CloudWatch。除了原定设置基础设施指标外,如果您需要更详细的指标(如分区级 Amazon Kinesis Data Streams 指标),只需为每项资源选择相应指标即可。同样,应用程序指标可在高达 1 秒的频率下用于统计数据、图形和高分辨率告警。
Container Insights 简化了辅助指标和容器生态系统日志的收集和汇总。它从每个容器中收集计算性能指标(如 CPU、内存、网络和磁盘信息)作为性能事件,并自动生成用于监控和告警的自定义指标。性能事件摄取为 CloudWatch Logs 提供有关运行环境的元数据,例如 Amazon EC2 实例 ID、服务、Amazon Elastic Block Store (Amazon EBS) 卷挂载和 ID 等,以简化监控和故障排除。从这些摄取的日志中自动提取 CloudWatch 自定义指标,并使用 CloudWatch Logs Insights 的高级查询语言对这些指标做进一步分析。容器洞察还提供了收集应用程序日志(stdout/stderr)、自定义日志、预定义的亚马逊 EC2 实例日志、亚马逊 EKS/K8s 数据平面日志和亚马逊 EKS 控制平面日志的选项。对于 Amazon EKS 和 k8s 集群,可以使用预配置的 FluentD 代理收集日志。有关更多详细信息,请参阅容器见解日志设置文档。对于亚马逊 ECS,可以使用 Amazon CloudWatch Logs 日志记录驱动程序或 Fl uent Bit 来收集应用程序日志。
CloudWatch Lambda Insights 简化了来自 AWS Lambda 函数的精选指标和日志的收集和聚合。它从每个 Lambda 函数中收集 CPU、内存和网络等计算性能指标作为性能事件,同时自动生成用于监控和报警的自定义指标。性能事件作为 CloudWatch Logs 摄取,以简化监控和故障排除。从这些摄取的日志中自动提取 CloudWatch 自定义指标,并使用 CloudWatch Logs Insights 的高级查询语言对这些指标做进一步分析。有关更多详细信息,请参阅 Lambda Insights 入门文档。
Amazon CloudWatch Metric Streams 支持您创建连续、近乎实时的指标流,并将其发送到您选择的目的地。这简化了使用 Amazon Kinesis Data Firehose HTTP 端点向常用的第三方服务提供商发送 CloudWatch 指标的流程。您可以创建包含最新的 CloudWatch 指标数据的连续、可扩展的流式传输,为控制面板、告警和其他依赖于准确及时指标数据的工具提供支持。您可以轻松将指标传输到 AWS 上的数据湖(例如 Amazon S3),并开始使用 Amazon Athena 等工具分析使用情况或性能。
监控
全部打开Amazon CloudWatch 中的跨账户可观测性使您可以监控 Amazon Web Services 区域内跨越多个账户的应用程序并为其排除故障。您可以从中央视图搜索跨多个账户存储的日志组,运行跨账户 Logs Insights 查询,并跨账户创建 Contributor Insights 规则以识别生成日志条目的前 N 个贡献者。此外,您还可以在整合的视图中直观地查看来自多个账户的指标,并创建警报来评估来自其他账户的指标,以便收到异常和趋势问题的通知。利用 Container Insights 中的跨账户可观测性,您可以监控整个组织的容器环境,在用户体验受到影响之前主动查明风险。借助 CloudWatch 中的跨账户可观测性,您可以使用 Application Signals 查看跨账户应用程序的交互式地图,并一键深入到相关指标、日志和跟踪。您还可以使用此功能设置跨账户指标流,将 Amazon Web Services 区域内跨越多个 Amazon 账户的指标纳入单个指标流。只需几次点击,即可通过 CloudWatch 中的跨账户可观测性提供整体运营视图,无需额外的数据管道,这将帮助您节省管理基础设施和应用程序的时间、精力和成本。
Amazon CloudWatch 支持从多个数据来源进行查询,以帮助您监控混合和多云工作负载并对其进行故障排除,让您可以更快地检测和解决问题。您可以查询和组合来自 Amazon OpenSearch、Prometheus、Azure Monitor 和您自己的自定义数据来源等来源的指标,并实时查询这些指标,从而提高对应用程序运行状况的可见性并帮助您更快地解决关键事件。Amazon CloudWatch 多数据来源查询允许您使用 AWS Lambda 函数设置您自己的数据来源。
通过 Amazon CloudWatch 控制面板,您可以在统一视图中创建可重复使用的图表并可视化云资源和应用程序。您可以在单个控制面板中并排绘制指标和日志数据,从而快速获知具体情况,诊断问题并了解根本原因。例如,您可以可视化关键指标,如 CPU 利用率和内存,并将它们与容量进行比较。您还可以关联特定指标的日志模式,并设置告警以接收性能和运营问题提示。这让您能够全面了解整个系统的运行状况,并快速排查问题,以缩短解决问题的平均时间 (MTTR)。
Amazon CloudWatch 复合告警使您能够组合多个告警并减少告警噪音。如果应用程序问题影响应用程序中的多个资源,您将收到一个针对整个应用程序的告警通知,而不是针对每个受影响的资源分别收到一个告警。这有助于您专注于查找运营问题的根本原因,以减少应用程序的停机时间。您可以为应用程序、AWS 区域或可用区等资源分组提供一个整体状态。
Amazon CloudWatch 告警允许您设置指标阈值并触发操作。您可以创建高精度警报,将百分位数设置为统计数据,并根据需要指定或忽略操作。例如,您可以创建针对 Amazon EC2 指标的警报,设置通知,并采取一项或多项操作来检测和关闭未使用或未充分利用的实例。实时发出针对指标和事件的警报这项功能使您能够最大限度地减少停机时间和潜在的业务影响。
应用程序和基础设施资源会以日志和指标的形式生成大量运营和监控数据。除了让您能够在一个平台中访问和可视化这些数据集之外,Amazon CloudWatch 还能让您轻松将它们相互关联。这有助于您快速诊断问题并了解根本原因。例如,您可以将某个日志模式(例如错误)与特定指标关联,并设置告警以接收性能和运营问题提示。
Amazon CloudWatch Application Insights 为企业应用程序提供可观测性的自动化设置,以便您直观了解此类应用程序的运行状况。该功能有助于跨应用程序资源和技术堆栈(例如数据库、Web (IIS) 和应用程序服务器、操作系统、负载均衡器、队列等)识别和设置关键指标和日志。它会持续监控这些遥测数据,以检测和关联异常和错误,并向您通知应用程序中的任何问题。为帮助排查问题,它会创建自动化控制面板来呈现检测到的问题,包括相关的指标异常和日志错误,以及可帮助您分析潜在根源的其他洞察。这样您就可以迅速采取补救操作,确保应用程序在良好的运行状况下运行,并且不会影响到终端用户。
具有增强可观测性的 Container Insights
具有增强可观测性的 Container Insights 现在可用于 EC2 上的 Amazon Elastic Kubernetes Service(Amazon EKS)、EC2 上的 Amazon Elastic Container Service(Amazon ECS)和 Fargate 上的 ECS。增强可观测性功能提供开箱即用的详细指标,如容器级别的 ECS 和 EKS 性能指标、EKS Kube 状态指标和 EKS 控制面板指标,让您能够直观地向上和向下钻取各个容器层,轻松发现单个容器中的内存泄漏等问题。Container Insights 现在会显示耗用大量资源的容器层列表,因此即使您尚未设置警报,也可以识别环境中的风险,并在最终用户体验受到影响之前主动采取措施。具有增强可观测性的 Container Insights 的入门体验非常简单,您可以为 EKS 安装 CloudWatch Observability 附加组件来自动检测集群,或者使用 ECS 上的单个切换开关选择启用来立即开始采集遥测数据。
未提供增强可观测性的 Container Insights
CloudWatch Container Insights 会从在 Amazon ECS、Amazon EKS、Amazon EC2 上的 Kubernetes 平台以及 AWS Fargate(适用于 Amazon ECS 和 Amazon EKS)上运行的容器化应用程序和微服务收集指标和日志,并对这些数据进行汇总和总结。Container Insights 即时收集 CPU、内存、磁盘和网络指标等容器指标,并提供更深入的诊断信息,例如容器重新启动失败,以帮助您隔离并快速解决问题。Container Insights 通过自动控制面板提供容器可观测性,可让您轻松监控应用程序的运行状况和性能。您还可以针对 Container Insights 指标设置 CloudWatch 警报,以便在应用程序性能受到影响之前收到异常通知。
- CloudWatch Database Insights 是一款数据库可观测性解决方案,也是专为 DevOps 工程师、应用程序开发人员和数据库管理员(DBA)精心打造的体验,可帮助其更快地排查数据库问题以及全面了解数据库队列的运行状况。此功能适用于 Amazon Aurora 和 RDS 数据库。
- CloudWatch Database Insights 将来自应用程序、数据库及运行它们的操作系统的日志和指标整合到控制台的统一视图中。使用其预构建的控制面板、推荐的警报和自动遥测数据收集,DBA 和 DevOps 工程师可以监控数据库队列的运行状况,并使用引导式问题排查体验深入到单个实例进行根本原因分析。应用程序开发人员可以将数据库依赖关系的影响与其业务关键型应用程序的性能和可用性相关联。这是因为他们可以从 CloudWatch Application Signals 的应用程序性能视图上下文向下钻取到 CloudWatch Database Insights 中的特定依赖数据库。
数据库洞察