

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

# 使用 安裝 CloudWatch 代理程式 AWS Systems Manager
<a name="installing-cloudwatch-agent-ssm"></a>

 使用 AWS Systems Manager 可讓您更輕鬆地在 Amazon EC2 執行個體機群上安裝 CloudWatch 代理程式。您可以將代理程式下載到一個伺服器，並為機群中的所有伺服器建立 CloudWatch 代理程式設定檔。然後，您可以透過 Systems Manager，使用您建立的設定檔，在其他伺服器上安裝代理程式。使用 AWS Systems Manager，利用下列主題安裝及執行 CloudWatch 代理程式。

**Topics**
+ [安裝或更新 SSM 代理程式](#update-SSM-Agent-EC2instance-first)
+ [驗證 Systems Manager 先決條件](#install-CloudWatch-Agent-minimum-requirements-first)
+ [驗證網際網路存取](#install-CloudWatch-Agent-internet-access-first)
+ [下載 CloudWatch 代理程式套件到您的第一個執行個體](#install-CloudWatch-Agent-EC2-first)
+ [建立及修改代理程式組態檔案](#CW-Agent-Instance-Create-Configuration-File-first)
+ [使用代理程式組態在其他 EC2 執行個體上安裝和啟動 CloudWatch 代理程式](#install-CloudWatch-Agent-on-EC2-Instance-fleet)
+ [使用代理程式組態在其他 EC2 執行個體上安裝 CloudWatch 代理程式](#install-CloudWatch-Agent-on-EC2-Instance-fleet)
+ [(選用) 修改 CloudWatch 代理程式的常見組態和命名描述檔](#CloudWatch-Agent-profile-instance-fleet)

## 安裝或更新 SSM 代理程式
<a name="update-SSM-Agent-EC2instance-first"></a>

在 Amazon EC2 執行個體上，CloudWatch 代理程式需要執行 2.2.93.0 或更高版本 SSM 代理程式的執行個體。在您安裝 CloudWatch 代理程式之前，如果您尚未完成更新或安裝，請在執行個體上更新或安裝 SSM Agent。

如需在執行 Linux 的執行個體上安裝或更新 SSM Agent 的資訊，請參閱*《AWS Systems Manager 使用者指南》*中的[在 Linux 執行個體上安裝和設定 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)。

如需有關安裝或更新 SSM Agent 的資訊，請參閱*《AWS Systems Manager 使用者指南》*中的[使用 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)。

## 驗證 Systems Manager 先決條件
<a name="install-CloudWatch-Agent-minimum-requirements-first"></a>

使用 Systems Manager 執行命令來安裝和設定 CloudWatch 代理程式之前，請確認您的執行個體符合 Systems Manager 最低要求。如需詳細資訊，請參閱《AWS Systems Manager 使用者指南》**中的 [Systems Manager 先決條件](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html#systems-manager-prereqs)。

## 驗證網際網路存取
<a name="install-CloudWatch-Agent-internet-access-first"></a>

您的 Amazon EC2 執行個體必須能夠連線至 CloudWatch 端點。這可以透過網際網路閘道、NAT 閘道或 CloudWatch Interface VPC 端點實現。如需有關如何設定網際網路存取的詳細資訊，請參閱*《Amazon VPC 使用者指南》*中的[網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。

在您的代理上設定的端點和連接埠如下所示：
+ 若您使用代理程式收集指標，您必須針對適當的區域將 CloudWatch 端點列入允許清單。這些端點會列在 *Amazon Web Services 一般參考* 的 [Amazon CloudWatch](https://docs.aws.amazon.com/general/latest/gr/rande.html#cw_region) 中。
+ 若您使用代理程式收集日誌，您必須針對適當的區域將 CloudWatch Logs 端點列入允許清單。這些端點會列在 *Amazon Web Services 一般參考* 的 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/general/latest/gr/rande.html#cwl_region) 中。
+ 如果您使用 Systems Manager 安裝代理程式或參數存放區來存放組態檔案，您必須針對適當的區域將 Systems Manager 端點列入允許名單。這些端點會列在 *Amazon Web Services 一般參考* 的 [AWS Systems Manager](https://docs.aws.amazon.com/general/latest/gr/rande.html#ssm_region) 中。

## 下載 CloudWatch 代理程式套件到您的第一個執行個體
<a name="install-CloudWatch-Agent-EC2-first"></a>

使用下列步驟來利用 Systems Manager 下載 CloudWatch 代理程式套件。

**若要使用 Systems Manager 下載 CloudWatch 代理程式**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 Systems Manager 主控台。

1. 在導覽窗格中，選擇 **執行命令**。

   -或-

   如果 AWS Systems Manager 首頁開啟，請向下捲動並選擇**探索執行命令**。

1. 選擇**執行命令**。

1. 在 **Command document** (命令文件) 清單中選擇 **AWS-ConfigureAWSPackage**。

1. 在 **Targets** (目標) 區域中，選擇要在其上安裝 CloudWatch 代理程式的執行個體。如果看不到特定的執行個體，它可能未設定為受管執行個體供 Systems Manager 使用。如需詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[AWS Systems Manager 設定混合環境](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html)。

1. 在 **Action (動作)** 清單中，選擇 **Install (安裝)**。

1. 在 **Name (名稱)** 欄位中，輸入 {{AmazonCloudWatchAgent}}。

1. 保留將 **Version (版本)** 設為 **latest (最新)** 以安裝代理程式的最新版本。

1. 選擇**執行**。

1. 或者，在 **Targets and outputs** (目標和輸出) 區域中，選取執行個體名稱旁的按鈕，然後選擇 **View output** (檢視輸出)。Systems Manager 應該會顯示代理程式已成功安裝。

   

## 建立及修改代理程式組態檔案
<a name="CW-Agent-Instance-Create-Configuration-File-first"></a>

下載 CloudWatch 代理程式之後，您必須建立組態檔案，然後才能在任何伺服器上啟動代理程式。

若您要將代理程式組態檔案儲存在 Systems Manager 參數存放區中，您必須使用 EC2 執行個體才能儲存到參數存放區。此外，您必須先將 `CloudWatchAgentAdminRole` IAM 角色連接到該執行個體。如需有關連接角色的詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[連結 IAM 角色至執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/iam-roles-for-amazon-ec2.html#attach-iam-role)。

如需建立 CloudWatch 代理程式組態檔案的詳細資訊，請參閱 [建立 CloudWatch 代理程式組態檔案](create-cloudwatch-agent-configuration-file.md)。

## 使用代理程式組態在其他 EC2 執行個體上安裝和啟動 CloudWatch 代理程式
<a name="install-CloudWatch-Agent-on-EC2-Instance-fleet"></a>

在您將 CloudWatch 代理程式組態儲存於參數存放區之後，即可在其他伺服器上安裝代理程式時使用它。

對於每個伺服器，請遵循本節先前列出的步驟，驗證 Systems Manager 先決條件、SSM 代理程式的版本和網際網路存取權。然後使用您建立的 CloudWatch 代理程式設定檔，依循以下指示在其他執行個體上安裝 CloudWatch 代理程式。

**步驟 1：下載並啟動 CloudWatch 代理程式**

為了將 CloudWatch 資料傳送到不同的區域，請確定您連結到這個執行個體的 IAM 角色擁有在該區域中寫入 CloudWatch 資料的許可。

以下是使用 `aws configure` 命令建立 CloudWatch 代理程式具名描述檔的範例。此範例假設您使用名為 `AmazonCloudWatchAgent` 的預設設定檔。

**若要建立 CloudWatch 代理程式的 AmazonCloudWatchAgent 描述檔**
+ 若使用 Linux 伺服器，請輸入下列命令並依提示操作：

  ```
  sudo aws configure --profile AmazonCloudWatchAgent
  ```

  若使用 Windows Server，開啟 Powershell 做為管理員，輸入下列命令並依照提示操作。

  ```
  aws configure --profile AmazonCloudWatchAgent
  ```

## 使用代理程式組態在其他 EC2 執行個體上安裝 CloudWatch 代理程式
<a name="install-CloudWatch-Agent-on-EC2-Instance-fleet"></a>

在您將 CloudWatch 代理程式組態儲存於參數存放區之後，即可在其他伺服器上安裝代理程式時使用它。

對於每個伺服器，請遵循本節先前列出的步驟，驗證 Systems Manager 先決條件、SSM 代理程式的版本和網際網路存取權。然後使用您建立的 CloudWatch 代理程式設定檔，依循以下指示在其他執行個體上安裝 CloudWatch 代理程式。

**步驟 1：下載並啟動 CloudWatch 代理程式**

您需要在每個您將執行代理程式的伺服器上安裝代理程式。CloudWatch 代理程式在 Amazon Linux 2023 和 Amazon Linux 2 中以套件的形式提供。如果您使用的是此作業系統，則可以依循下列步驟，使用 Systems Manager 安裝套件。

**注意**  
您還必須確定連接到執行個體的 IAM 角色已連接 **CloudWatchAgentServerPolicy**。如需詳細資訊，請參閱 [先決條件](prerequisites.md)。

**使用 Systems Manager 安裝 CloudWatch 代理程式套件**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 Systems Manager 主控台。

1. 在導覽窗格中，選擇 **執行命令**。

   -或-

   如果 AWS Systems Manager 首頁開啟，請向下捲動並選擇**探索執行命令**。

1. 選擇**執行命令**。

1. 在**命令文件**清單中，選擇 **AWS-RunShellScript**。然後將以下內容貼到**命令參數**中。

   ```
   sudo yum install amazon-cloudwatch-agent
   ```

1. 選擇**執行**。

在所有支援的作業系統上，您可以使用 Systems Manager 執行命令或 Simple Storage Service (Amazon S3) 下載連結下載 CloudWatch 代理程式套件。

**注意**  
當您安裝或更新 CloudWatch 代理程式時，僅支援 **Uninstall and reinstall** (解除安裝和重新安裝) 選項。您無法使用 **In-place update** (就地更新) 選項。

Systems Manager 執行命令可讓您管理執行個體的組態。您指定 Systems Manager 文件、指定參數，然後在一或多個執行個體上執行命令。在執行個體上的 SSM Agent 代理程式，會依指定來處理指令和設定執行個體。

**若要使用執行命令下載 CloudWatch 代理程式**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 Systems Manager 主控台。

1. 在導覽窗格中，選擇 **執行命令**。

   -或-

   如果 AWS Systems Manager 首頁開啟，請向下捲動並選擇**探索執行命令**。

1. 選擇**執行命令**。

1. 在 **Command document** (命令文件) 清單中選擇 **AWS-ConfigureAWSPackage**。

1. 在 **Targets** (目標) 區域中，選擇要用於安裝 CloudWatch 代理程式的執行個體。如果您沒看到特定執行個體，可能是因為它未設定用於執行命令。如需詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[AWS Systems Manager 設定混合環境](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html)。

1. 在 **Action (動作)** 清單中，選擇 **Install (安裝)**。

1. 在 **Name (名稱)** 方塊中，輸入 {{AmazonCloudWatchAgent}}。

1. 保留將 **Version (版本)** 設為 **latest (最新)** 以安裝代理程式的最新版本。

1. 選擇**執行**。

1. 或者，在 **Targets and outputs** (目標和輸出) 區域中，選取執行個體名稱旁的按鈕，然後選擇 **View output** (檢視輸出)。Systems Manager 應該會顯示代理程式已成功安裝。

**步驟 2：使用代理程式設定檔啟動 CloudWatch 代理程式**

依照以下步驟使用 Systems Manager 執行命令啟動代理程式。

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

**若要使用執行命令啟動 CloudWatch 代理程式**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 Systems Manager 主控台。

1. 在導覽窗格中，選擇 **執行命令**。

   -或-

   如果 AWS Systems Manager 首頁開啟，請向下捲動並選擇**探索執行命令**。

1. 選擇**執行命令**。

1. 在 **Command document (命令文件)** 清單中選擇 **AmazonCloudWatch-ManageAgent**。

1. 在 **Targets** (目標) 區域中，選擇您安裝 CloudWatch 代理程式的執行個體。

1. 在 **Action (動作)** 清單中，選擇 **configure (設定)**。

1. 在 **Optional Configuration Source** (選用組態來源) 清單中，選擇 **ssm**。

1. 在**選用組態位置**方塊中，輸入您建立並儲存至 Systems Manager 參數存放區的 Systems Manager 參數名稱和代理程式組態檔案名稱，如 [建立 CloudWatch 代理程式組態檔案](create-cloudwatch-agent-configuration-file.md) 中所述。

1. 完成這些步驟之後，在 **Optional Restart** (選用重新啟動) 清單中選擇 **yes** (是) 以啟動代理程式。

1. 選擇**執行**。

1. 或者，在 **Targets and outputs** (目標和輸出) 區域中，選取執行個體名稱旁的按鈕，然後選擇 **View output** (檢視輸出)。Systems Manager 應該會顯示代理程式已成功啟動。

## (選用) 修改 CloudWatch 代理程式的常見組態和命名描述檔
<a name="CloudWatch-Agent-profile-instance-fleet"></a>

CloudWatch 代理程式包含稱為 `common-config.toml` 的組態檔案。您可以使用此檔案選擇性地指定代理和區域資訊。

在執行 Linux 的伺服器上，此檔案位於 `/opt/aws/amazon-cloudwatch-agent/etc` 目錄。在執行 Windows Server 的伺服器上，此檔案位於 `C:\ProgramData\Amazon\AmazonCloudWatchAgent` 目錄。

預設的 `common-config.toml` 如下：

```
# This common-config is used to configure items used for both ssm and cloudwatch access
 
 
## Configuration for shared credential.
## Default credential strategy will be used if it is absent here:
##            Instance role is used for EC2 case by default.
##            AmazonCloudWatchAgent profile is used for onPremise case by default.
# [credentials]
#    shared_credential_profile = "{profile_name}"
#    shared_credential_file= "{file_name}"
 
## Configuration for proxy.
## System-wide environment-variable will be read if it is absent here.
## i.e. HTTP_PROXY/http_proxy; HTTPS_PROXY/https_proxy; NO_PROXY/no_proxy
## Note: system-wide environment-variable is not accessible when using ssm run-command.
## Absent in both here and environment-variable means no proxy will be used.
# [proxy]
#    http_proxy = "{http_url}"
#    https_proxy = "{https_url}"
#    no_proxy = "{domain}"
```

最初所有行都會標示為註解。若要設定登入資料設定檔或代理設定，請移除該行的 `#` 並指定值。您可以手動編輯此檔案，或使用 Systems Manager 中的 `RunShellScript` 執行命令：
+ `shared_credential_profile` – 針對現場部署伺服器，這一行會指定要用來將資料傳送給 CloudWatch 的 IAM 使用者憑證描述檔。若您將此行標示為註解，則會使用 `AmazonCloudWatchAgent`。

  在 EC2 執行個體上，您可以使用此行讓 CloudWatch 代理程式從此執行個體將資料傳送至不同區域中的 CloudWatch AWS 。若要執行此作業，請指定一個具名描述檔，其中包含指定要傳送對象區域名稱的 `region` 欄位。

  如果您指定 `shared_credential_profile`，即必須也要移除 `[credentials]` 行開頭中的 `#`。
+ `shared_credential_file` – 若要讓代理程式在位於預設路徑以外路徑的檔案中尋找憑證，請在此處指定該完整路徑及檔案名稱。Linux 的預設路徑是 `/root/.aws`，Windows Server 的預設路徑是 `C:\\Users\\Administrator\\.aws`。

  以下第一個範例顯示適用於 Linux 伺服器的 `shared_credential_file` 行語法，第二個範例則適用於 Windows Server 有效。在 Windows Server 上，您必須跳脫 \\ 字元。

  ```
  shared_credential_file= "/usr/{{username}}/credentials"
  ```

  ```
  shared_credential_file= "C:\\Documents and Settings\\{{username}}\\.aws\\credentials"
  ```

  如果您指定 `shared_credential_file`，即必須也要移除 `[credentials]` 行開頭中的 `#`。
+ 代理設定 – 若您的伺服器使用 HTTP 或 HTTPS 代理來和 AWS 服務聯絡，請在 `http_proxy` 和 `https_proxy` 欄位中指定那些代理。如有必須排除在代理之外的 URL，請在 `no_proxy` 欄位中指定並以逗號分隔。