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