本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon CloudWatch 可观测性访问管理器进行集中监控
由 Anand Krishna Varanasi (AWS)、Jimmy Morgan ()、Ashish Kumar (AWS)、Balaji Vedagiri (AWS)、()、Sarat Chandra Pothula (AWS) 和 Vivek Thangamuthu JAGDISH KOMAKULA (AWS) 创作 AWS AWS
代码存储库:cloudwatch-obervability-access-manager- | 环境:生产 | 技术:基础架构;管理和治理;多账户策略 |
AWS服务:亚马逊 CloudWatch;亚马逊 CloudWatch 日志 |
Summary
可观测性对于监控、理解应用程序和排除应用程序故障至关重要。跨多个账户的应用程序(如 AWS Control Tower 或 landing zone 实现)会生成大量日志和跟踪数据。为了快速解决问题或了解用户分析或业务分析,您需要一个跨所有账户的通用可观测性平台。Amazon CloudWatch Observability 访问管理器允许您从一个中心位置访问和控制多个账户日志。
您可使用可观测性访问管理器来查看和管理源账户生成的可观测性数据日志。源账户是为其资源生成 AWS 账户 可观测性数据的个人。源账户与监控账户共享其可观测性数据。共享的可观察性数据可以包括 Amazon 中的指标 CloudWatch、Amazon 日志中的 CloudWatch 日志以及中的 AWS X-Ray跟踪。有关更多信息,请参阅 Observability Access Manager 文档。
这种模式适用于拥有多个应用程序或基础架构 AWS 账户 并需要在公共位置查看日志的用户。它解释了如何使用 Terraform 设置 Observability Access Manager,以监控这些应用程序或基础设施的状态和运行状况。您可以通过多种方式安装此解决方案:
作为您手动设置的独立 Terraform 模块
通过使用持续集成和持续交付 (CI/CD) 管道
通过与其他解决方案集成,例如 Acco AWS Control Tower unt Factory for Terraform () AFT
操作说明部分中的说明涵盖了手动实现。有关AFT安装步骤,请参阅 GitHub 可观察性访问管理器
先决条件和限制
先决条件
限制
Observability Access Manager 具有以下服务限额,且该限额不可更改。部署此功能之前,请考虑这些配额。有关更多信息,请参阅 CloudWatch 文档中的CloudWatch 服务配额。
源账户关联:您最多可以将每个源账户关联到五个监控账户。
S ink AWS 区域 s:您可以为一个账户构建多个接收器,但每个账户只允许生成一个接收器。
此外:
汇和链接必须在同一位置创建 AWS 区域;它们不能是跨区域的。
跨区域和跨账户监控
对于跨区域、跨账户监控,您可以选择以下选项之一:
为警报和指标创建跨账户和跨区域 CloudWatch 仪表板。此选项不支持日志和跟踪。
使用 Amazon OpenSearch 服务实现集中日志。
从所有租户账户中为每个区域创建一个接收器,将指标推送到集中式监控账户(如本模式中所述),然后使用CloudWatch 指标流将数据发送到公共外部目标或第三方监控产品,例如 Datadog、Dynatrace、Sumo Logic、Splunk 或 New Relic。
架构
组成部分
CloudWatch Observability Access Manager 由两个主要组件组成,可实现跨账户可观察性:
接收器使源账户能够将可观测性数据发送到中央监控账户。接收器基本上为源账户提供了一个连接的网关连接。只能有一个接收器网关或连接,并且可以有多个账户连接到它。
每个源账户都有一个到接收器网关连接的链接,可观测性数据通过此链接发送。必须先创建接收器,然后才能从每个源账户创建链接。
架构
下图说明了 Observability Access Manager 及其组件。
工具
AWS 服务
Amazon CloudWatch 可帮助您实时监控您的 AWS 资源和运行的应用程序 AWS 的指标。
AWS Organizations是一项账户管理服务,可帮助您将多个账户整合 AWS 账户 到一个由您创建和集中管理的组织中。
AWS Identity and Access Management (IAM) 通过控制谁经过身份验证并有权使用 AWS 资源,从而帮助您安全地管理对资源的访问权限。
工具
Terraform
是一款基础设施即代码 (IaC) 工具 HashiCorp ,可帮助您创建和管理云和本地资源。 AWS Control Tower Account F@@ actory for Terraform (AFT) 设置了一个 Terraform 管道来帮助你在中配置和自定义账户。 AWS Control Tower您可以选择使用AFT在多个账户中大规模设置可观察性访问管理器。
代码存储库
此模式的代码可在 Obs GitHub ervability 访问管理器
最佳实践
在 AWS Control Tower 环境中,将日志帐户标记为中央监控帐户(接收器)。
如果您有多个组织中有多个账户 AWS Organizations,我们建议您在配置策略中加入组织而不是个人账户。如果您的账户数量较少,或者这些账户不属于接收器配置策略中的组织,则您可能会决定包含个人账户。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
克隆存储库。 | 克隆 GitHub 可观测性访问管理器存储库:
| AWS DevOps、云管理员、AWS管理员 |
为接收器模块指定属性值。 | 在
有关更多信息,请参阅文档中的AWS:: Oam:: Sink。 AWS CloudFormation | AWS DevOps、云管理员、AWS管理员 |
安装接收器模块。 | 导出您选择作为监控账户的凭据 AWS 账户 ,然后安装 Observability Access Manager 接收器模块:
| AWS DevOps、云管理员、AWS管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
为链接模块指定属性值。 | 在
有关更多信息,请参阅文档中的AWS:: Oam:: Link。 AWS CloudFormation | AWS DevOps、云管理员、云架构师 |
为个人账户安装链接模块。 | 导出个人账户凭证,并安装 Observability 访问管理器链接模块:
您可以为每个账户单独设置链接模块,也可以使用AFT在大量账户中自动安装此模块。 | AWS DevOps、云管理员、云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
状态消息。 |
在右侧,您应该会看到带有绿色勾号的监控账户已启用状态消息。这意味着监控账户有一个 Observability Access Manager 接收器,其他账户的链接将连接到该接收器。 | |
批准 link-to-sink连接。 |
有关更多信息,请参阅 CloudWatch 文档中的将监控账户与源账户关联起来。 | AWS DevOps、云管理员、云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
查看跨账户数据。 |
| AWS DevOps、云管理员、云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
查看其他账户的指标、控制面板、日志、小部件和警报。 | 作为一项附加功能,您可以与其他账户共享 CloudWatch 指标、仪表板、日志、小组件和警报。每个账户都使用一个名为 CloudWatch-CrossAccountSharingRole 的IAM角色来访问这些数据。 与中央监控账户有信任关系的源账户可以承担该角色并查看监控账户的数据。 CloudWatch 提供了用于创建角色的示例 CloudFormation 脚本。选择 “管理角色”IAM,然后在要查看数据的帐户中运行此脚本。
有关更多信息,请参阅 CloudWatch 文档 CloudWatch中的启用跨账户功能。 | AWS DevOps、云管理员、云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
设置跨账户、跨区域访问。 | 在中央监控账户中,您可以选择添加账户选择器,以便在账户之间轻松切换并查看其数据,而无需进行身份验证。
有关更多信息,请参阅文档中的跨账户跨区域 CloudWatch 控制台。 CloudWatch | AWS DevOps、云管理员、云架构师 |
相关资源
CloudWatch 跨账户可观察性(Ama CloudWatch zon 文档)
Amazon CloudWatch 可观察性访问管理器API参考(亚马逊 CloudWatch 文档)
资源:aws_oam_sink
(Terraform 文档) 数据来源:aws_oam_link
(Terraform 文档) CloudWatchObservabilityAccessManager
(AWS Boto3 文档)