本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon 设计和实施日志记录和监控 CloudWatch
Khurram Nizami, Amazon Web Services (AWS)
2023 年 4 月(文档历史记录)
本指南可帮助您使用亚马逊 CloudWatch和相关的亚马逊网络服务 (AWS) 管理和治理服务为使用亚马逊弹性计算云 (亚马逊) 实例、亚马逊弹性容器服务 (亚马逊)、亚马逊弹性容器服务 (亚马逊EC2) 、亚马逊弹性 Kubernetes 服务 (EKSAmazon ECS) 和本地服务器的工作负载设计和实施日志和监控。AWS Lambda该指南适用于在 AWS 云端管理工作负载的运营团队、 DevOps 工程师和应用工程师。
您的日志和监控方法应基于 Well-Architecte AWS d Framework 的六大支柱
本指南并未广泛讨论安全性或成本优化的日志记录和监控,因为这些都是需要深入评估的主题。有许多 AWS 服务支持安全记录和监控,包括、Amazon Inspector AWS CloudTrailAWS Config、Amazon Detec t ive、A mazon Macie GuardDuty、A mazon 和。AWS Security Hub您还可以使用AWS Cost ExplorerAWS Budgets、和CloudWatch 账单指标进行成本优化。
下表概述了您的日志和监控解决方案应解决的六个方面。
捕获和摄取日志文件和指标 | 识别、配置来自不同来源的系统和应用程序日志和指标,并将其发送到 AWS 服务。 |
搜索和分析日志 | 搜索和分析日志,用于操作管理、问题识别、故障排除和应用程序分析。 |
监控指标和警报 | 识别工作负载中的观察结果和趋势,并根据这些观察结果和趋势采取行动。 |
监控应用程序和服务可用性 | 通过持续监控服务可用性,减少停机时间并提高实现服务级别目标的能力。 |
追踪应用程序 | 跟踪系统中的应用程序请求和外部依赖关系,以微调性能、执行根本原因分析和解决问题。 |
创建仪表板和可视化效果 | 创建仪表板,重点关注系统和工作负载的相关指标和观察结果,这有助于持续改进和主动发现问题。 |
CloudWatch 可以满足大多数日志和监控要求,并提供可靠、可扩展和灵活的解决方案。除了用于监控和分析的 CloudWatch 日志集成外,许多 AWS 服务还会自动提供 CloudWatch 指标。 CloudWatch 还提供代理和日志驱动程序以支持各种计算选项,例如服务器(云端和本地)、容器和无服务器计算。本指南还涵盖以下用于记录和监控的 AWS 服务:
-
AWS Systems Manager Di st@@ ri butor、Systems Manager 状态管理器和 Systems Manager Autom ation 用于自动化、配置和更新您的EC2实例和本地服务器的 CloudWatch 代理
-
用于高级日志聚合、搜索和分析的 Amazon OpenSearch 服务
-
Amazon Route 53 运行状况检查和 S CloudWatchynthetics 用于监控应用程序和服务的可用性
-
适用于 Prometheus 的亚马逊托管服务,用于大规模监控容器化应用程序
-
AWS X-Ray用于应用程序跟踪和运行时分析
-
Amazon Manag ed Grafana 用于可视化和分析来自多个来源(例如亚马逊服务和 OpenSearch 亚马逊 T CloudWatch imestream)的数据
您选择的 AWS 计算服务还会影响日志和监控解决方案的实施和配置。例如,亚马逊、 CloudWatch亚马逊EC2ECS、亚马逊EKS和 Lambda 的实现和配置是不同的。
应用程序和工作负载所有者通常会忘记日志和监控,或者对其进行配置和实施不一致。这意味着工作负载进入生产时可观察性有限,这会导致识别问题的延迟,并增加故障排除和解决问题所需的时间。除了应用程序日志和指标的应用程序层之外,您的日志和监控解决方案至少还必须针对操作系统 (OS) 级别的日志和指标的系统层。该指南提供了一种推荐的方法,用于跨不同的计算类型(包括下表中概述的三种计算类型)来解决这两个层的问题。
长时间运行且不可变的实例 EC2 | 跨多个 AWS 区域或账户的多个操作系统 (OSs) 的系统和应用程序日志和指标。 |
容器 | Amazon 和 Amazon EKS 集群的系统ECS和应用程序日志和指标,包括不同配置的示例。 |
无服务器 | 您的 Lambda 函数的系统和应用程序日志和指标以及自定义注意事项。 |
本指南提供了一种日志和监控解决方案,该解决方案涉及以下领域 CloudWatch及相关 AWS 服务:
-
规划您的 CloudWatch 部署— 规划 CloudWatch 部署的注意事项和集中 CloudWatch 配置的指导。
-
为EC2实例和本地服务器配置 CloudWatch 代理— 系统级和应用程序级日志记录和指标的 CloudWatch 配置详细信息。
-
CloudWatch Amazon EC2 和本地服务器的代理安装方法— 安装 CloudWatch 代理的方法,包括使用 Systems Manager 在多个区域和账户中自动部署。
-
在 Amazon 上记录和监控 ECS — 在 Amazon 中配置 CloudWatch 集群级和应用程序级日志记录和指标的指南。ECS
-
在 Amazon 上记录和监控 EKS — 在 Amazon 中配置 CloudWatch 集群级和应用程序级日志记录和指标的指南。EKS
-
Amazon EKS 上的 Prometheus 监控— 介绍并比较了适用于 Prometheus 的亚马逊托管服务与 Prometheus 的 Container Insights 监 CloudWatch 控。
-
的日志和指标 AWS Lambda— 为您的 Lambda 函数 CloudWatch 进行配置的指南。
-
搜索和分析日志 CloudWatch— 使用 Amazon A CloudWatch pplication Insights、Lo CloudWatch gs Insights 分析日志以及将日志分析扩展到亚马逊 OpenSearch 服务的方法。
-
带有的警报选项 CloudWatch— 介绍 CloudWatch 警报和 CloudWatch 异常检测,并提供警报创建和设置指南。
-
监控应用和服务可用性— 介绍并比较了 S CloudWatch ynthetics 和 Route 53 运行状况检查,以实现自动可用性监控。
-
使用跟踪应用AWS X-Ray— 使用适用于亚马逊、亚马逊EC2、亚马逊ECS和 Lambda 的 X-Ray 进行应用程序跟踪的介绍和设置 EKS
-
使用 CloudWatch 进行仪表板和可视— CloudWatch 仪表板简介,用于提高跨 AWS 工作负载的可观察性。
-
CloudWatch 与 AWS 服务集成— 说明如何与各种 AWS 服务 CloudWatch 集成。
-
亚马逊托管 Grafana 用于仪表板和可视化— 介绍并比较了用于仪表板和可视化的 Amazon Managed Gra CloudWatch fana。
本指南中使用了这些领域的实施示例,也可以从AWS 示例 GitHub 存储库