Amazon CloudWatch - 常见问题
为什么应该选择 Amazon CloudWatch?
Amazon CloudWatch 是一项 AWS 云原生服务,在单一平台上提供统一的可观测性,用于监控 AWS 云资源和您在 AWS 上运行的应用程序。Amazon CloudWatch 可用于以日志、metrics、事件和告警的形式收集监控和运营数据。它还提供了 AWS 资源、应用程序以及在 AWS 和本地服务器上运行的服务的统一视图。Amazon CloudWatch 帮助您获得对资源利用率、应用程序性能和工作负载运行状况的全系统可见性。Amazon CloudWatch 为 AWS、混合和本地应用程序及基础设施资源提供可操作的洞察。跨账户可观测性 是 CloudWatch 统一可观测性功能的补充。
哪些 AWS 服务与 Amazon CloudWatch 和 Amazon CloudWatch Logs 原生集成?
Amazon CloudWatch 与超过 70 多种 AWS 服务原生集成,允许客户无需任何操作即可收集基础设施 metrics,实现简化的监控和可扩展性。请查看文档获取发布 CloudWatch metrics 的 AWS 服务完整列表。目前,超过 30 种 AWS 服务将日志发布到 CloudWatch。请查看文档获取将日志发布到 CloudWatch Logs 的 AWS 服务完整列表。
在哪里获取所有 AWS 服务发布到 Amazon CloudWatch 的 metrics 列表?
所有发布 metrics 的 AWS 服务到 Amazon CloudWatch 的列表在 AWS 文档中。
在哪里开始收集和监控 Amazon CloudWatch 的 metrics?
Amazon CloudWatch 收集 metrics 来自各种 AWS 服务,可通过 AWS 管理控制台、AWS CLI 或 API 查看。Amazon CloudWatch 为 Amazon EC2 实例收集可用 metrics。对于额外的自定义 metrics,客户可以使用统一的 CloudWatch agent 来收集和监控。
相关 AWS 可观测性 Workshop:Metrics
我的 Amazon EC2 实例需要非常精细的监控级别,该怎么做?
默认情况下,Amazon EC2 以 5 分钟周期将 metric 数据发送到 CloudWatch,作为实例的基本监控。要以 1 分钟周期将实例的 metric 数据发送到 CloudWatch,可以在实例上启用详细监控。
我想为应用程序发布自己的 metrics,有选项吗?
客户还可以使用 API 或 CLI 将自己的自定义 metrics 发布到 CloudWatch,支持 1 分钟粒度的标准分辨率或低至 1 秒间隔的高分辨率粒度。
CloudWatch agent 还支持在特殊场景中从 EC2 实例收集自定义 metrics,如使用 Elastic Network Adapter (ENA) 的 Linux 上运行的 EC2 实例的网络性能 metrics、Linux 服务器的 NVIDIA GPU metrics,以及使用 procstat 插件从 Linux 和 Windows 服务器上的单个进程收集进程 metrics。
相关 AWS 可观测性 Workshop:发布自定义 metrics
通过 Amazon CloudWatch agent 收集自定义 metrics 还有哪些支持?
应用程序或服务的自定义 metrics 可以使用支持 StatsD 或 collectd 协议的统一 CloudWatch agent 来检索。StatsD 是一种流行的开源解决方案,可以从各种应用程序中收集 metrics。StatsD 特别适合用于插桩自己的 metrics,支持基于 Linux 和 Windows 的服务器。collectd 协议是一种仅在 Linux 服务器上支持的流行开源解决方案,其插件可以为各种应用程序收集系统统计信息。
我的工作负载包含大量临时资源并生成高基数日志,收集和测量 metrics 和日志的推荐方法是什么?
CloudWatch 嵌入式 metric 格式使客户能够以日志形式摄取复杂的高基数应用数据,并从 Lambda 函数和容器等临时资源生成可操作的 metrics。通过这种方式,客户可以在详细的日志事件数据中嵌入自定义 metrics,无需插桩或维护单独的代码,同时获得对日志数据的强大分析能力,CloudWatch 可以自动提取自定义 metrics 以帮助可视化数据并对其设置告警以进行实时事件检测。
相关 AWS 可观测性 Workshop:嵌入式 Metric 格式
在哪里开始收集和监控 Amazon CloudWatch 的日志?
Amazon CloudWatch Logs 帮助客户使用现有的系统、应用程序和自定义日志文件近实时地监控和排除系统及应用程序故障。客户可以安装统一 CloudWatch Agent 将 Amazon EC2 实例和本地服务器的日志收集到 CloudWatch。
相关 AWS 可观测性 Workshop:Log Insights
什么是 CloudWatch agent,为什么应该使用它?
统一 CloudWatch Agent 是 MIT 许可证下的开源软件,支持使用 x86-64 和 ARM64 架构的大多数操作系统。CloudWatch Agent 帮助从 Amazon EC2 实例和混合环境中跨操作系统的本地服务器收集系统级 metrics,从应用程序或服务检索自定义 metrics,以及从 Amazon EC2 实例和本地服务器收集日志。
我的环境需要各种规模的安装,那么 CloudWatch agent 如何正常安装和使用自动化安装?
在所有支持的操作系统(包括 Linux 和 Windows 服务器)上,客户可以使用命令行、AWS Systems Manager 或 AWS CloudFormation 模板来下载和安装 CloudWatch agent。您还可以在本地服务器上安装 CloudWatch agent 进行监控。
我们的组织在多个区域有多个 AWS 账户,Amazon CloudWatch 是否支持这些场景?
Amazon CloudWatch 提供跨账户可观测性,帮助客户监控和排除跨区域内多个账户的资源和应用程序的健康状况。Amazon CloudWatch 还提供跨账户、跨区域 dashboard。通过此功能,客户可以获得对其多账户、多区域资源和工作负载的可见性和洞察。
Amazon CloudWatch 有哪些自动化支持?
除了通过 AWS 管理控制台访问 Amazon CloudWatch 外,客户还可以通过 API、AWS 命令行界面 (CLI) 和 AWS SDK 访问该服务。CloudWatch API 用于 metrics 和 dashboard,有助于通过 AWS CLI 实现自动化或与软件/产品集成,使您花更少的时间管理或维护资源和应用程序。CloudWatch API 用于日志,连同 AWS CLI 也单独提供。使用 AWS SDK 的 CloudWatch 代码示例可供客户参考。
我想快速开始监控资源,推荐的方法是什么?
CloudWatch 中的自动 Dashboard 在所有 AWS 公有区域可用,提供所有 AWS 资源健康状况和性能的聚合视图。这帮助客户快速开始监控、基于资源的 metrics 和告警视图,并轻松深入了解性能问题的根本原因。自动 Dashboard 使用 AWS 服务推荐的最佳实践预先构建,保持资源感知 ,并动态更新以反映重要性能 metrics 的最新状态。
相关 AWS 可观测性 Workshop:自动 Dashboard
我想自定义在 CloudWatch 中监控的内容,推荐的方法是什么?
使用自定义 Dashboard,客户可以创建所需数量的额外 dashboard,使用不同的小部件并进行相应自定义。创建自定义 dashboard 时,有多种小部件类型可供选择进行定制。
相关 AWS 可观测性 Workshop:Dashboard
我已经构建了一些自定义 dashboard,有没有办法共享?
是的,共享 CloudWatch dashboard 是 可能的。有三种共享方式。通过允许任何拥有链接的人查看 dashboard 来公开共享单个 dashboard。通过指定允许查看 dashboard 的人员的电子邮件地址来私密共享单个 dashboard。通过指定第三方单点登录 (SSO) 提供商来共享账户中所有 CloudWatch dashboard 的 dashboard 访问权限。
相关 AWS 可观测性 Workshop:共享 CloudWatch Dashboard
我想改善应用程序及其底层 AWS 资源的可观测性,如何实现?
Amazon CloudWatch Application Insights 为您的应用程序及底层 AWS 资源(如 SQL Server 数据库、基于 .Net 的 Web (IIS) 堆栈、应用服务器、操作系统、负载均衡器、队列等)提供可观测性。它帮助客户识别和设置跨应用程序资源和技术堆栈的关键 metrics 和日志。通过这样做,它减少了平均修复时间 (MTTR) 并更快地排除应用程序问题。
更多详情请参阅常见问题:AWS 资源和自定义 metrics 监控
我的组织以开源为中心,Amazon CloudWatch 是否支持通过开源技术进行监控和可观测性?
对于收集 metrics 和 traces,AWS Distro for OpenTelemetry (ADOT) Collector 连同 CloudWatch agent 可以在 Amazon EC2 实例上并行安装,OpenTelemetry SDK 可用于从运行在 Amazon EC2 实例上的工作负载收集应用程序 traces 和 metrics。
为了在 Amazon CloudWatch 中支持 OpenTelemetry metrics,AWS EMF Exporter for OpenTelemetry Collector 将 OpenTelemetry 格式 metrics 转换为 CloudWatch 嵌入式 Metric 格式 (EMF),使集成 OpenTelemetry metrics 的应用程序能够将高基数应用 metrics 发送到 CloudWatch。
对于日志,Fluent Bit 帮助创建一个简单的扩展点,用于将来自 Amazon EC2 的日志流式传输到包括 Amazon CloudWatch 在内的 AWS 服务,进行日志保留和分析。新推出的 Fluent Bit 插件可以将日志路由到 Amazon CloudWatch。
对于 Dashboard,Amazon Managed Grafana 可以通过 Grafana 工作区控制台中的 AWS 数据源配置选项将 Amazon CloudWatch 添加为数据源。此功能通过发现现有 CloudWatch 账户并管理访问 CloudWatch 所需的认证凭证配置来简化将 CloudWatch 添加为数据源的过程。
我们的工作负载已经使用 Prometheus 从环境中收集 metrics,我可以继续使用相同的方法吗?
客户可以选择为其可观测性需求建立全开源设置。为此,AWS Distro for OpenTelemetry (ADOT) Collector 可以配置为从 Prometheus 插桩的应用程序中抓取并将 metrics 发送到 Prometheus Server 或 Amazon Managed Prometheus。
EC2 实例上的 CloudWatch agent 可以安装并配置 Prometheus 来抓取 metrics 以在 CloudWatch 中进行监控。这对于偏好在 EC2 上运行容器工作负载并需要与开源 Prometheus 监控兼容的自定义 metrics 的客户很有帮助。
CloudWatch Container Insights Prometheus 监控自动发现来自容器化系统和工作负载的 Prometheus metrics。发现 Prometheus metrics 支持 Amazon Elastic Container Service (ECS)、Amazon Elastic Kubernetes Service (EKS) 和运行在 Amazon EC2 实例上的 Kubernetes 集群。
我的工作负载包含微服务计算,特别是 EKS/Kubernetes 相关容器,如何使用 Amazon CloudWatch 来获取环境洞察?
客户可以使用 CloudWatch Container Insights 来收集、聚合和汇总来自运行在 Amazon Elastic Kubernetes Service (Amazon EKS) 或 Amazon EC2 上的 Kubernetes 平台上的容器化应用程序和微服务的 metrics 和日志。Container Insights 还支持从部署在 Amazon EKS 的 Fargate 上的集群收集 metrics。CloudWatch 自动收集 metrics,涵盖 CPU、内存、磁盘和网络等多种资源,还提供诊断信息(如容器重启失败),帮助隔离问题并快速解决。
相关 AWS 可观测性 Workshop:EKS 上的 Container Insights
我的工作负载包含微服务计算,特别是 ECS 相关容器,如何使用 Amazon CloudWatch 来获取环境洞察?
客户可以使用 CloudWatch Container Insights 来收集、聚合和汇总来自运行在 Amazon Elastic Container Service (Amazon ECS) 或 Amazon EC2 上的容器平台上的容器化应用程序和微服务的 metrics 和日志。Container Insights 还支持从部署在 Amazon ECS 的 Fargate 上的集群收集 metrics。CloudWatch 自动收集 metrics,涵盖 CPU、内存、磁盘和网络等多种资源,还提供诊断信息(如容器重启失败),帮助隔离问题并快速解决。
相关 AWS 可观测性 Workshop:ECS 上的 Container Insights
我的工作负载包含无服务器计算,特别是 AWS Lambda,如何使用 Amazon CloudWatch 来获取环境洞察?
客户可以使用 CloudWatch Lambda Insights 来监控和排除运行在 AWS Lambda 上的无服务器应用程序的故障。CloudWatch Lambda Insights 收集、聚合和汇总系统级 metrics,包括 CPU 时间、内存、磁盘和网络,还收集、聚合和汇总诊断信息(如冷启动和 Lambda worker 关闭),帮助客户隔离 Lambda 函数的问题并快速解决。
相关 AWS 可观测性 Workshop:Lambda Insights
我将大量日志聚合到 Amazon CloudWatch Logs,如何获取这些数据的可观测性?
CloudWatch Logs Insights 使客户能够交互式地搜索、分析日志数据,并执行查询以高效有效地响应 Amazon CloudWatch Logs 中的运营问题。如果发生问题,客户可以使用 CloudWatch Logs Insights 来识别潜在原因并验证已部署的修复。
如何在 Amazon CloudWatch Logs 中查询日志?
Amazon CloudWatch Logs 中的 CloudWatch Logs Insights 使用查询语言来查询日志组。
如何管理存储在 Amazon CloudWatch Logs 中的日志以进行成本优化、合规保留或额外处理?
默认情况下,Amazon CloudWatch Logs 的日志组永久保留且永不过期。客户可以调整每个日志组的保留策略,选择 1 天到 10 年之间的保留期限,具体取决于他们想要保留日志多长时间以优化成本或满足合规目的。
客户可以将日志数据从日志组导出到 Amazon S3 桶,并使用这些数据进行自定义处理和分析,或加载到其他系统。
客户还可以在 CloudWatch Logs 中配置日志组,通过 CloudWatch Logs 订阅近实时地将数据流式传输到 Amazon OpenSearch Service 集群。这样做有助于客户执行交互式日志分析、实时应用程序监控、搜索 等。
我的工作负载生成的日志可能包含敏感数据,在 Amazon CloudWatch 中有没有办法保护它们?
客户可以利用 CloudWatch Logs 中的日志数据保护功能,帮助客户定义自己的规则和策略来自动检测和屏蔽从系统和应用程序收集的日志中的敏感数据。
相关 AWS 可观测性 Workshop:数据保护