

# 使用 Amazon CloudWatch 控制面板
<a name="CloudWatch_Dashboards"></a>

Amazon CloudWatch 提供自动预构建控制面板，也支持创建自己的控制面板。控制面板可帮助您在单个视图中监控资源，甚至包括分布在不同区域的资源。您可以使用 CloudWatch 控制面板为 Amazon 资源创建遥测数据的自定义视图。

利用自定义控制面板，您可以创建以下各项：
+ 所选指标和告警的单一视图，用于帮助您跨一个或多个区域评估资源和应用程序的运行状况。您可以在每个图表上选择用于每个指标的颜色，以便轻松地跨多个图表跟踪同一指标。
+ 一个操作手册，为团队成员提供有关如何对操作事件期间发生的特定事故做出响应的指南。
+ 关键资源与应用程序测量的公共视图，团队成员可以共享该视图，以便在操作事件期间加快通信流。

如果您有多个 Amazon 账户，则可以设置 *CloudWatch 跨账户可观测性*，然后在监控账户中创建丰富的跨账户控制面板。您可以无缝搜索、可视化和分析您的指标、日志和跟踪记录，而不受账户限制。

通过 CloudWatch 跨账户可观测性，您可以在监控账户的控制面板中执行以下操作：
+ 搜索、查看和创建源账户中的指标图表。一个图表可以包含来自多个账户的指标。
+ 在监控账户中创建告警，以监视源账户中的指标。
+ 查看位于源账户中的日志组的日志事件，并对源账户中的日志组运行 CloudWatch Logs Insights 查询。监控账户中的单个 CloudWatch Logs Insights 查询可以同时查询多个源账户中的多个日志组。
+ 在 X-Ray 中的跟踪地图中查看源账户的节点。然后，您可以将该地图筛选到特定的源账户。

当您登录监控账户时，支持 CloudWatch 跨账户可观测性功能的每个页面的右上角都会出现一个蓝色的 **Monitoring account**（监控账户）徽章。

有关设置 CloudWatch 跨账户可观测性的更多信息，请参阅 [CloudWatch 跨账户可观测性](CloudWatch-Unified-Cross-Account.md)。

 您可以从控制台或使用 Amazon CLI 或 `PutDashboard` API 操作来创建控制面板。您可以将控制面板添加到收藏夹列表。在收藏夹列表中，您不仅可以访问您收藏的控制面板，还可以访问您最近访问过的控制面板。有关更多信息，请参阅[将控制面板添加到收藏夹列表](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/add-dashboard-to-favorites.html)。

要访问 CloudWatch 控制面板，您需要以下项目之一：
+ `AdministratorAccess` 策略
+ `CloudWatchFullAccess` 策略
+ 包含以下一个或多个特定权限的自定义策略：
  + `cloudwatch:GetDashboard` 和 `cloudwatch:ListDashboards` 能够查看控制面板
  + `cloudwatch:PutDashboard` 能够创建或修改控制面板
  + `cloudwatch:DeleteDashboards` 能够删除控制面板

**Topics**
+ [开始使用自动控制面板](GettingStarted.md)
+ [创建自定义控制面板](create_dashboard.md)
+ [利用控制台创建跨账户跨区域的控制面板](create_xaxr_dashboard.md)
+ [以编程方式创建跨账户跨区域的控制面板](#create_xaxr_dashboard_API)
+ [使用来自不同账户和区域的指标创建图表](#create-graph-xaxr-dashboard)
+ [将来自不同账户的警报添加到跨账户的控制面板](create-alarm-xaxr-dashboard.md)
+ [使用变量创建控制面板](cloudwatch_dashboard_variables.md)
+ [在控制面板上使用小组件](create-and-work-with-widgets.md)
+ [共享控制面板](cloudwatch-dashboard-sharing.md)
+ [使用实时数据](cloudwatch-live-data.md)
+ [查看动画控制面板](cloudwatch-animated-dashboard.md)
+ [将控制面板添加到收藏夹列表](add-dashboard-to-favorites.md)
+ [更改时间段覆盖设置或刷新间隔](change_dashboard_refresh_interval.md)
+ [更改时间范围或时区格式](change_dashboard_time_format.md)

## 以编程方式创建跨账户跨区域的控制面板
<a name="create_xaxr_dashboard_API"></a>

您可以使用 Amazon API 和 SDK 以编程方式创建控制面板。有关更多信息，请参阅 [PutDashboard](https://docs.amazonaws.cn/AmazonCloudWatch/latest/APIReference/API_PutDashboard)。

为了启用跨账户跨区域的控制面板，我们已向控制面板正文结构添加新参数，如下表和示例中所示。有关总体控制面板正文结构的更多信息，请参阅[控制面板正文结构和语法](https://docs.amazonaws.cn/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html)。


| 参数 | 使用 | 范围 | 默认 | 
| --- | --- | --- | --- | 
|  `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"
  }
}
```

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

## 在 CloudWatch 控制面板中使用来自不同的账户和区域的指标创建图表
<a name="create-graph-xaxr-dashboard"></a>

1. 登录到监控账户。

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择 **Metrics**（指标），然后选择 **All metrics**（所有指标）。

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

1. 将所需指标添加到图表中。有关更多信息，请参阅 [绘制指标的图表](graph_metrics.md)。

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

1. （可选）选择 **Graphed metrics**（绘制的指标）选项卡，然后添加使用了所选指标的指标数学函数。有关更多信息，请参阅 [将数学表达式与 CloudWatch 指标结合使用](using-metric-math.md)。

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

1. 在完成图表后，依次选择 **Actions (操作)** 和 **Add to dashboard (添加到控制面板)**。

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