

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 CodeDeploy 代理程式日誌傳送至 CloudWatch
<a name="codedeploy-agent-operations-cloudwatch-agent"></a>

您可以使用統一的 CloudWatch 代理程式將 CodeDeploy 代理程式指標和日誌資料傳送至 CloudWatch，或更簡單地傳送 CloudWatch 代理程式。 [ CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/UseCloudWatchUnifiedAgent.html)

使用以下指示安裝 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. 針對 CodeDeploy 部署日誌檔案`Log file path`輸入路徑，例如：**/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. 對於 CodeDeploy `Log file path` 更新程式日誌檔的路徑，例如：**/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`輸入路徑 r 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**。

**透過手動建立或編輯組態檔案 (Linux) 來設定 CloudWatch 代理程式**

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)中所述。