Amazon CloudWatch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

跨账户跨区域的控制面板

您可以创建跨账户跨区域的控制面板,这些控制面板可将来自多个 AWS 账户和多个区域的 CloudWatch 数据汇总到一个控制面板中。在此高级控制面板中,您可以了解整个应用程序,并深入了解更多特定的控制面板,而无需登录和注销账户或切换区域。

您可以在 AWS 管理控制台中和以编程方式创建跨账户跨区域的控制面板。

先决条件

您必须先启用至少一个共享账户和至少一个监控账户,然后才能创建跨账户跨区域的控制面板。此外,要能够使用 AWS 管理控制台创建跨账户的控制面板,您必须启用控制台以实现跨账户功能。有关更多信息,请参阅跨账户跨区域的 CloudWatch 控制台

利用 AWS 管理控制台创建和使用跨账户跨区域的控制面板

您可以使用 AWS 管理控制台创建跨账户跨区域的控制面板。

创建跨账户跨区域的控制面板

  1. 登录到监控账户。

  2. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  3. 在导航窗格中,选择 Dashboards

  4. 选择一个控制面板,或创建一个新的控制面板。

  5. 在屏幕顶部,使用 View data for (查看数据) 旁边的框在各个账户和区域之间切换。

    在创建控制面板时,您可以包含来自多个账户和区域的小组件。小组件包括图表、警报和 CloudWatch Logs Insights 小组件。

使用来自不同的账户和区域的指标创建图表

  1. 登录到监控账户。

  2. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  3. 在导航窗格中,选择 Metrics

  4. All metrics (所有指标) 下,使用 View data for (查看数据) 旁边的框来选择要从中添加指标的账户和区域。

  5. 将所需指标添加到图表中。有关更多信息,请参阅 绘制指标的图表

  6. 重复步骤 4-5 以添加来自其他账户和区域的指标。

  7. (可选)选择 Graphed metrics (绘成图表的指标) 选项卡,然后添加使用了所选指标的指标数学函数。有关更多信息,请参阅使用指标数学

    您还可以设置单个图表以包含多个 SEARCH 函数。每项搜索均可引用不同的账户或区域。

  8. 在完成图表后,依次选择 Actions (操作)Add to dashboard (添加到控制面板)

    选择您的跨账户控制面板,然后选择 Add to dashboard (添加到控制面板)

将来自不同账户的警报添加到跨账户的控制面板

  1. 登录到监控账户。

  2. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  3. 使用 View data for (查看数据) 旁边的框选择警报所在的账户。

  4. 在导航窗格中,选择 Alarms

  5. 选中要添加的警报旁边的复选框,然后选择 Add to dashboard (添加到控制面板)

  6. 选择要将警报添加到的跨账户的控制面板,然后选择 Add to dashboard (添加到控制面板)

以编程方式创建跨账户跨区域的控制面板

您可以使用 AWS API 和开发工具包以编程方式创建控制面板。有关更多信息,请参阅 PutDashboard

为了启用跨账户跨区域的控制面板,我们已向控制面板正文结构添加新参数,如下表和示例中所示。有关总体控制面板正文结构的更多信息,请参阅控制面板正文结构和语法

参数 使用 范围 默认值

accountId

指定小组件或指标所在的账户的 ID。

小组件或指标

当前登录的账户

region

指定指标的区域。

小组件或指标

控制台中选定的当前区域

以下示例显示了跨账户跨区域的控制面板中的小组件的 JSON 源。

此示例将 accountId 字段设置为小组件级别的共享账户的 ID。这指定了此小组件中的所有指标将来自该共享账户和区域。

{ "widgets": [ { ... "properties": { "metrics": [ ….. ], "accountId": "111122223333", "region": "us-east-1" } } ] }

此示例在每个指标级别以不同的方式设置 accountId 字段。在此示例中,此指标数学表达式中的各个指标来自不同的共享账户和不同的区域。

{ "widgets": [ { ... "properties": { "metrics": [ [ { "expression": "SUM(METRICS())", "label": "[avg: ${AVG}] Expression1", "id": "e1", "stat": "Sum" } ], [ "AWS/EC2", "CPUUtilization", { "id": "m2", "accountId": "5555666677778888", "region": "us-east-1", "label": "[avg: ${AVG}] ApplicationALabel " } ], [ ".", ".", { "id": "m1", "accountId": "9999000011112222", "region": "eu-west-1", "label": "[avg: ${AVG}] ApplicationBLabel" } ] ], "view": "timeSeries", "stacked": false, "stat": "Sum", "period": 300, "title": "Cross account example" } } ] }

此示例显示了一个警报小组件。

{ "type": "metric", "x": 6, "y": 0, "width": 6, "height": 6, "properties": { "accountID": "111122223333", "title": "over50", "annotations": { "alarms": [ "arn:aws:cloudwatch:us-east-1:379642911888:alarm:over50" ] }, "view": "timeSeries", "stacked": false } }

此示例针对的是 CloudWatch Logs Insights 小组件。

{ "type": "log", "x": 0, "y": 6, "width": 24, "height": 6, "properties": { "query": "SOURCE 'route53test' | fields @timestamp, @message\n| sort @timestamp desc\n| limit 20", "accountId": "111122223333", "region": "us-east-1", "stacked": false, "view": "table" } }

以编程方式创建控制面板的另一种方法是,先在 AWS 管理控制台中创建一个控制面板,然后复制此控制面板的 JSON 源。为此,请加载该控制面板,然后依次选择 Actions (操作)View/edit source (查看/编辑源)。然后,您可以复制此控制面板 JSON 以将其用作模板,从而创建类似的控制面板。