管理 CloudWatch 代理配置文件 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 CloudWatch 代理配置文件

我们建议您创建标准的亚马逊 CloudWatch 代理配置,其中包括您要在所有亚马逊弹性计算云 (Amazon EC2) 实例和本地服务器上捕获的系统日志和指标。您可以使用 CloudWatch 代理配置文件向导来帮助您创建配置文件。您可以多次运行配置向导,为不同的系统和环境生成唯一的配置。您也可以使用配置文件架构修改配置文件或创建变体。 CloudWatch 代理配置文件可以存储在 AWS Systems Manager Parameter Store 参数中。 如果您有多个 CloudWatch 代理配置文件,则可以创建单独的参数存储参数。如果您使用多个 AWS 账户或 AWS 区域,则必须管理和更新每个账户和区域中的参数存储参数。或者,您可以在 Amazon S3 中将 CloudWatch 配置作为文件或您选择的版本控制工具进行集中管理。 

CloudWatch代理附带的amazon-cloudwatch-agent-ctl脚本允许您指定配置文件、参数存储参数或代理的默认配置。默认配置与基本的预定义指标集保持一致,并将代理配置为向其报告内存和磁盘空间指标。 CloudWatch但是,它不包括任何日志文件配置。如果您对 CloudWatch 代理使用 S ystems Manager 快速设置,则也会应用默认配置。

由于默认配置不包括日志记录,也不是根据您的要求进行自定义的,因此我们建议您创建和应用自己的 CloudWatch 配置,并根据您的要求进行自定义。

管理 CloudWatch配置

默认情况下, CloudWatch 配置可以作为参数存储参数或 CloudWatch 配置文件进行存储和应用。  最佳选择将取决于您的要求。  在本节中,我们将讨论这两个选项的优缺点。  还详细介绍了用于管理多个 AWS 账户和 AWS 区域的 CloudWatch 配置文件的代表性解决方案。

Systems Manager 参数存储区参数

如果您想在一小部分 AWS 账户和区域中应用和管理 CloudWatch 单个标准 CloudWatch 代理配置文件,则使用 Parameter Store 参数管理配置效果很好。当您将 CloudWatch 配置存储为 Parameter Store 参数时,您可以使用 CloudWatch 代理配置工具(amazon-cloudwatch-agent-ctl在 Linux 上)从 Parameter Store 读取和应用配置,而无需将配置文件复制到您的实例。您可以使用 AmazonCloudWatch- S ManageAgent ystems Manager 命令文档在一次运行中更新多个 EC2 实例的 CloudWatch 配置。由于参数存储参数是区域性的,因此您必须在每个 AWS 区域和 AWS 账户中更新和维护您的 CloudWatch 参数存储参数。如果您要将多个 CloudWatch 配置应用于每个实例,则必须自定义 AmazonCloudWatch- C ManageAgent ommand 文档以包含这些参数。

CloudWatch 配置文件

如果您有许多 AWS 账户和区域,并且要管理多个 CloudWatch配置文件,那么将您的 CloudWatch 配置作为文件进行管理可能效果很好。使用这种方法,您可以在文件夹结构中浏览、组织和管理它们。  您可以对单个文件夹或文件应用安全规则,以限制和授予访问权限,例如更新和读取权限。您可以将它们共享并转移到 AWS 以外进行协作。  您可以对文件进行版本控制以跟踪和管理更改。  您可以通过将 CloudWatch 配置文件复制到 CloudWatch 代理配置目录来集中应用配置,而不必单独应用每个配置文件。对于 Linux, CloudWatch 配置目录位于中/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d。对于 Windows,配置目录位于以下网址C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs

启动代理时, CloudWatch 代理会自动附加在这些目录中找到的每个文件以创建 CloudWatch 复合配置文件。配置文件应存储在中央位置(例如,S3 存储桶),您的所需账户和区域可以访问该位置。  提供了使用这种方法的示例解决方案。

整理 CloudWatch 配置

无论使用哪种方法来管理您的 CloudWatch 配置,都要整理您的 CloudWatch 配置。您可以使用以下方法将配置组织到文件或参数存储路径中。

/config/standard/windows/ec2

存储适用于亚马逊 EC2 的 Windows 专用标准 CloudWatch 配置文件。您可以在此文件夹下进一步对不同 Windows 版本、EC2 实例类型和环境的标准操作系统 (OS) 配置进行分类。

/config/standard/windows/本地部署

为本地服务器存储特定于 Windows 的标准 CloudWatch 配置文件。您还可以在此文件夹下对不同 Windows 版本、服务器类型和环境的标准操作系统配置进行进一步分类。

/config/standard/linux/ec2

存储适用于亚马逊 EC2 的标准 Linux 专用 CloudWatch 配置文件。您可以在此文件夹下进一步对不同 Linux 发行版、EC2 实例类型和环境的标准操作系统配置进行分类。

/config/standard/linux/本地部署

存储本地服务器的标准 Linux 专用 CloudWatch 配置文件。您可以在此文件夹下进一步对不同 Linux 发行版、服务器类型和环境的标准操作系统配置进行分类。

/config/ecs

如果您使用亚马逊 ECS 容器实例,请存储特定于亚马逊弹性容器服务 (Amazon ECS) 的 CloudWatch 配置文件。这些配置可以附加到标准的 Amazon EC2 配置中,用于特定于 Amazon ECS 的系统级日志记录和监控。

/config/ <application_name>

存储特定于应用程序的 CloudWatch 配置文件。您可以使用环境和版本的其他文件夹和前缀对应用程序进行进一步分类。

示例:将 CloudWatch 配置文件存储在 S3 存储桶中

本节提供了一个使用 Amazon S3 存储 CloudWatch配置文件的示例,以及使用自定义 Systems Manager 运行手册来检索和应用 CloudWatch 配置文件。这种方法可以解决使用 Systems Manager 参数存储参数进行大规模 CloudWatch配置的一些挑战:

  • 如果您使用多个区域,则必须在每个区域的参数存储中同步 CloudWatch配置更新。Parameter Store 是一项区域服务,在使用 CloudWatch 代理的每个区域中必须更新相同的参数。

  • 如果您有多个 CloudWatch 配置,则必须启动每个参数存储配置的检索和应用。您必须从 Parameter Store 中单独检索每个 CloudWatch 配置,并在添加新配置时更新检索方法。相比之下, CloudWatch 提供了用于存储配置文件的配置目录,并应用该目录中的每个配置,而无需单独指定它们。

  • 如果您使用多个账户,则必须确保每个新账户在其 Parameter Store 中都具有所需的 CloudWatch 配置。您还需要确保将来对这些账户及其区域进行任何配置更改。

您可以将 CloudWatch 配置存储在 S3 存储桶中,您的所有账户和区域均可访问该存储桶。然后,您可以使用 Systems Manager Automation 运行手册和 Systems Manager 状态管理器将这些 CloudWatch 配置从 S3 存储桶复制到配置目录。您可以使用 cloudwatch-config-s3 存储桶.yaml AWS 模板创建 S3 存储桶,该存储桶可从 CloudFormation AWS Organizations 中一个组织内的多个账户进行访问。该模板包含一个OrganizationID参数,该参数授予组织内所有账户的读取权限。

本指南的 “为 CloudWatch 代理部署和配置设置状态管理器和分发服务器” 部分提供的增强示例 Systems Manager 运行手册配置为使用 cloudwatch-config-s3-bucket.y aml AWS 模板创建的 S3 存储桶检索文件。 CloudFormation

或者,您可以使用版本控制系统(例如, GitHub或 AWS CodeCommit)来存储您的配置文件。如果要自动检索存储在版本控制系统中的配置文件,则必须管理或集中凭据存储,并更新 Systems Manager Automation 运行手册,该操作手册用于在您的账户和区域中检索证书。