

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

# 使用 在新執行個體上安裝 CloudWatch 代理程式 CloudFormation
<a name="Install-CloudWatch-Agent-New-Instances-CloudFormation"></a>

 本節說明如何使用 AWS CloudFormation在新的 Amazon EC2 執行個體上安裝 CloudWatch 代理程式。

**注意**  
 Amazon 將數個 CloudFormation 範本上傳到 GitHub，可協助您在新的 Amazon EC2 執行個體上安裝和更新 CloudWatch 代理程式。如需使用 的詳細資訊 CloudFormation，請參閱[什麼是 AWS CloudFormation？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)。

範本位置是[使用 將 Amazon CloudWatch 代理程式部署到 EC2 執行個體 CloudFormation](https://github.com/aws-cloudformation/aws-cloudformation-templates/tree/main/Solutions/AmazonCloudWatchAgent)。此位置同時包含 `inline` 和 `ssm` 目錄。每個目錄都包含適用於 Linux 和 Windows 執行個體的範本。


+ `inline` 目錄中的範本具有內嵌在 CloudFormation 範本中的 CloudWatch 代理程式組態。根據預設，Linux 範本會收集 `mem_used_percent` 和 `swap_used_percent` 指標，而 Windows 範本則會收集 `Memory % Committed Bytes In Use` 和 `Paging File % Usage`。

  若要修改這些範本以收集不同指標，請修改範本的以下區段。以下範例來自適用於 Linux 伺服器的範本。請依照代理程式組態檔案的格式和語法來完成這些變更。如需詳細資訊，請參閱[手動建立或編輯 CloudWatch 代理程式組態檔案](CloudWatch-Agent-Configuration-File-Details.md)。

  ```
  {
     "metrics":{
        "append_dimensions":{
           "AutoScalingGroupName":"${!aws:AutoScalingGroupName}",
           "ImageId":"${!aws:ImageId}",
           "InstanceId":"${!aws:InstanceId}",
           "InstanceType":"${!aws:InstanceType}"
        },
        "metrics_collected":{
           "mem":{
              "measurement":[
                 "mem_used_percent"
              ]
           },
           "swap":{
              "measurement":[
                 "swap_used_percent"
              ]
           }
        }
     }
  }
  ```
**注意**  
在內嵌範本中，所有預留位置變數前面必須有驚嘆號 (\$1) 作為跳脫字元。您可以在範例範本中看到。如果您新增其他預留位置變數，務必在名稱前面加上驚嘆號。
+ `ssm` 目錄中的範本會從參數存放區載入代理程式組態檔案。若要使用這些範本，您必須先建立組態檔案並將其上傳到參數存放區。然後，在範本中提供檔案的參數存放區名稱。您可以手動或使用精靈來建立組態檔案。如需詳細資訊，請參閱[建立 CloudWatch 代理程式組態檔案](create-cloudwatch-agent-configuration-file.md)。

您可以使用這兩種類型的範本來安裝 CloudWatch 代理程式，以及更新代理程式組態。

如需在已啟用安全增強型 Linux (SELinux) 的系統上設定代理程式的資訊，請參閱 [使用安全增強型 Linux (SELinux) 設定 CloudWatch 代理程式](CloudWatch-Agent-SELinux.md)。

## 教學課程：使用 CloudFormation 內嵌範本安裝和設定 CloudWatch 代理程式
<a name="installing-CloudWatch-Agent-using-CloudFormation-Templates-inline"></a>

本教學課程會逐步引導您使用 CloudFormation 在新的 Amazon EC2 執行個體上安裝 CloudWatch 代理程式。本教學會使用內嵌範本在執行 Amazon Linux 2 的新執行個體上安裝，不需要使用 JSON 組態檔案或參數存放區。內嵌範本在範本中包含代理程式組態。在此教學課程中，您將使用範本包含的預設代理程式組態。

完成安裝代理程式的程序之後，教學課程會繼續說明如何更新代理程式。

**使用 CloudFormation 在新執行個體上安裝 CloudWatch 代理程式**

1. 從 GitHub 下載範本。在本教學中，下載 Amazon Linux 2 的內嵌範本，如下所示：

   ```
   curl -O https://raw.githubusercontent.com/aws-cloudformation/aws-cloudformation-templates/main/Solutions/AmazonCloudWatchAgent/inline/amazon_linux.yaml
   ```

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 選擇**建立堆疊**。

1. 針對 **Choose template (選擇範本)**，選取 **Upload a template to Simple Storage Service (Amazon S3) (將範本上傳至 Simple Storage Service (Amazon S3))**，選擇已下載的範本，然後選擇 **Next (下一步)**。

1. 在 **Specify Details (指定詳細資訊)** 頁面上，填寫下列參數，然後選擇 ** Next (下一步)**：
   + **堆疊名稱**：為您的堆疊選擇 CloudFormation 堆疊名稱。
   + **IAMRole**：選擇有權寫入 CloudWatch 指標、日誌和追蹤的 IAM 角色。如需詳細資訊，請參閱[先決條件](prerequisites.md)。
   + **InstanceAMI**：選擇在您要啟動堆疊區域中有效的 AMI。
   + **InstanceType**：選擇有效的執行個體類型。
   + **KeyName**：若要允許以 SSH 存取新的執行個體，請選擇現有的 Amazon EC2 金鑰對。如果您還沒有 Amazon EC2 金鑰對，可以在 AWS 管理主控台中建立一個。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的 [Amazon EC2 金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。
   + **SSHLocation**：指定可用於透過 SSH 連接到執行個體的 IP 地址範圍。預設值允許從任何 IP 地址存取。

1. 在 **Options (選項)** 頁面上，您可以選擇為堆疊資源加上標籤。選擇**下一步**。

1. 在 **Review** (審核) 頁面上，審核您的資訊，確認該堆疊可能會建立 IAM 資源，並選擇 **Create** (建立)。

   如果您重新整理主控台，您會看到新堆疊的狀態為 `CREATE_IN_PROGRESS`。

1. 執行個體建立後，您就可以在 Amazon EC2 主控台看到它。或者，您可以連線到主機並檢查進度。

   使用以下命令確認已安裝代理程式：

   ```
   rpm -qa amazon-cloudwatch-agent
   ```

   使用以下命令確認代理程式正在執行：

   ```
   ps aux | grep amazon-cloudwatch-agent
   ```

下一個程序示範使用 CloudFormation 來使用內嵌範本更新 CloudWatch 代理程式。預設內嵌範本會收集 `mem_used_percent` 指標。在此教學課程中，您將變更代理程式組態來停止收集該指標。

**使用 CloudFormation 更新 CloudWatch 代理程式**

1. 在您於上個程序下載的範本中，移除下列幾行，然後儲存範本：

   ```
   "mem": {
                           
        "measurement": [
            "mem_used_percent"
          ]
    },
   ```

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 在 CloudFormation 儀表板上，選取您建立的堆疊，然後選擇**更新堆疊**。

1. 針對 **Select Template (選取範本)**，選取 **Upload a template to Simple Storage Service (Amazon S3) (將範本上傳至 Simple Storage Service (Amazon S3))**，選擇您修改的範本，然後選擇 **Next (下一步)**。

1. 在 **Options (選項)** 頁面上，選擇 **Next (下一步)**，然後選擇 **Next (下一步)**。

1. 在 **Review (檢閱)** 頁面上，檢閱您的資訊，然後選擇 **Update (更新)**。

   一段時間後，您會看到 `UPDATE_COMPLETE`。

## 教學課程：使用 CloudFormation 和 參數存放區安裝 CloudWatch 代理程式
<a name="installing-CloudWatch-Agent-using-CloudFormation-Templates"></a>

本教學課程會逐步引導您使用 CloudFormation 在新的 Amazon EC2 執行個體上安裝 CloudWatch 代理程式。此教學安裝使用您在參數存放區中建立並儲存的代理程式組態檔案，在執行 Amazon Linux 2 的新執行個體上安裝。

完成安裝代理程式的程序之後，教學課程會繼續說明如何更新代理程式。

**若要使用 參數存放區中的組態 CloudFormation ，在新執行個體上安裝 CloudWatch 代理程式**

1. 若您尚未執行此作業，請將 CloudWatch 代理程式套件下載到您的其中一台電腦，讓您可以建立代理程式組態檔案。如需詳細資訊及使用參數存放區下載代理程式，請參閱 [下載 CloudWatch 代理程式套件](download-CloudWatch-Agent-on-EC2-Instance-commandline-first.md)。

1. 建立代理程式組態檔案並將其儲存在參數存放區中。如需詳細資訊，請參閱[建立 CloudWatch 代理程式組態檔案](create-cloudwatch-agent-configuration-file.md)。

1. 從 GitHub 下載範本，如下所示。

   ```
   curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/ssm/amazon_linux.template
   ```

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 選擇**建立堆疊**。

1. 針對 **Choose template (選擇範本)**，選取 **Upload a template to Simple Storage Service (Amazon S3) (將範本上傳至 Simple Storage Service (Amazon S3))**，選擇您下載的範本，然後選擇 **Next (下一步)**。

1. 在 **Specify Details (指定詳細資訊)** 頁面上，據此填寫下列參數，然後選擇 ** Next (下一步)**。
   + **堆疊名稱**：為您的堆疊選擇 CloudFormation 堆疊名稱。
   + **IAMRole**：選擇有權寫入 CloudWatch 指標、日誌和追蹤的 IAM 角色。如需詳細資訊，請參閱[先決條件](prerequisites.md)。
   + **InstanceAMI**：選擇在您要啟動堆疊區域中有效的 AMI。
   + **InstanceType**：選擇有效的執行個體類型。
   + **KeyName**：若要允許以 SSH 存取新的執行個體，請選擇現有的 Amazon EC2 金鑰對。如果您還沒有 Amazon EC2 金鑰對，可以在 AWS 管理主控台中建立一個。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的 [Amazon EC2 金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。
   + **SSHLocation**：指定可用於透過 SSH 連接到執行個體的 IP 地址範圍。預設值允許從任何 IP 地址存取。
   + **SSMKey**：指定您在參數存放區中建立並儲存的代理程式組態檔案。

1. 在 **Options (選項)** 頁面上，您可以選擇為堆疊資源加上標籤。選擇**下一步**。

1. 在 **Review** (審核) 頁面上，審核您的資訊，確認該堆疊可能會建立 IAM 資源，並選擇 **Create** (建立)。

   如果您重新整理主控台，您會看到新堆疊的狀態為 `CREATE_IN_PROGRESS`。

1. 執行個體建立後，您就可以在 Amazon EC2 主控台看到它。或者，您可以連線到主機並檢查進度。

   使用以下命令確認已安裝代理程式：

   ```
   rpm -qa amazon-cloudwatch-agent
   ```

   使用以下命令確認代理程式正在執行：

   ```
   ps aux | grep amazon-cloudwatch-agent
   ```

下一個程序示範使用 CloudFormation 更新 CloudWatch 代理程式，使用您在參數存放區中儲存的代理程式組態。

**若要使用 參數存放區中的組態 CloudFormation 來更新 CloudWatch 代理程式**

1. 將參數存放區中存放的代理程式組態檔案變更為您希望的新組態。

1. 在您於[教學課程：使用 CloudFormation 和 參數存放區安裝 CloudWatch 代理程式](#installing-CloudWatch-Agent-using-CloudFormation-Templates)主題下載的 CloudFormation 範本中，變更版本編號。例如，您可能將 `VERSION=1.0` 變更為 `VERSION=2.0`。

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 在 CloudFormation 儀表板上，選取您建立的堆疊，然後選擇**更新堆疊**。

1. 針對 **Select Template (選取範本)**，選取 **Upload a template to Simple Storage Service (Amazon S3) (將範本上傳至 Simple Storage Service (Amazon S3))**，選取您剛修改的範本，然後選擇 **Next (下一步)**。

1. 在 **Options (選項)** 頁面上，選擇 **Next (下一步)**，然後選擇 **Next (下一步)**。

1. 在 **Review (檢閱)** 頁面上，檢閱您的資訊，然後選擇 **Update (更新)**。

   一段時間後，您會看到 `UPDATE_COMPLETE`。

## 使用 安裝 CloudWatch 代理程式的故障診斷 CloudFormation
<a name="CloudWatch-Agent-CloudFormation-troubleshooting"></a>

本節協助您排除透過 CloudFormation安裝和更新 CloudWatch 代理程式時的問題。

### 當更新失敗時偵測
<a name="CloudWatch-Agent-troubleshooting-Detecting-CloudFormation-update-issues"></a>

如果您使用 CloudFormation 更新 CloudWatch 代理程式組態，並使用無效的組態，代理程式會停止傳送任何指標至 CloudWatch。檢查代理程式組態更新是否成功的快速方法是查看 `cfn-init-cmd.log` 檔案。在 Linux 伺服器上，此檔案位於 `/var/log/cfn-init-cmd.log`。在 Windows 執行個體上，此檔案位於 `C:\cfn\log\cfn-init-cmd.log`。

### 遺失指標
<a name="CloudWatch-Agent-troubleshooting-Cloudformation-missing-metrics"></a>

如果您在安裝或更新代理程式之後沒看到預料會看到的指標，請確認已將代理程式設定為收集該指標。若要執行此作業，請檢查 `amazon-cloudwatch-agent.json` 檔案，以確定其中列出該指標，而且您查看的是正確的指標命名空間。如需詳細資訊，請參閱[CloudWatch 代理程式檔案和位置](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-files-and-locations)。