跨账户跨区域的控制面板 - Amazon CloudWatch

跨账户跨区域的控制面板

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

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

先决条件

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

利用 AWS Management Console 创建和使用跨账户跨区域的控制面板

您可以使用 AWS Management Console创建跨账户跨区域的控制面板。

创建跨账户跨区域的控制面板
  1. 登录到监控账户。

  2. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  3. 在导航窗格中,选择控制面板

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

  5. 在屏幕顶部,您可以在账户和区域之间切换。在创建控制面板时,您可以包含来自多个账户和区域的小组件。小组件包括图表、告警和 CloudWatch Logs Insights 小组件。

使用来自不同的账户和区域的指标创建图表
  1. 登录到监控账户。

  2. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  3. 在导航窗格中,选择 Metrics(指标),然后选择 All metrics(所有指标)。

  4. 选择要从中添加指标的账户和区域。您可以从屏幕右上角附近的账户和区域下拉菜单中选择您的账户和区域。

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

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

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

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

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

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

将来自不同账户的警报添加到跨账户的控制面板
  1. 登录到监控账户。

  2. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  3. 在页面的顶部,选择告警所在的账户。

  4. 在导航窗格中,选择警报

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

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

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

您可以使用 AWS API 和 SDK 以编程方式创建控制面板。有关更多信息,请参阅 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", "region":"us-east-1", ---> home region of the metric. Not present in above example "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 Management Console中创建一个控制面板,然后复制此控制面板的 JSON 源。为此,请加载该控制面板,然后依次选择 Actions (操作)View/edit source (查看/编辑源)。然后,您可以复制此控制面板 JSON 以将其用作模板,从而创建类似的控制面板。