

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

# 使用 Amazon CloudWatch 可观测性访问管理器进行集中监控
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager"></a>

*Anand Krishna Varanasi、JAGDISH KOMAKULA、Ashish Kumar、Jimmy Morgan、Sarat Chandra Pothula、Vivek Thangamuthu 和 Balaji Vedagiri，Amazon Web Services*

## Summary
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-summary"></a>

可观测性对于监控、理解应用程序和排除应用程序故障至关重要。跨多个账户的应用程序（如 AWS Control Tower 或 landing zone 实现）会生成大量日志和跟踪数据。为了快速解决问题或了解用户分析或业务分析，您需要一个跨所有账户的通用可观测性平台。Amazon CloudWatch Observability 访问管理器允许您从一个中心位置访问和控制多个账户日志。

您可使用可观测性访问管理器来查看和管理源账户生成的可观测性数据日志。源账户是为其资源生成 AWS 账户 可观测性数据的个人。源账户与监控账户共享其可观测性数据。共享的可观察性数据可以包括 Amazon 中的指标 CloudWatch、Amazon 日志中的 CloudWatch 日志以及中的 AWS X-Ray跟踪。有关更多信息，请参阅 [Observability Access Manager 文档](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html)。

这种模式适用于拥有多个应用程序或基础架构 AWS 账户 并需要在公共位置查看日志的用户。它解释了如何使用 Terraform 设置 Observability Access Manager，以监控这些应用程序或基础设施的状态和运行状况。您可以通过多种方式安装此解决方案：
+ 作为您手动设置的独立 Terraform 模块
+ 通过使用持续集成和持续交付（CI/CD）管道
+ 通过与 [AWS Control Tower Account Factory for Terraform（AFT）](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html)等其他解决方案集成

[操作说明](#centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-epics)部分中的说明涵盖了手动实现。有关 AFT 的安装步骤，请参阅 Obs GitHub [ervability Access Manager 存储库](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform)的自述文件。

## 先决条件和限制
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-prereqs"></a>

**先决条件**
+ 在您的系统或自动管道中安装或引用 [Terraform](https://www.terraform.io/)。（我们建议您使用[最新版本](https://releases.hashicorp.com/terraform/)。）
+ 可用作中央监控账户的账户。其他账户创建到中央监控账户的链接以便查看日志。
+ （可选）源代码存储库，例如 GitHub、 AWS CodeCommit、Atlassian Bitbucket 或类似系统。如果您使用的是自动 CI/CD 流水线，则不需要源代码存储库。
+ （可选）在中创建用于代码审查和代码协作的拉取请求 (PRs) 的权限 GitHub。

**限制**

Observability Access Manager 具有以下服务限额，且该限额不可更改。部署此功能之前，请考虑这些配额。有关更多信息，请参阅 CloudWatch 文档中的[CloudWatch 服务配额](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)。
+ **源账户关联**：您最多可以将每个源账户关联到五个监控账户。
+ **S** ink AWS 区域 s：您可以为一个账户构建多个接收器，但每个账户只允许生成一个接收器。

此外：
+ 汇和链接必须在同一位置创建 AWS 区域；它们不能是跨区域的。

**跨区域和跨账户监控**

对于跨区域、跨账户监控，您可以选择下列选项之一：
+ 为警报[和指标创建跨账户和跨区域 CloudWatch 仪表板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)。此选项不支持日志和跟踪。
+ 使用 Amazon OpenSearch 服务实现[集中日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)。
+ 从所有租户账户中为每个区域创建一个接收器，将指标推送到集中式监控账户（如本模式中所述），然后使用[CloudWatch 指标流](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html)将数据发送到公共外部目标或第三方监控产品，例如 Datadog、Dynatrace、Sumo Logic、Splunk 或 New Relic。

## 架构
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-architecture"></a>

**组件**

CloudWatch Observability Access Manager 由两个主要组件组成，可实现跨账户可观察性：
+ *接收器*使源账户能够将可观测性数据发送到中央监控账户。接收器基本上为源账户提供了一个连接的网关连接。只能有一个接收器网关或连接，并且可以有多个账户连接到它。
+ 每个源账户都有一个到接收器网关连接的*链接*，可观测性数据通过此链接发送。必须先创建接收器，然后才能从每个源账户创建链接。

**架构**

下图说明了 Observability Access Manager 及其组件。

![\[带有接收器和链接的跨账户可观测性架构。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/00603763-4f99-456e-85e7-a80d803b087d/images/5188caf9-348b-4d91-b560-2b3d6ea81191.png)


## 工具
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-tools"></a>

**AWS 服务**
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 可帮助您实时监控您的 AWS 资源和运行的应用程序 AWS 的指标。
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)是一项账户管理服务，可帮助您将多个账户整合 AWS 账户 到一个由您创建和集中管理的组织中。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 通过控制谁经过身份验证并有权使用 AWS 资源，从而帮助您安全地管理对资源的访问权限。

**工具**
+ [Terraform](https://www.terraform.io/) 是一款基础设施即代码 (IaC) 工具 HashiCorp ，可帮助您创建和管理云和本地资源。
+ AWS Control Tower Account F@@ [actory for Terraform (AFT) 设置了 Terraform 管道来帮助你在中配置和自定义账户](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html)。 AWS Control Tower您可以选择使用 AFT 跨多个账户大规模设置 Observability Access Manager。

**代码存储库**

此模式的代码可在 Obs GitHub [ervability 访问管理器](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform)存储库中找到。

## 最佳实践
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-best-practices"></a>
+ 在 AWS Control Tower 环境中，将日志帐户标记为中央监控帐户（接收器）。
+ 如果您有多个组织中有多个账户 AWS Organizations，我们建议您在配置策略中加入组织而不是个人账户。如果您的账户数量较少，或者这些账户不属于接收器配置策略中的组织，则您可能会决定包含个人账户。

## 操作说明
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-epics"></a>

### 设置接收器模块
<a name="set-up-the-sink-module"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 克隆存储库。 | 克隆 GitHub 可观测性访问管理器存储库：<pre>git clone https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform</pre> | AWS DevOps、云管理员、AWS 管理员 | 
| 为接收器模块指定属性值。 | 在 `main.tf` 文件中 (在存储库的 `deployments/aft-account-customizations/LOGGING/terraform/` ****文件夹中)，为以下属性指定值：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)有关更多信息，请参阅 CloudFormation 文档[AWS::Oam::Sink](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)中的。 | AWS DevOps、云管理员、AWS 管理员 | 
| 安装接收器模块。 | 导出您选择作为监控账户的凭据 AWS 账户 ，然后安装 Observability Access Manager 接收器模块：<pre>Terraform Init<br />Terrafom Plan<br />Terraform Apply</pre> | AWS DevOps、云管理员、AWS 管理员 | 

### 设置链接模块
<a name="set-up-the-link-module"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 为链接模块指定属性值。 | 在 `main.tf ` 文件中（在存储库的 `deployments/aft-account-customizations/LOGGING/terraform/` ****文件夹中），为以下属性指定值：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)有关更多信息，请参阅 CloudFormation 文档[AWS::Oam::Link](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)中的。 | AWS DevOps、云管理员、云架构师 | 
| 为个人账户安装链接模块。 | 导出个人账户凭证，并安装 Observability 访问管理器链接模块：<pre>Terraform Plan<br />Terraform Apply</pre>您可为每个账户单独设置链接模块，也可以使用 [AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) 在大量账户中自动安装此模块。 | AWS DevOps、云管理员、云架构师 | 

### 批准 sink-to-link连接
<a name="approve-sink-to-link-connections"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 状态消息。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)在右侧，您应该会看到带有绿色勾号的**监控账户已启用**状态消息。这意味着监控账户有一个 Observability Access Manager 接收器，其他账户的链接将连接到该接收器。 |  | 
| 批准 link-to-sink连接。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)有关更多信息，请参阅 CloudWatch 文档中的[将监控账户与源账户关联起来](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html)。 | AWS DevOps、云管理员、云架构师 | 

### 验证跨账户可观测性数据
<a name="verify-cross-account-observability-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 查看跨账户数据。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html) | AWS DevOps、云管理员、云架构师 | 

### （可选）允许源账户信任监控账户
<a name="optional-enable-source-accounts-to-trust-monitoring-account"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 查看其他账户的指标、控制面板、日志、小部件和警报。 | 作为一项附加功能，****您可以与其他账户共享 CloudWatch 指标、仪表板、日志、小组件和警报。每个账户都使用名为 **CloudWatch-** 的 IAM 角色CrossAccountSharingRole 来访问这些数据。与中央监控账户有信任关系的源账户可以承担该角色并查看监控账户的数据。CloudWatch 提供了用于创建角色的示例 CloudFormation 脚本。选择**管理 IAM 角色**，然后在要查看数据的账户中运行此脚本。<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root"<br />                ]<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre>有关更多信息，请参阅 CloudWatch 文档[ CloudWatch中的启用跨账户功能](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html#enable-cross-account-cross-Region)。 | AWS DevOps、云管理员、云架构师 | 

### （可选）从监控账户查看跨账户跨 Region
<a name="optional-view-cross-account-cross-region-from-the-monitoring-account"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 设置跨账户、跨区域访问。 | 在中央监控账户中，您可以选择添加账户选择器，以便在账户之间轻松切换并查看其数据，而无需进行身份验证。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)有关更多信息，请参阅文档中的[跨账户跨区域 CloudWatch 控制台](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)。 CloudWatch  | AWS DevOps、云管理员、云架构师 | 

## 相关资源
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-resources"></a>
+ [CloudWatch 跨账户可观察性](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)（Ama CloudWatch zon 文档）
+ [亚马逊 CloudWatch 可观察性访问管理器 API 参考](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html)（亚马逊 CloudWatch 文档）
+ [资源：aws\$1oam\$1sink](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/oam_sink)（Terraform 文档）
+ [数据来源：aws\$1oam\$1link](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/oam_link)（Terraform 文档）
+ [CloudWatchObservabilityAccessManager](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/oam.html)（AWS Boto3 文档）