

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

# 示例：使用自定义 Amazon CloudWatch 指标
<a name="customize-containers-cw"></a>

本主题提供了一个配置示例，该示例将基于亚马逊 Linux 2 及更高版本的平台的 Elastic Beanstalk 指标 CloudWatch 与亚马逊代理集成。配置示例使用 `.ebextensions` 配置文件中的文件和命令。

Amazon CloudWatch 是一项网络服务，可让您监控、管理和发布各种指标，并根据指标中的数据配置警报操作。您可以定义自定义指标供自己使用，Elastic Beanstalk 会将这些指标推送到亚马逊。 CloudWatch一旦亚马逊 CloudWatch 包含您的自定义指标，您就可以在亚马逊 CloudWatch 控制台中查看这些指标。

**亚马逊 CloudWatch 代理**  
Amazon CloudWatch 代理支持跨操作系统从 Amazon EC2 实例和本地服务器收集 CloudWatch 指标和日志。代理支持在系统级别收集的指标。此外，它还支持从应用程序或服务中收集自定义日志和指标。有关亚马逊 CloudWatch 代理的更多信息，请参阅*亚马逊 CloudWatch 用户指南*[中的通过 CloudWatch 代理收集指标和日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。

**注意**  
Ela [stic Beanstalk 增强型](health-enhanced.md)健康报告原生支持将各种实例和环境指标发布到。 CloudWatch有关详细信息，请参阅 [为环境发布 Amazon CloudWatch 自定义指标](health-enhanced-cloudwatch.md)。

**Topics**
+ [.Ebextensions 配置文件](#customize-containers-cw-update-roles)
+ [Permissions](#customize-containers-cw-policy)
+ [在 CloudWatch 控制台中查看指标](#customize-containers-cw-console)

## .Ebextensions 配置文件
<a name="customize-containers-cw-update-roles"></a>

此示例使用.ebextensions 配置文件中的文件和命令在 Amazon Linux 2 平台 CloudWatch 上配置和运行亚马逊代理。此代理预先包装在 Amazon Linux 2 中。如果您使用的是其他操作系统，则可能需要执行其他安装代理的步骤。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[安装 CloudWatch 代理](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。

要使用该示例，请将其保存到名为 `cloudwatch.config` 的文件中，并将该文件放到项目目录顶层的 `.ebextensions` 目录中，然后使用 Elastic Beanstalk 控制台（在[源包](applications-sourcebundle.md)中包括 .ebextensions 目录）或 [EB CLI](eb-cli3.md) 部署您的应用程序。

有关配置文件的详细信息，请参阅 [使用配置文件 (`.ebextensions`) 进行高级环境自定义](ebextensions.md)。

此文件有以下两个部分：
+ `files` — 此部分添加代理配置文件。它指示代理应向 Amazon 发送哪些指标和日志 CloudWatch。在此示例中，我们只发送 *mem\$1used\$1percent* 指标。有关亚马逊 CloudWatch 代理支持的系统级指标的完整列表，请参阅*亚马逊 CloudWatch 用户指南*[中的 CloudWatch 代理收集的指标](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html)。
+ `container_commands` — 本部分包含启动代理的命令，并将配置文件作为参数传递。有关 `container_commands` 的更多详细信息，请参阅 [容器命令](customize-containers-ec2.md#linux-container-commands)。

**.ebextensions/cloudwatch.config**

```
files:  
  "/opt/aws/amazon-cloudwatch-agent/bin/config.json": 
    mode: "000600"
    owner: root
    group: root
    content: |
      {
        "agent": {
          "metrics_collection_interval": 60,
          "run_as_user": "root"
        },
        "metrics": {
          "namespace": "System/Linux",
          "append_dimensions": {
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
          },
          "metrics_collected": {
            "mem": {
              "measurement": [
                "mem_used_percent"
              ]
            }
          }
        }
      }  
container_commands:
  start_cloudwatch_agent: 
    command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
```

## Permissions
<a name="customize-containers-cw-policy"></a>

您环境中的实例需要适当的 IAM 权限才能使用亚马逊 CloudWatch 代理发布自定义亚马逊 CloudWatch 指标。您可以将您的环境中的实例添加到此环境的[实例配置文件](concepts-roles-instance.md)中，从而向它们授予权限。您可以在部署应用程序前/后为此实例配置文件添加权限。

**授予发布 CloudWatch 指标的权限**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 选择您的环境的实例配置文件角色。在使用 Elastic Beanstalk 控制台或 [EB CLI](eb-cli3.md) 创建环境时，该角色默认为 `aws-elasticbeanstalk-ec2-role`。

1. 选择**权限**选项卡。

1. 在 **Permissions Policies**（权限策略）下，**Permissions**（权限）部分中，选择 **Attach policies**（附加策略）。

1. 在 “**附加权限**” 下，选择 AWS 托管策略**CloudWatchAgentServerPolicy**。然后单击 **Attach policy**（附加策略）。

有关如何管理策略的更多信息，请参阅《IAM 用户指南》**中的[使用策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)。

## 在 CloudWatch 控制台中查看指标
<a name="customize-containers-cw-console"></a>

将 CloudWatch 配置文件部署到您的环境后，请查看 [Amazon CloudWatch 控制台](https://console.aws.amazon.com/cloudwatch/home)以查看您的指标。自定义指标将位于**CWAgent**命名空间中。

有关更多信息，请参阅《*Amazon CloudWatch 用户指南*》中的[查看可用指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)。