

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

# 将 CodeDeploy 代理日志发送到 CloudWatch
<a name="codedeploy-agent-operations-cloudwatch-agent"></a>

您可以使用[统一 CodeDeploy 代理，或者更简单地说， CloudWatch 使用 CloudWatch 代理，向代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/UseCloudWatchUnifiedAgent.html)发送 CloudWatch 代理指标和日志数据。

按照以下说明安装 CloudWatch 代理并将其配置为与 CodeDeploy代理一起使用。

## 先决条件
<a name="codedeploy-agent-operations-cloudwatch-prerequisites"></a>

开始之前，完成以下任务：
+ 安装 CodeDeploy 代理并确保其正在运行。有关更多信息，请参阅[安装代 CodeDeploy 理](codedeploy-agent-operations-install.md)和[验证 CodeDeploy 代理是否正在运行](codedeploy-agent-operations-verify.md)。
+ 安装代 CloudWatch 理。有关更多信息，请参阅[安装代 CloudWatch 理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。
+ 向 CodeDeploy IAM 实例配置文件添加以下权限：
  + CloudWatchLogsFullAccess
  + CloudWatchAgentServerPolicy

  有关 CodeDeploy 实例配置文件的更多信息，请参阅[步骤 4：为 Amazon EC2 实例创建 IAM 实例配置文件](getting-started-create-iam-instance-profile.md)[入门 CodeDeploy](getting-started-codedeploy.md)。

## 将 CloudWatch 代理配置为收集 CodeDeploy 日志
<a name="codedeploy-agent-operations-cloudwatch-configure"></a>

您可以通过逐步执行向导或手动创建或编辑配置文件来配置 CloudWatch 代理。

**使用向导配置 CloudWatch 代理 (Linux)**

1. 按照运行[ CloudWatch 代理配置向导中所述运行向导](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard)。

1. 在向导中，当系统询问 `Do you want to monitor any log files?` 时，输入 **1**。

1. 指定 CodeDeploy 代理日志文件，如下所示：

   1. `Log file path`输入 CodeDeploy 日志文件的路径，例如：**/var/log/aws/codedeploy-agent/codedeploy-agent.log**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-log**。

1. 当系统询问 `Do you want to specify any additional log files?` 时，请输入 **1**。

1. 指定 CodeDeploy 代理部署日志，如下所示：

   1. 要`Log file path`输入 CodeDeploy 部署日志文件的路径，例如：**/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-deployment-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-deployment-log**。

1. 当系统询问 `Do you want to specify any additional log files?` 时，请输入 **1**。

1. 指定 CodeDeploy 代理更新程序日志，如下所示：

   1. `Log file path`输入 CodeDeploy 更新程序日志文件的路径，例如：。**/tmp/codedeploy-agent.update.log**

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-updater-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-updater-log**。

**使用向导配置 CloudWatch 代理 (Windows)**

1. 按照运行[ CloudWatch 代理配置向导中所述运行向导](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard)。

1. 在向导中，当系统询问 `Do you want to monitor any customized log files?` 时，输入 **1**。

1. 指定 CodeDeploy 日志文件，如下所示：

   1. 要`Log file path`输入 CodeDeploy 代理日志文件的路径，例如：**C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1log\$1codedeploy-agent-log.txt**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-log**。

1. 当系统询问 `Do you want to specify any additional log files?` 时，请输入 **1**。

1. 指定 CodeDeploy 代理部署日志，如下所示：

   1. `Log file path`输入 CodeDeploy 部署日志文件的路径，例如：**C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1deployment-logs\$1codedeploy-agent-deployments.log**。

   1. 对于 `Log group name`，输入日志组名称，例如：**codedeploy-agent-deployment-log**。

   1. 对于 `Log stream name`，输入日志流名称，例如：**\$1instance\$1id\$1-codedeploy-agent-deployment-log**。

**通过手动创建或编辑配置文件来配置 CloudWatch 代理 (Linux)**

1. 按照[手动创建或编辑 CloudWatch 代理配置文件中所述创建或编辑 CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)。

1. 确保该文件名为 `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json`，并且它包含以下代码：

   ```
   ...
   "logs": {
       "logs_collected": {
           "files": {
               "collect_list": [
                   {
                       "file_path": "/var/log/aws/codedeploy-agent/codedeploy-agent.log",
                       "log_group_name": "codedeploy-agent-log",
                       "log_stream_name": "{instance_id}-agent-log"
                   },
                   {
                       "file_path": "/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log",
                       "log_group_name": "codedeploy-agent-deployment-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                   },
                   {
                       "file_path": "/tmp/codedeploy-agent.update.log",
                       "log_group_name": "codedeploy-agent-updater-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-updater-log"
                   }
               ]
           }
       }
   }
   ...
   ```

**通过手动创建或编辑配置文件来配置 CloudWatch 代理 (Windows)**

1. 按照[手动创建或编辑 CloudWatch 代理配置文件中所述创建或编辑 CloudWatch 代理配置文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)。

1. 确保该文件名为 `C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json`，并且它包含以下代码：

   ```
   ...
   "logs": {
           "logs_collected": {
               "files": {
                   "collect_list": [
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\log\\codedeploy-agent-log.txt",
                           "log_group_name": "codedeploy-agent-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-log"
                       },
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\deployment-logs\\codedeploy-agent-deployments.log",
                           "log_group_name": "codedeploy-agent-deployment-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                       }
                   ]
               },
               ...
           }
       },
   ...
   ```

## 重新启动代 CloudWatch 理
<a name="codedeploy-agent-operations-cloudwatch-restart"></a>

进行更改后，按照启动 CloudWatch 代理中所述重新[启动 CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html#start-CloudWatch-Agent-EC2-fleet)。