

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

# 安裝 CloudWatch 代理程式
<a name="install-CloudWatch-Agent-on-EC2-Instance"></a>

您可以在 Amazon EC2 執行個體、內部部署伺服器和容器化環境中安裝 CloudWatch 代理程式，以收集指標、日誌和追蹤。代理程式支援 Linux、Windows 和 macOS 作業系統。有多種方式可以安裝代理程式，包括使用 Systems Manager、從 CloudWatch 主控台安裝、從命令列安裝 ，或使用組態檔案安裝 。安裝之前，請確定您已設定必要的 IAM 許可和網路存取權。

**Topics**
+ [

# 在 Amazon CloudWatch CloudWatch Agent
](install-cloudwatch-agent-workload-detection.md)
+ [

# 在 Amazon EC2 上手動安裝
](manual-installation.md)
+ [

# 使用 安裝 CloudWatch 代理程式 AWS Systems Manager
](installing-cloudwatch-agent-ssm.md)
+ [

# 在內部部署伺服器上安裝 CloudWatch 代理程式
](install-CloudWatch-Agent-on-premise.md)
+ [

# 使用 在新執行個體上安裝 CloudWatch 代理程式 CloudFormation
](Install-CloudWatch-Agent-New-Instances-CloudFormation.md)
+ [

# 使用 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart 安裝 CloudWatch 代理程式
](install-CloudWatch-Observability-EKS-addon.md)

# 在 Amazon CloudWatch CloudWatch Agent
<a name="install-cloudwatch-agent-workload-detection"></a>

## 簡介
<a name="workload-detection-introduction"></a>

您可以使用 CloudWatch 入門主控台，在 Amazon EC2 執行個體上安裝和設定 CloudWatch 代理程式。Amazon CloudWatch 代理程式是一種輕量型軟體元件，可從 Amazon EC2 執行個體收集系統層級指標、日誌和追蹤。透過自動化 CloudWatch 監控資料的收集和交付，代理程式可讓您取得可行的洞見、最佳化資源使用率，並確保您的應用程式以最少的組態工作順利執行。

使用預先定義的工作負載特定組態來設定 CloudWatch 代理程式，以利用自動工作負載偵測來識別執行個體上執行的應用程式和服務。您可以使用特定指標、日誌和追蹤自訂資料收集，讓您監控應用程式效能並有效疑難排解問題。

## 運作方式
<a name="workload-detection-how-it-works"></a>

CloudWatch 代理程式會透過自動工作負載偵測功能，偵測在 Amazon EC2 執行個體上執行的工作負載。此功能可識別執行個體上執行的應用程式和服務，無需手動設定即可進行智慧型監控。

可觀測性解決方案提供預先定義的工作負載特定組態，專為常見的應用程式量身打造，例如 Apache Kafka、Apache Tomcat、Java 虛擬機器 (JVM)、NGINX 和 NVIDIA GPU 工作負載。這些解決方案會自動收集每個偵測到的工作負載特有的正確指標、日誌和追蹤，以簡化監控設定，無需手動檢測和設定。

啟用工作負載偵測時，代理程式會分析您的執行個體環境，並自動選取相關的預先設定監控範本。這些組態由 AWS 主題專家最佳化，以擷取每種工作負載類型的最重要遙測資料，確保您從一開始就擁有全面的可觀測性。

## 先決條件
<a name="workload-detection-prerequisites"></a>

### SSM 代理程式安裝 （必要）
<a name="ssm-agent-installation"></a>

您必須在 Amazon EC2 執行個體上安裝 AWS Systems Manager (SSM) 代理程式。SSM 代理程式預先安裝在最常 AWS提供的 Amazon Machine Image (AMIs) 上，如果您需要手動安裝或更新 SSM 代理程式，請參閱 [Systems Manager 文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)。

**注意**  
預設主機管理組態 (DHMC) 是一種 Systems Manager 功能，可自動授予 Amazon EC2 執行個體連線至 Systems Manager 的許可，而無需手動將 IAM 執行個體設定檔連接至每個執行個體。如果您的 Amazon EC2 執行個體使用 DHMC，且 CloudWatch 代理程式安裝程序將 CloudWatch 政策連接至您的執行個體，則新政策最多可能需要 30 分鐘才會生效。此延遲可能會將指標、日誌和追蹤的發佈延遲至 CloudWatch。若要緩解，您可以使用包含 AmazonSSMManagedInstanceCore 政策的 IAM 角色來建立 Amazon EC2 執行個體。 [AmazonSSMManagedInstanceCore](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html) 

### 工作負載偵測 （建議）
<a name="workload-detection-recommended"></a>

工作負載偵測是一項選擇加入功能，可自動識別執行個體上執行的應用程式和服務。我們建議您開啟工作負載偵測，以利用預先設定的工作負載特定監控範本。您可以在 [CloudWatch 主控台設定](https://console.aws.amazon.com/cloudwatch/home#settings)中啟用工作負載偵測。

## 開始使用
<a name="workload-detection-getting-started"></a>

在 Amazon CloudWatch 主控台中開啟 Amazon CloudWatch 代理程式入門頁面：[https://console.aws.amazon.com/cloudwatch/home\$1cloudwatch-agent](https://console.aws.amazon.com/cloudwatch/home#cloudwatch-agent)：//

**CloudWatch Agent 的手動執行個體部署**

為 CloudWatch 代理程式安裝和組態手動選取最多 50 個執行個體。此目標方法可讓您增強對特定 Amazon EC2 執行個體的監控。

**CloudWatch Agent 的標籤型部署**

使用標籤型部署，在 Amazon EC2 執行個體機群上安裝和設定 CloudWatch 代理程式。此方法適用於所有目前和未來具有相符標籤的執行個體。

**標籤型組態**

標籤型組態可讓您有效率地組織、檢視和修改組態，協助您管理 CloudWatch 代理程式及其在 Amazon EC2 執行個體機群之間的組態。

**CloudWatch 代理程式安裝**

安裝 CloudWatch 代理程式，從 Amazon EC2 執行個體和內部部署主機收集指標、日誌和追蹤。此遙測提供基礎設施和應用程式的重要運作狀態和效能資料。

**CloudWatch 代理程式組態**

使用預先定義的工作負載特定組態來設定 CloudWatch 代理程式。您可以使用特定指標、日誌和追蹤自訂資料收集，讓您監控應用程式效能並有效疑難排解問題。

## 成本
<a name="workload-detection-costs"></a>

您在此流程期間新增的其他指標會以自訂指標計費。如需 CloudWatch 指標定價的詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing)。

# 在 Amazon EC2 上手動安裝
<a name="manual-installation"></a>

**注意**  
在第一次安裝 CloudWatch 代理程式之前，請確定滿足先決條件。

**Topics**
+ [

## 使用套件管理員在 Amazon Linux 上安裝
](#amazon-linux-package)
+ [

## 使用命令列在 Amazon Linux 上安裝
](#linux-manual-install)
+ [

## 在 Windows 上安裝
](#windows-installation)
+ [

## 在 macOS 上安裝
](#macos-installation)

## 使用套件管理員在 Amazon Linux 上安裝
<a name="amazon-linux-package"></a>

CloudWatch 代理程式在 Amazon Linux 2023 和 Amazon Linux 2 中以套件的形式提供。如果您使用的是以下作業系統之一，則可以透過輸入下列命令來安裝套件：

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

您還必須確定連接到執行個體的 IAM 角色已連接 **CloudWatchAgentServerPolicy**。

## 使用命令列在 Amazon Linux 上安裝
<a name="linux-manual-install"></a>

在所有支援的 Linux 作業系統上，您可以使用命令列來下載及安裝 CloudWatch 代理程式。

1. 下載 CloudWatch 代理程式。針對 Linux 伺服器，請輸入以下命令。對於 `download-link`，請使用下表中的適當下載連結。

   ```
   wget download-link
   ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/manual-installation.html)

1. 下載套件之後，您可以選擇驗證套件簽章。如需詳細資訊，請參閱[驗證 CloudWatch 代理程式套件的簽章](verify-CloudWatch-Agent-Package-Signature.md)。

1. 安裝套件。若您在 Linux 伺服器上下載了 RPM 套件，請變更到包含該套件的目錄，然後輸入以下資訊：

   ```
   sudo rpm -U ./amazon-cloudwatch-agent.rpm
   ```

   若您在 Linux 伺服器上下載了 DEB 套件，請變更到包含該套件的目錄，然後輸入以下資訊：

   ```
   sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
   ```

## 在 Windows 上安裝
<a name="windows-installation"></a>

在 Windows Server 上，您可以使用命令列來下載及安裝 CloudWatch 代理程式。

1. 下載以下檔案：

   ```
   https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi
   ```

1. 下載套件之後，您可以選擇驗證套件簽章。如需詳細資訊，請參閱[驗證 CloudWatch 代理程式套件的簽章](verify-CloudWatch-Agent-Package-Signature.md)。

1. 安裝套件。變更至包含套件的目錄，然後輸入以下內容：

   ```
   msiexec /i amazon-cloudwatch-agent.msi
   ```

   此命令也可從 PowerShell 執行。如需 MSI 命令選項的詳細資訊，請參閱 Microsoft Windows 文件中的[命令列選項](https://docs.microsoft.com/en-us/windows/desktop/Msi/command-line-options)。

## 在 macOS 上安裝
<a name="macos-installation"></a>

在 macOS 電腦上，您可以使用命令列來下載及安裝 CloudWatch 代理程式。

1. 為您的架構下載適當的套件：

   ```
   https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/amd64/latest/amazon-cloudwatch-agent.pkg
   ```

   對於 ARM64 架構：

   ```
   https://amazoncloudwatch-agent.s3.amazonaws.com/darwin/arm64/latest/amazon-cloudwatch-agent.pkg
   ```

1. 下載套件之後，您可以選擇驗證套件簽章。如需詳細資訊，請參閱[驗證 CloudWatch 代理程式套件的簽章](verify-CloudWatch-Agent-Package-Signature.md)。

1. 安裝套件。變更至包含套件的目錄，然後輸入以下內容：

   ```
   sudo installer -pkg ./amazon-cloudwatch-agent.pkg -target /
   ```

# 使用 安裝 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 上，您必須跳脫 \$1 字元。

  ```
  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` 欄位中指定並以逗號分隔。

# 在內部部署伺服器上安裝 CloudWatch 代理程式
<a name="install-CloudWatch-Agent-on-premise"></a>

 若您已在一台電腦上下載 CloudWatch 代理程式，並建立代理程式設定檔，可以使用該設定檔來在其他內部部署伺服器上安裝代理程式。

## 在內部部署伺服器下載 CloudWatch 代理程式
<a name="download-CloudWatch-Agent-onprem"></a>

您可以使用 Systems Manager 執行命令或 Simple Storage Service (Amazon S3) 下載連結來下載 CloudWatch 代理程式套件。

### 使用 Systems Manager 下載
<a name="download-CloudWatch-Agent-onprem-fleet-sys"></a>

若要使用 Systems Manager 執行命令，您必須使用 Amazon EC2 Systems Manager 註冊您的內部部署伺服器。如需詳細資訊，請參閱*《AWS Systems Manager 使用者指南》*中的[在混合環境中設定 Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html)。

如果您已經註冊伺服器，請將 SSM Agent 更新為最新版本。

如需在執行 Linux 的伺服器上更新 SSM Agent 的相關資訊，請參閱*《AWS Systems Manager 使用者指南》*中的[在混合環境 (Linux) 中安裝 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html#sysman-install-managed-linux)。

如需在執行 Windows Server 的伺服器上更新 SSM Agent 的相關資訊，請參閱*《AWS Systems Manager 使用者指南》*中的[在混合環境 (Windows) 中安裝 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html#sysman-install-managed-win)。

**若要在現場部署伺服器上使用 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 (版本)** 維持空白，以安裝代理程式的最新版本。

1. 選擇**執行**。

   下載代理程式套件之後，下一個步驟是設定然後啟動。

## （在內部部署伺服器上安裝） 指定 IAM 登入資料和 AWS 區域
<a name="install-CloudWatch-Agent-iam_user-SSM-onprem"></a>

若要啟用 CloudWatch 代理程式來從內部部署伺服器傳送資料，您必須指定您先前建立的 IAM 使用者存取金鑰及秘密金鑰。

您還必須使用 `region` 欄位指定 AWS 要傳送指標的區域。

以下是此檔案的範例。

```
[AmazonCloudWatchAgent]
aws_access_key_id=my_access_key
aws_secret_access_key=my_secret_key
region = us-west-1
```

針對 *my\$1access\$1key* 和 *my\$1secret\$1key*，使用沒有寫入 Systems Manager 參數存放區許可的 IAM 使用者金鑰。

若您將此描述檔命名為 `AmazonCloudWatchAgent`，您便不需要執行更多作業。您也可以選擇給予它一個不同的名稱，並將名稱指定為 ` common-config.toml` 檔案中 `shared_credential_profile` 的值，如下一節所述。

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

**若要建立 CloudWatch 代理程式的 AmazonCloudWatchAgent 描述檔**

1. 如果您尚未這麼做， AWS Command Line Interface 請在伺服器上安裝 。如需詳細資訊，請參閱[安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。

1. 在 Linux 伺服器上，輸入以下命令並依提示操作：

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

   在 Windows Server 上，以系統管理員身分開啟 PowerShell，輸入以下命令並依照提示操作。

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

## (選用) 修改 CloudWatch 代理程式的常見組態及具名描述檔
<a name="CloudWatch-Agent-profile-onprem"></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`。如需建立此描述檔的詳細資訊，請參閱[（在內部部署伺服器上安裝） 指定 IAM 登入資料和 AWS 區域](#install-CloudWatch-Agent-iam_user-SSM-onprem)。

  在 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 上，您必須跳脫 \$1 字元。

  ```
  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` 欄位中指定並以逗號分隔。

# 使用 在新執行個體上安裝 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)。

# 使用 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart 安裝 CloudWatch 代理程式
<a name="install-CloudWatch-Observability-EKS-addon"></a>

您可以使用 Amazon CloudWatch Observability EKS 附加元件或 Amazon CloudWatch Observability Helm Chart，在 Amazon EKS 叢集上安裝 CloudWatch 代理程式和 Fluent 位元代理程式。也可以使用 Helm Chart 在非 Amazon EKS 託管的 Kubernetes 叢集上安裝 CloudWatch 代理程式和 Fluent 位元代理程式。

根據預設，在 Amazon EKS 叢集上使用任一方法，可讓 Amazon EKS 和 [CloudWatch Application Signals](CloudWatch-Application-Monitoring-Sections.md) 的 [Container Insights](ContainerInsights.md) 具有增強的可觀測性。使用這兩個概念時，您可從叢集中收集基礎結構指標、應用程式效能遙測資料和容器日誌。

使用版本 `v6.0.1-eksbuild.1`或更新版本的附加元件時，會啟用 Container Insights with OpenTelemetry 指標，這會使用 OpenTelemetry Protocol (OTLP) 收集指標，並支援 PromQL 查詢。如需詳細資訊，請參閱[適用於 Amazon EKS 的 Container Insights 搭配 OpenTelemetry 指標](container-insights-otel-metrics.md)。

使用 Container Insights 搭配 Amazon EKS 的增強可觀測性，Container Insights 指標會按觀測，而不是存放或擷取的指標計費。對於 Application Signals，帳單以發往應用程式的傳入請求、來自應用程式的傳出請求以及每個已設定的服務水準目標 (SLO) 來計費。收到的每個傳入請求都會產生一個應用程式訊號，而發出的每個傳出請求也會產生一個應用程式訊號。每個 SLO 會在每個測量週期建立兩個應用程式訊號。如需 CloudWatch 定價的詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

這兩種方法都會在 Amazon EKS 叢集的 Linux 和 Windows 工作者節點上啟用 Container Insights。若要在 Windows 上啟用 Container Insights，必須使用 1.5.0 或更高版本的 Amazon EKS 附加元件或 Helm Chart。Amazon EKS 叢集中的 Windows 不支援 Application Signals。

Amazon CloudWatch Observability EKS 附加元件適用於使用 Kubernetes 版本 1.23 或更新版本執行的 Amazon EKS 叢集。

安裝附加元件或 Helm Chart 時，還必須授與 IAM 許可，讓 CloudWatch 代理程式能夠向 CloudWatch 傳送指標、日誌和追蹤。有兩種方式可以進行：
+ 將政策連接至工作節點的 IAM 角色。此選項會授予工作節點許可，以便將遙測傳送至 CloudWatch。
+ 針對代理程式 Pod 的服務帳戶使用 IAM 角色，並將政策連接至此角色。這僅適用於 Amazon EKS 叢集。此選項僅可授予 CloudWatch 對適當代理程式 Pod 的存取權。

**Topics**
+ [

## 選項 1：使用 EKS Pod 身分識別安裝
](#install-CloudWatch-Observability-EKS-pod-identity)
+ [

## 選項 2：在工作者節點上使用 IAM 許可安裝
](#install-CloudWatch-Observability-EKS-addon-workernodes)
+ [

## 選項 3：使用 IAM 服務帳戶角色進行安裝 (僅適用於使用附加元件的情況)
](#install-CloudWatch-Observability-EKS-addon-serviceaccountrole)
+ [

## Amazon EKS 混合節點的考量事項
](#install-CloudWatch-Observability-EKS-addon-hybrid)
+ [

## (選用) 額外組態
](#install-CloudWatch-Observability-EKS-addon-configuration)
+ [

## 收集 Java Management Extensions (JMX) 指標
](#install-CloudWatch-Observability-EKS-addon-JMX-metrics)
+ [

## 啟用 Kueue 指標
](#enable-Kueue-metrics)
+ [

## 附加 OpenTelemetry 收集器設定檔
](#install-CloudWatch-Observability-EKS-addon-OpenTelemetry)
+ [

## 透過 Amazon EKS 叢集的 Application Signals 啟用 APM
](#Container-Insights-setup-EKS-appsignalsconfiguration)
+ [

## Amazon CloudWatch Observability EKS 附加元件或 Helm Chart 疑難排解
](#Container-Insights-setup-EKS-addon-troubleshoot)
+ [

## 選擇不接收 Application Signals
](#Opting-out-App-Signals)

## 選項 1：使用 EKS Pod 身分識別安裝
<a name="install-CloudWatch-Observability-EKS-pod-identity"></a>

如果您使用 3.1.0 或更高版本的附加元件，可以使用 EKS Pod 身分識別將必要的許可授與附加元件。EKS Pod 身分識別是建議的選項，並提供最低權限、憑證輪換和可稽核性等優點。此外，使用 EKS Pod 身分識別可讓您在建立叢集的過程中安裝 EKS 附加元件。

若要使用此方法，請先遵循 [EKS Pod 身分識別關聯](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create/)步驟來建立 IAM 角色並設定 EKS Pod 身分識別代理程式。

然後安裝 Amazon CloudWatch 可觀測性 EKS 附加元件。若要安裝附加元件，您可以使用 AWS CLI、Amazon EKS 主控台 CloudFormation或 Terraform。

------
#### [ AWS CLI ]

**使用 AWS CLI 安裝 Amazon CloudWatch 可觀測性 EKS 附加元件**  
輸入下列命令：使用您的叢集名稱替換 `my-cluster-name`，再以您的帳戶 ID 替換 *111122223333*。將 *my-role* 替換為您在 EKS Pod 身分識別關聯步驟中建立的 IAM 角色。

```
aws iam attach-role-policy \
--role-name my-role \
--policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

aws eks create-addon \
--addon-name amazon-cloudwatch-observability \
--cluster-name my-cluster-name \
--pod-identity-associations serviceAccount=cloudwatch-agent,roleArn=arn:aws:iam::111122223333:role/my-role
```

------
#### [ Amazon EKS console ]

**使用 Amazon EKS 主控台來新增 Amazon CloudWatch Observability EKS 附加元件**

1. 在 [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters) 開啟 Amazon EKS 主控台。

1. 在左側導覽窗格中選擇**叢集**。

1. 選擇要為其設定 Amazon CloudWatch Observability EKS 附加元件的叢集名稱。

1. 選擇**附加元件**索引標籤。

1. 選擇**取得更多附加元件**。

1. 在**選取附加元件**頁面上，執行下列動作：

   1. 在 **Amazon EKS-addons** 區段，選取 **Amazon CloudWatch 可觀測性**核取方塊。

   1. 選擇**下一步**。

1. 在**設定選取的附加元件設定**頁面上，執行以下操作：

   1. 選取您要使用的**版本**。

   1. 針對**附加元件存取權**，選取 **EKS Pod 身分識別**

   1. 如果您沒有設定 IAM 角色，請選擇**建立建議的角色**，然後選擇**下一步**，直至到達**步驟 3 命名、檢閱和建立**。您可以視需要變更角色名稱，否則請選擇**建立角色**，然後返回附加元件頁面，並選取您剛建立的 IAM 角色。

   1. (選用) 您可以展開**選用組態設定**。對於**衝突解決方法**，如果您選取**覆寫**，就可以使用 Amazon EKS 附加元件的設定來覆寫現有附加元件的一種或多種設定。若未啟用此選項，而且有設定與現有設定發生衝突，則操作會失敗。您可以使用產生的錯誤訊息對此衝突進行疑難排解。在選取此選項之前，請確認 Amazon EKS 附加元件未管理您需要自我管理的設定。

   1. 選擇**下一步**。

1. 在**檢閱並新增**頁面上，選擇**建立**。附加元件安裝完成後，您會看到已安裝的附加元件。

------
#### [ CloudFormation ]

**使用 CloudFormation 安裝 Amazon CloudWatch 可觀測性 EKS 附加元件**

1. 首先，執行下列 AWS CLI 命令，將必要的 IAM 政策連接至您的 IAM 角色。將 *my-role* 替換為您在 EKS Pod 身分識別關聯步驟中建立的角色。

   ```
   aws iam attach-role-policy \
   --role-name my-role \
   --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
   ```

1. 然後，建立下列資源。將 `my-cluster-name` 替換為您的叢集名稱，將 *111122223333* 替換為您的 帳戶 ID，並將 *my-role* 替換為在 EKS Pod 身分識別關聯步驟中建立的 IAM 角色。如需詳細資訊，請參閱 [AWS::EKS::Addon](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html)。

   ```
   {
       "Resources": {
           "EKSAddOn": {
               "Type": "AWS::EKS::Addon",
               "Properties": {
                   "AddonName": "amazon-cloudwatch-observability",
                   "ClusterName": "my-cluster-name",
                   "PodIdentityAssociations": [
                       {
                           "ServiceAccount": "cloudwatch-agent",
                           "RoleArn": "arn:aws:iam::111122223333:role/my-role"
                       }
                   ]
               }
           }
       }
   }
   ```

------
#### [ Terraform ]

**使用 Terraform 來安裝 Amazon CloudWatch Observability EKS 附加元件**

1. 使用以下內容。使用您的叢集名稱替換 `my-cluster-name`、使用您的帳戶 ID 替換 *111122223333*，然後使用之前步驟建立的 IAM 角色替換 *my-service-account-role*。

   如需詳細資訊，請參閱 Terraform 文件中的[資源：aws\$1eks\$1addon](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_addon)。

1. 

   ```
   resource "aws_iam_role_policy_attachment" "CloudWatchAgentServerPolicy" {
     policy_arn = "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy"
     role       = "my-role"
   }
   
   resource "aws_eks_addon" "example" {
     cluster_name = "my-cluster-name"
     addon_name   = "amazon-cloudwatch-observability"
     pod_identity_associations {
         roleArn = "arn:aws:iam::111122223333:role/my-role"
         serviceAccount = "cloudwatch-agent"
     }
   }
   ```

------

## 選項 2：在工作者節點上使用 IAM 許可安裝
<a name="install-CloudWatch-Observability-EKS-addon-workernodes"></a>

若要使用此方法，請先輸入下列命令，以將 **CloudWatchAgentServerPolicy** IAM 政策附接至您的工作節點。在此命令中，使用 Kubernetes 工作節點使用的 IAM 角色，來取代 *my-worker-node-role*。

```
aws iam attach-role-policy \
--role-name my-worker-node-role \
--policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
```

然後安裝 Amazon CloudWatch 可觀測性 EKS 附加元件。若要安裝附加元件，您可以使用 AWS CLI CloudFormation、 主控台或 Terraform。

------
#### [ AWS CLI ]

**使用 AWS CLI 安裝 Amazon CloudWatch 可觀測性 EKS 附加元件**  
輸入以下命令。使用您叢集的名稱取代 `my-cluster-name`。

```
aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name
```

------
#### [ Amazon EKS console ]

**使用 Amazon EKS 主控台來新增 Amazon CloudWatch Observability EKS 附加元件**

1. 在 [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters) 開啟 Amazon EKS 主控台。

1. 在左側導覽窗格中選擇**叢集**。

1. 選擇要為其設定 Amazon CloudWatch Observability EKS 附加元件的叢集名稱。

1. 選擇**附加元件**索引標籤。

1. 選擇**取得更多附加元件**。

1. 在**選取附加元件**頁面上，執行下列動作：

   1. 在 **Amazon EKS-addons** 區段，選取 **Amazon CloudWatch 可觀測性**核取方塊。

   1. 選擇**下一步**。

1. 在**設定選取的附加元件設定**頁面上，執行以下操作：

   1. 選取您要使用的**版本**。

   1. (選用) 您可以展開**選用組態設定**。對於**衝突解決方法**，如果您選取**覆寫**，就可以使用 Amazon EKS 附加元件的設定來覆寫現有附加元件的一種或多種設定。若未啟用此選項，而且有設定與現有設定發生衝突，則操作會失敗。您可以使用產生的錯誤訊息對此衝突進行疑難排解。在選取此選項之前，請確認 Amazon EKS 附加元件未管理您需要自我管理的設定。

   1. 選擇**下一步**。

1. 在**檢閱並新增**頁面上，選擇**建立**。附加元件安裝完成後，您會看到已安裝的附加元件。

------
#### [ CloudFormation ]

**使用 CloudFormation 安裝 Amazon CloudWatch 可觀測性 EKS 附加元件**  
使用您叢集的名稱取代 `my-cluster-name`。如需詳細資訊，請參閱 [AWS::EKS::Addon](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html)。

```
{
    "Resources": {
        "EKSAddOn": {
            "Type": "AWS::EKS::Addon",
            "Properties": {
                "AddonName": "amazon-cloudwatch-observability",
                "ClusterName": "my-cluster-name"
            }
        }
    }
}
```

------
#### [ Helm chart ]

**使用 `amazon-cloudwatch-observability` Helm Chart**

1. 您必須安裝 Helm 才能使用此圖表。如需有關安裝 Helm 的詳細資訊，請參閱 [Helm 文件](https://helm.sh/docs/)。

1. 安裝 Helm 之後，輸入下列命令。將 *my-cluster-name* 替換為您的叢集名稱，並將 *my-cluster-region* 替換為叢集執行所在的區域。

   ```
   helm repo add aws-observability https://aws-observability.github.io/helm-charts
   helm repo update aws-observability
   helm install --wait --create-namespace --namespace amazon-cloudwatch amazon-cloudwatch-observability aws-observability/amazon-cloudwatch-observability --set clusterName=my-cluster-name --set region=my-cluster-region
   ```

------
#### [ Terraform ]

**使用 Terraform 來安裝 Amazon CloudWatch Observability EKS 附加元件**  
使用您叢集的名稱取代 `my-cluster-name`。如需詳細資訊，請參閱 [Resource: aws\$1eks\$1addon](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_ad)。

```
resource "aws_eks_addon" "example" {
  addon_name   = "amazon-cloudwatch-observability"
  cluster_name = "my-cluster-name"
}
```

------

## 選項 3：使用 IAM 服務帳戶角色進行安裝 (僅適用於使用附加元件的情況)
<a name="install-CloudWatch-Observability-EKS-addon-serviceaccountrole"></a>

只有在您使用 Amazon CloudWatch Observability EKS 附加元件時，此方法才有效。使用此方法之前，請驗證下列先決條件：
+ 您具備的功能性 Amazon EKS 叢集，內含在支援 Container Insights 的其中一個 AWS 區域 中附接的節點。如需支援區域的清單，請參閱 [Container Insights](ContainerInsights.md)。
+ 您已安裝 `kubectl` 並設定叢集。如需詳細資訊，請參閱*《Amazon EKS 使用者指南》*中的[安裝 `kubectl`](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)。
+ 您已安裝 `eksctl`。如需詳細資訊，請參閱 *Amazon EKS 使用者指南*中的[安裝或更新 `eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html)。

------
#### [ AWS CLI ]

**使用 AWS CLI 使用 IAM 服務帳戶角色安裝 Amazon CloudWatch 可觀測性 EKS 附加元件**

1. 如果叢集尚未提供 OpenID Connect (OIDC) 供應商，請輸入下列命令建立一個。如需詳細資訊，請參閱 *Amazon EKS 使用者指南*中的[設定要擔任 IAM 角色的 Kubernetes 服務帳戶](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html)。

   ```
   eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
   ```

1. 輸入下列命令以建立 IAM 角色並連結 **CloudWatchAgentServerPolicy** 政策，然後將代理程式服務帳戶設定為使用 OIDC 擔任該角色。使用您的叢集名稱取代 *my-cluster-name*，然後用您想要與之關聯的服務帳戶來取代 *my-service-account-role*。如果角色不存在，`eksctl` 會為您建立。

   ```
   eksctl create iamserviceaccount \
     --name cloudwatch-agent \
     --namespace amazon-cloudwatch --cluster my-cluster-name \
     --role-name my-service-account-role \
     --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
     --role-only \
     --approve
   ```

1. 輸入下列命令來安裝附加元件。使用您的叢集名稱取代 *my-cluster-name*、使用您的帳戶 ID 取代 *111122223333*，然後使用之前步驟建立的 IAM 角色取代 *my-service-account-role*。

   ```
   aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::111122223333:role/my-service-account-role
   ```

------
#### [ Amazon EKS console ]

**透過主控台使用 IAM 服務帳戶角色來安裝 Amazon CloudWatch Observability EKS 附加元件**

1. 在 [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters) 開啟 Amazon EKS 主控台。

1. 在左側導覽窗格中選擇**叢集**。

1. 選擇要為其設定 Amazon CloudWatch Observability EKS 附加元件的叢集名稱。

1. 選擇**附加元件**索引標籤。

1. 選擇**取得更多附加元件**。

1. 在**選取附加元件**頁面上，執行下列動作：

   1. 在 **Amazon EKS-addons** 區段，選取 **Amazon CloudWatch 可觀測性**核取方塊。

   1. 選擇**下一步**。

1. 在**設定選取的附加元件設定**頁面上，執行以下操作：

   1. 選取您要使用的**版本**。

   1. 對於**附加元件存取**，選取**服務帳戶的 IAM 角色 (IRSA)**

   1. 在**附加元件存取**方塊中選取 IAM 角色。

   1. (選用) 您可以展開**選用組態設定**。對於**衝突解決方法**，如果您選取**覆寫**，就可以使用 Amazon EKS 附加元件的設定來覆寫現有附加元件的一種或多種設定。若未啟用此選項，而且有設定與現有設定發生衝突，則操作會失敗。您可以使用產生的錯誤訊息對此衝突進行疑難排解。在選取此選項之前，請確認 Amazon EKS 附加元件未管理您需要自我管理的設定。

   1. 選擇**下一步**。

1. 在**檢閱並新增**頁面上，選擇**建立**。附加元件安裝完成後，您會看到已安裝的附加元件。

------

## Amazon EKS 混合節點的考量事項
<a name="install-CloudWatch-Observability-EKS-addon-hybrid"></a>

節點層級指標不適用於混合節點，因為 [Container Insights](ContainerInsights.md) 取決於節點層級指標的 [EC2 執行個體中繼資料服務](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) (IMDS) 可用性。叢集、工作負載、Pod 和容器層級指標可用於混合節點。

依照先前章節中的步驟安裝附加元件後，必須更新附加元件資訊清單，以便代理程式可以在混合節點上成功執行。編輯叢集中的 `amazoncloudwatchagents` 資源新增 `RUN_WITH_IRSA` 環境變數，以符合下列項目。

```
kubectl edit amazoncloudwatchagents -n amazon-cloudwatch cloudwatch-agent
```

```
apiVersion: v1
       items:
       - apiVersion: cloudwatch.aws.amazon.com/v1alpha1
         kind: AmazonCloudWatchAgent
         metadata:
           ...
           name: cloudwatch-agent
           namespace: amazon-cloudwatch
           ...
         spec:
           ...
           env:
           - name: RUN_WITH_IRSA # <-- Add this
             value: "True" # <-- Add this
           - name: K8S_NODE_NAME
             valueFrom:
               fieldRef:
                 fieldPath: spec.nodeName
                 ...
```

## (選用) 額外組態
<a name="install-CloudWatch-Observability-EKS-addon-configuration"></a>

**Topics**
+ [

### 選擇不收集容器日誌
](#CloudWatch-Observability-EKS-addon-OptOutContainerLogs)
+ [

### 使用自訂 Fluent Bit 組態
](#CloudWatch-Observability-EKS-addon-CustomFluentBit)
+ [

### 管理已安裝 Pod 工作負載的 Kubernetes 容差
](#CloudWatch-Observability-EKS-addon-Tolerations)
+ [

### 選擇退出加速運算指標收集
](#CloudWatch-Observability-EKS-addon-OptOutAccelerated)
+ [

### 使用自訂 CloudWatch 代理程式組態
](#CloudWatch-Observability-EKS-addon-CustomAgentConfig)
+ [

### 管理許可 Webhook TLS 憑證
](#CloudWatch-Observability-EKS-addon-Webhook)
+ [

### 收集 Amazon EBS 磁碟區 ID
](#CloudWatch-Observability-EKS-addon-VolumeIDs)

### 選擇不收集容器日誌
<a name="CloudWatch-Observability-EKS-addon-OptOutContainerLogs"></a>

依預設，附加元件會使用 Fluent Bit，從所有 Pod 中收集容器日誌，然後將日誌傳送至 CloudWatch Logs。如需有關收集哪些日誌的資訊，請參閱 [設定 Fluent Bit](Container-Insights-setup-logs-FluentBit.md#Container-Insights-FluentBit-setup)。

**注意**  
附加元件或 Helm Chart 都不會管理叢集中現有的 Fluentd 或 Fluent Bit 資源。您可以在安裝附加元件或 Helm Chart 之前刪除現有的 Fluentd 或 Fluent Bit 資源。或者，若要保留現有設定，並避免讓附加元件或 Helm Chart 同時安裝 Fluent Bit，可以依照本節中的指示將其停用。

若要在使用 Amazon CloudWatch Observability EKS 附加元件時選擇不收集容器日誌，請在建立或更新附加元件時傳遞下列選項：

```
--configuration-values '{ "containerLogs": { "enabled": false } }'
```

若要停用容器日誌收集，請在建立或更新附加元件時，使用 Helm Chart 傳遞下列選項：

```
--set containerLogs.enabled=false
```

### 使用自訂 Fluent Bit 組態
<a name="CloudWatch-Observability-EKS-addon-CustomFluentBit"></a>

從 Amazon CloudWatch Observability EKS 附加元件的 1.7.0 版開始，可以在建立或更新附加元件或 Helm Chart 時修改 Fluent Bit 組態。您可以在附加元件進階組態的 `containerLogs` 根層級區段中提供自訂 Fluent Bit 組態，或在 Helm Chart 中提供值覆寫。在本節中，您需要在 `config` 區段 (適用於 Linux) 或 `configWindows` 區段 (適用於 Windows) 中提供自訂 Fluent Bit 組態。`config` 會進一步細分為下列子區段：
+ `service`– 本節提供定義 Fluent Bit 引擎全域行為的 `SERVICE` 組態。
+ `customParsers`– 本節提供您希望包含的任何全域 `PARSER`，能夠取得非結構化日誌項目，並為它們提供結構，使其更容易處理和進一步篩選。
+ `extraFiles`– 本節可用於提供要包含的其他 Fluent Bit `conf` 檔案。根據預設，包含以下 3 個 `conf` 檔案：
  + `application-log.conf`– 用於將應用程式日誌從叢集傳送至 CloudWatch Logs 中的日誌群組 `/aws/containerinsights/my-cluster-name/application` 的 `conf` 檔案。
  + `dataplane-log.conf`– 用於將對應於叢集資料平面元件的日誌 (包括 CRI 日誌、kubelet 日誌、kube-proxy 日誌和 Amazon VPC CNI 日誌) 傳送至 CloudWatch Logs 中的日誌群組 `/aws/containerinsights/my-cluster-name/dataplane` 的 `conf` 檔案。
  + `host-log.conf`– 用於將日誌從 Linux 上的 `/var/log/dmesg`、`/var/log/messages` 和 `/var/log/secure` 以及 Windows 上的系統 `winlogs` 傳送至 CloudWatch 中的日誌群組 `/aws/containerinsights/my-cluster-name/host` 的 `conf`。

**注意**  
即使您只修改子區段中的一個欄位，也請提供這些個別區段的完整組態。我們建議您使用下方的預設組態作為基準，然後進行相應修改，以免停用預設啟用的功能。您可以在修改 Amazon EKS 附加元件的進階組態或者為 Helm Chart 提供值覆寫時，使用下列 YAML 組態。

若要尋找叢集的 `config` 區段，請參閱 GitHub 上的 [aws-observability / helm-charts](https://github.com/aws-observability/helm-charts/releases)，並找到與您正在安裝的附加組件或 Helm Chart 版本相對應的版本。然後導覽至 `/charts/amazon-cloudwatch-observability/values.yaml`，在 `containerLogs` 下的 `fluentBit` 區段中找到 `config` 區段 (適用於 Linux) 和 `configWindows` 區段 (適用於 Windows)。

例如，您可以[在這裡](https://github.com/aws-observability/helm-charts/blob/v1.7.0/charts/amazon-cloudwatch-observability/values.yaml#L44))找到 1.7.0 版的預設 Fluent Bit 組態。

當您透過 Amazon EKS 附加元件的進階組態提供此參數時，或當您將其作為 Helm 安裝的值覆寫提供時，建議您提供 `config` 作為 YAML。請確定 YAML 符合下列結構。

```
containerLogs:
  fluentBit:
    config:
      service: |
        ...
      customParsers: |
        ...
      extraFiles:
        application-log.conf: |
          ...
        dataplane-log.conf: |
          ...
        host-log.conf: |
          ...
```

下列範例 `config` 會將排清間隔的全域設定變更為 45 秒。即使唯一修改是 `Flush` 欄位，您仍然必須提供服務子區段的完整 `SERVICE` 定義。由於此範例未指定其他子區段的覆寫，因此預設值會用於它們。

```
containerLogs:
  fluentBit:
    config:
      service: |
        [SERVICE]
          Flush                     45
          Grace                     30
          Log_Level                 error
          Daemon                    off
          Parsers_File              parsers.conf
          storage.path              /var/fluent-bit/state/flb-storage/
          storage.sync              normal
          storage.checksum          off
          storage.backlog.mem_limit 5M
```

下列範例組態包含額外的 Fluent Bit `conf` 檔案。在此範例中，我們會在 `extraFiles` 下新增自訂 `my-service.conf`，除了三個預設的 `extraFiles` 之外，還會包含它。

```
containerLogs:
  fluentBit:
    config:
      extraFiles:
        my-service.conf: |
          [INPUT]
            Name              tail
            Tag               myservice.*
            Path              /var/log/containers/*myservice*.log
            DB                /var/fluent-bit/state/flb_myservice.db
            Mem_Buf_Limit     5MB
            Skip_Long_Lines   On
            Ignore_Older      1d
            Refresh_Interval  10
          
          [OUTPUT]
            Name                cloudwatch_logs
            Match               myservice.*
            region              ${AWS_REGION}
            log_group_name      /aws/containerinsights/${CLUSTER_NAME}/myservice
            log_stream_prefix   ${HOST_NAME}-
            auto_create_group   true
```

下一個範例會從 `extraFiles` 完全移除現有 `conf` 檔案。這會完全排除 `application-log.conf`，方法是使用空字串將其覆寫。僅從 `extraFiles` 省略 `application-log.conf` 會改為暗示使用預設值，這不是我們要在此範例中嘗試達成的目標。這同樣適用於移除您先前可能已新增至 `extraFiles` 的任何自訂 `conf` 檔案。

```
containerLogs:
  fluentBit:
    config:
      extraFiles:
        application-log.conf: ""
```

### 管理已安裝 Pod 工作負載的 Kubernetes 容差
<a name="CloudWatch-Observability-EKS-addon-Tolerations"></a>

從 Amazon CloudWatch Observability EKS 附加元件的 1.7.0 版開始，附加元件和 Helm Chart 預設會設定 Kubernetes *容差*，以容忍附加元件或 Helm Chart 安裝之 Pod 工作負載上的所有污點。這可確保 CloudWatch 代理程式和 Fluent Bit 等常駐程式集預設可在叢集中的所有節點上排程 Pod。如需關於容差和污點的詳細資訊，請參閱 Kubernetes 文件中的[污點和容差](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/)。

附加元件或 Helm Chart 設定的預設容差如下所示：

```
tolerations:
- operator: Exists
```

您可以在使用附加元件進階組態時，或使用值覆寫來安裝或升級 Helm Chart 時，在根層級設定 `tolerations` 欄位，以覆寫預設容差。範例看起來與以下內容相似：

```
tolerations:
- key: "key1"
  operator: "Exists"
  effect: "NoSchedule"
```

若要完全省略容差，可以使用如下所示的組態：

```
tolerations: []
```

容差的任何變更都會套用至附加元件或 Helm Chart 安裝的所有 Pod 工作負載。

### 選擇退出加速運算指標收集
<a name="CloudWatch-Observability-EKS-addon-OptOutAccelerated"></a>

根據預設，具有增強可觀測性的 Container Insights 會收集加速運算監控的指標，包括 NVIDIA GPU 指標、 AWS Trainium 和 AWS Inferentia 的 AWS Neuron 指標，以及 AWS Elastic Fabric Adapter (EFA) 指標。

根據預設，從 EKS 附加元件版本 `v1.3.0-eksbuild.1` 或者 Helm Chart 和 CloudWatch 代理程式版本 `1.300034.0` 開始，系統將收集來自 Amazon EKS 工作負載的 NVIDIA GPU 指標。如需收集之指標和先決條件的清單，請參閱[NVIDIA GPU 指標](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EKS-GPU)。

AWS 根據預設，會收集 AWS Trainium 和 AWS Inferentia 加速器的 Neuron 指標，從 EKS 附加元件`v1.5.0-eksbuild.1`或 Helm Chart 的版本，以及 CloudWatch 代理程式`1.300036.0`的版本開始。如需收集之指標和先決條件的清單，請參閱[AWS AWS Trainium 和 AWS Inferentia 的 Neuron 指標](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EKS-Neuron)。

AWS 根據預設，會從 Amazon EKS 叢集上的 Linux 節點收集 Elastic Fabric Adapter (EFA) 指標，從 EKS 附加元件`v1.5.2-eksbuild.1`的版本或 Helm Chart 和 CloudWatch 代理程式`1.300037.0`的版本開始。如需收集之指標和先決條件的清單，請參閱[AWS Elastic Fabric Adapter (EFA) 指標](Container-Insights-metrics-enhanced-EKS.md#Container-Insights-metrics-EFA)。

您可以選擇不收集這些指標，方法是將 CloudWatch 代理程式設定檔中的 `accelerated_compute_metrics` 欄位設定為 `false`。此欄位位於 CloudWatch 設定檔 `metrics_collected` 區段的 `kubernetes` 區段中。以下是選擇退出組態的範例。如需如何使用自訂 CloudWatch 代理程式組態的詳細資訊，請參閱以下章節：[使用自訂 CloudWatch 代理程式組態](#CloudWatch-Observability-EKS-addon-CustomAgentConfig)。

```
{
  "logs": {
    "metrics_collected": {
      "kubernetes": {
        "enhanced_container_insights": true,
        "accelerated_compute_metrics": false
      }
    }
  }
}
```

### 使用自訂 CloudWatch 代理程式組態
<a name="CloudWatch-Observability-EKS-addon-CustomAgentConfig"></a>

若要使用 CloudWatch 代理程式收集其他指標、日誌或追蹤，您可指定自訂組態，同時保持啟用 Container Insights 和 CloudWatch Application Signals。因此，請在建立或更新 EKS 附加元件或 Helm Chart 時使用的進階組態的代理程式金鑰下，將 CloudWatch 代理程式設定檔內嵌在組態金鑰中。以下表示未提供任何其他組態時的預設代理程式組態。

**重要**  
您使用其他組態設定提供的任何自訂組態會覆寫代理程式使用的預設組態。請注意不要意外停用預設啟用的功能，例如具有增強可觀測性的 Container Insights 和 CloudWatch Application Signals。在需要提供自訂代理程式組態的案例中，建議您使用下列預設組態作為基準，然後進行相應的修改。
+ 使用 Amazon CloudWatch Observability EKS 附加元件時

  ```
  --configuration-values '{
    "agent": {
      "config": {
        "logs": {
          "metrics_collected": {
            "application_signals": {},
            "kubernetes": {
              "enhanced_container_insights": true
            }
          }
        },
        "traces": {
          "traces_collected": {
            "application_signals": {}
          }
        }
      }
    }   
  }'
  ```
+ 使用 Helm Chart 時

  ```
  --set agent.config='{
    "logs": {
      "metrics_collected": {
        "application_signals": {},
        "kubernetes": {
          "enhanced_container_insights": true
        }
      }
    },
    "traces": {
      "traces_collected": {
        "application_signals": {}
      }
    }
  }'
  ```

下列範例顯示 Windows 上 CloudWatch 代理程式的預設代理程式組態。Windows 上的 CloudWatch 代理程式不支援自訂組態。

```
{
  "logs": {
    "metrics_collected": {
      "kubernetes": {
        "enhanced_container_insights": true
      },
    }
  }
}
```

### 管理許可 Webhook TLS 憑證
<a name="CloudWatch-Observability-EKS-addon-Webhook"></a>

Amazon CloudWatch Observability EKS 附加元件和 Helm Chart 會利用 Kubernetes [許可 Webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/) 來驗證和改變 `AmazonCloudWatchAgent` 和 `Instrumentation` 自訂資源 (CR) 請求，以及叢集上的 Kubernetes Pod 請求 (如果啟用了 CloudWatch Application Signals)。在 Kubernetes 中，Webhook 需要 API 伺服器設定為信任的 TLS 憑證，以確保安全通訊。

根據預設，Amazon CloudWatch Observability EKS 附加元件和 Helm Chart 會自動產生由此 CA 簽署的自我簽署 CA 和 TLS 憑證，以保護 API 伺服器與 Webhook 伺服器之間的通訊安全。此自動產生的憑證預設有效期為 10 年，且不會在到期時自動續訂。此外，每次升級或重新安裝附加元件或 Helm Chart 時，都會重新產生 CA 服務包和憑證，進而重設到期日。如果您想要變更自動產生的憑證預設到期日，可以在建立或更新附加元件時使用下列其他組態。將 *expiry-in-days* 取代為您想要的到期時間 (以天為單位)。
+ 將此用於 Amazon CloudWatch Observability EKS 附加元件

  ```
  --configuration-values '{ "admissionWebhooks": { "autoGenerateCert": { "expiryDays": expiry-in-days } } }' 
  ```
+ 將此用於 Helm Chart

  ```
  --set admissionWebhooks.autoGenerateCert.expiryDays=expiry-in-days
  ```

為了獲得更安全且功能豐富的憑證授權機構解決方案，附加元件可選擇支援 [cert-manager](https://cert-manager.io/docs/)，這是在 Kubernetes 中廣泛採用的 TLS 憑證管理解決方案，它可簡化獲取、更新、管理和使用這些憑證的程序。它可確保憑證有效且最新，並嘗試在到期前的設定時間更新憑證。cert-manager 也有助於從各種支援來源 (包括 [AWS Certificate Manager 私有憑證授權機構](https://aws.amazon.com/private-ca/)) 發行憑證。

建議您檢閱叢集上的 TLS 憑證管理最佳實務，並建議您選擇使用適合生產環境的 cert-manager。請注意，如果您選擇啟用 cert-manager 來管理許可 Webhook TLS 憑證，則必須先在 Amazon EKS 叢集上預先安裝 cert-manager，然後再安裝 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart。請參閱 [cert-manager 文件](https://cert-manager.io/docs/installation/)以進一步了解可用的安裝選項。安裝之後，您可以使用下列額外組態，選擇使用 cert-manager 來管理許可 Webhook TLS 憑證。
+ 如果使用 Amazon CloudWatch Observability EKS 附加元件

  ```
  --configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }' 
  ```
+ 如果使用 Helm Chart

  ```
  --set admissionWebhooks.certManager.enabled=true
  ```

```
--configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }' 
```

本節中討論的進階組態預設會使用[自我簽署](https://cert-manager.io/docs/configuration/selfsigned/)發行者。

### 收集 Amazon EBS 磁碟區 ID
<a name="CloudWatch-Observability-EKS-addon-VolumeIDs"></a>

若您想要在效能日誌中收集 Amazon EBS 磁碟區 ID，必須將另一項政策新增至附接到工作節點或服務帳戶的 IAM 角色。新增以下內容作為內嵌政策。如需詳細資訊，請參閱[新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:DescribeVolumes"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

## 收集 Java Management Extensions (JMX) 指標
<a name="install-CloudWatch-Observability-EKS-addon-JMX-metrics"></a>

CloudWatch 代理程式支援在 Amazon EKS 上收集 Java Management Extensions (JMX) 指標。這可讓您從在 Amazon EKS 叢集上執行的 Java 應用程式收集其他指標，以深入了解效能、記憶體用量、流量和其他關鍵指標。如需詳細資訊，請參閱[收集 Java Management Extensions (JMX) 指標](CloudWatch-Agent-JMX-metrics.md)。

## 啟用 Kueue 指標
<a name="enable-Kueue-metrics"></a>

從 CloudWatch Observability EKS 附加元件的版本 `v2.4.0-eksbuild.1` 開始，適用於 Amazon EKS 的 Container Insights 支援從 Amazon EKS 叢集收集 Kueue 指標。如需這些指標的詳細資訊，請參閱 [Kueue 指標](Container-Insights-metrics-EKS.md#Container-Insights-metrics-Kueue)。

如果您使用的是 Amazon SageMaker AI Hyperpod 任務控管 EKS 附加元件，您可以略過**先決條件**區段中的步驟，並只遵循 中的步驟[啟用組態旗標](#enable-Kueue-metrics-flag)。

### 先決條件
<a name="enable-Kueue-metrics-prerequisites"></a>

在 Amazon EKS 叢集中安裝 Kueue 之前，請在資訊清單檔案中進行下列更新：

1. 為 Kueue 啟用選用的叢集佇列資源指標。為此，請在 `kueue-system` ConfigMap 中修改內嵌 `controller_manager_config.yaml`。在 `metrics` 區段中，新增行 `enableClusterQueueResources: true` 或取消對其的註解。

   ```
   apiVersion: v1
   data:
     controller_manager_config.yaml: |
       apiVersion: config.kueue.x-k8s.io/v1beta1
       kind: Configuration
       health:
         healthProbeBindAddress: :8081
       metrics:
         bindAddress: :8080
         enableClusterQueueResources: true  <-- ADD/UNCOMMENT THIS LINE
   ```

1. 根據預設，所有 `k8s` 服務在叢集範圍內皆可使用。Kueue 會建立公開指標的服務 `kueue-controller-manager-metrics-service`。若要防止重複觀測指標，請修改此服務以僅允許從相同節點存取指標服務。為此，請將行 `internalTrafficPolicy: Local` 新增至 `kueue-controller-manager-metrics-service` 定義。

   ```
   apiVersion: v1
   kind: Service
   metadata:
     labels:
       ...
     name: kueue-controller-manager-metrics-service
     namespace: kueue-system
   spec:
     ports:
     - name: https
       port: 8443
       protocol: TCP
       targetPort: https
     internalTrafficPolicy: Local   <-- ADD THIS LINE
     selector:
       control-plane: controller-manager
   ```

1. 最後，`kueue-controller-manager` Pod 會建立 `kube-rbac-proxy` 容器。此容器目前的記錄詳盡程度較高，當指標抓取器存取 `kueue-controller-manager-metrics-service` 時，會導致該容器記錄叢集的承載字符。建議您降低記錄詳盡程度。Kueue 分發的資訊清單中的預設值為 10，建議您將其變更為 0。

   ```
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     labels:
       ...
     name: kueue-controller-manager
     namespace: kueue-system
   spec:
     ...
     template:
       ...
       spec:
         containers:
         ...
         - args:
           - --secure-listen-address=0.0.0.0:8443
           - --upstream=http://127.0.0.1:8080/
           - --logtostderr=true
           - --v=0  <-- CHANGE v=10 TO v=0
           image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
           name: kube-rbac-proxy
           ...
   ```

### 啟用組態旗標
<a name="enable-Kueue-metrics-flag"></a>

若要啟用 Kueue 指標，必須在附加元件額外組態中啟用 `kueue_container_insights`。您可以使用 AWS CLI 來設定 EKS 可觀測性附加元件，或使用 Amazon EKS 主控台來執行此操作。

使用下列其中一種方法成功安裝 EKS 可觀測性附加元件後，您可以在 HyperPod 主控台**儀表板**索引標籤下檢視 Amazon EKS 叢集指標。

------
#### [ AWS CLI ]

**使用 啟用 Kueue 指標 AWS CLI**
+ 輸入下列 AWS CLI 命令來安裝 附加元件。

  ```
  aws eks create-addon --cluster-name cluster-name --addon-name amazon-cloudwatch-observability --configuration-values "configuration_json_file"
  ```

  以下為包含組態值的 JSON 檔案範例。

  ```
  {
      "agent": {
          "config": {
              "logs": {
                  "metrics_collected": {
                      "kubernetes": {
                          "kueue_container_insights": true,
                          "enhanced_container_insights": true
                      },
                      "application_signals": { }
                  }
              },
              "traces": {
                  "traces_collected": {
                      "application_signals": { }
                  }
              }
          },
      },
  }
  ```

------
#### [ Amazon EKS console ]

**使用 Amazon EKS 主控台啟用 Kueue 指標**

1. 在以下網址開啟 Amazon EKS 主控台：[https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters)。

1. 選取叢集的名稱。

1. 選擇**附加元件**。

1. 在清單中尋找 **Amazon CloudWatch 可觀測性**附加元件並進行安裝。執行此操作時，選擇**選用組態**，並包含下列 JSON 組態值。

   ```
   {
       "agent": {
           "config": {
               "logs": {
                   "metrics_collected": {
                       "kubernetes": {
                           "kueue_container_insights": true,
                           "enhanced_container_insights": true
                       },
                       "application_signals": { }
                   }
               },
               "traces": {
                   "traces_collected": {
                       "application_signals": { }
                   }
               }
           },
       },
   }
   ```

------

## 附加 OpenTelemetry 收集器設定檔
<a name="install-CloudWatch-Observability-EKS-addon-OpenTelemetry"></a>

CloudWatch 代理程式支援補充 OpenTelemetry 收集器設定檔及其自己的設定檔。此功能可讓您透過 CloudWatch 代理程式組態，使用 CloudWatch Application Signals 或 Container Insights 等 CloudWatch 代理程式功能，並使用單一代理程式加入現有的 OpenTelemetry 收集器組態。

為避免與 CloudWatch 代理程式自動建立的管道發生合併衝突，建議您在 OpenTelemetry 收集器組態中的每個元件和管道後方，新增自訂字尾。如此可防止矛盾與合併衝突。
+ 如果使用 Amazon CloudWatch Observability EKS 附加元件

  ```
  --configuration-values file://values.yaml
  ```

  或

  ```
  --configuration-values '
    agent:
      otelConfig:
        receivers:
          otlp/custom-suffix:
            protocols:
              http: {}
        exporters:
          awscloudwatchlogs/custom-suffix:
            log_group_name: "test-group"
            log_stream_name: "test-stream"
        service:
          pipelines:
            logs/custom-suffix:
              receivers: [otlp/custom-suffix]
              exporters: [awscloudwatchlogs/custom-suffix]
  '
  ```
+ 如果使用 Helm Chart

  ```
  --set agent.otelConfig='
    receivers:
      otlp/custom-suffix:
        protocols:
          http: {}
    exporters:
      awscloudwatchlogs/custom-suffix:
        log_group_name: "test-group"
        log_stream_name: "test-stream"
    service:
      pipelines:
        logs/custom-suffix:
          receivers: [otlp/custom-suffix]
          exporters: [awscloudwatchlogs/custom-suffix]
  '
  ```

## 透過 Amazon EKS 叢集的 Application Signals 啟用 APM
<a name="Container-Insights-setup-EKS-appsignalsconfiguration"></a>

根據預設，安裝 CloudWatch 可觀測性 EKS 附加元件 (V5.0.0 或更高版本） 或 Helm Chart 時，透過 Application Signals 啟用 OpenTelemetry (OTEL) 型應用程式效能監控 (APM)。您可以使用 Amazon EKS 附加元件的進階組態或使用 Helm Chart 覆寫值，進一步自訂具體設定。

**注意**  
如果您使用任何 OpenTelemetry (OTEL) 型 APM 解決方案，啟用 Application Signals 會影響現有的可觀測性設定。在繼續之前，請先檢閱您目前的實作。若要在升級至 V5.0.0 或更新版本後維護現有的 APM 設定，請參閱 [選擇不接收 Application Signals](#Opting-out-App-Signals)。

**Application Signals 自動監視器**

CloudWatch Observability Amazon EKS 附加元件和 Helm Chart 的 5.0.0 版推出新功能。您現在可以透過自動監視器組態，自動為 EKS 叢集中的所有或特定服務工作負載啟用 Application Signals。可以在進階組態 `applicationSignals` 區段下的 `manager` 區段中，指定下列 `autoMonitor` 設定。
+ *monitorAllServices*：一個布林值旗標，用於啟用 (true) 或停用 (false) 自動監視器對所有服務工作負載的監控。預設為 true。啟用此旗標將確保叢集中映射到 Kubernetes 服務的所有 Kubernetes 工作負載 (Deployments、DaemonSets 和 StatefulSets)，在第一次啟動時 (或針對現有工作負載重新啟動時) 將在自動啟用 Application Signals 的範圍內。系統預設會排除 `kube-system` 和 `amazon-cloudwatch` 命名空間中的工作負載。
+ *languages*：一個字串清單，指定 Application Signals 在 `monitorAllServices` 啟用時嘗試自動檢測服務使用的語言集。預設為所有[支援的語言](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html)。
+ *restartPods*：一個布林值旗標，控制工作負載在組態變更後是否重新啟動。預設為 false。將此標記設為 `true` 可控制自動監視器範圍內的 Kubernetes 工作負載是否會在儲存組態變更時自動重新啟動。任何影響 Kubernetes 工作負載中 Pod 重啟的設定 (例如 `updateStrategy`) 都將被納入考量。請考慮重新啟動可能導致服務停機。
+ *customSelector*：為自動監視器選取特定 Kubernetes 命名空間或工作負載的設定。
  + *java*：指定自動使用 Java 檢測的工作負載
  + *python*：指定自動使用 Python 檢測的工作負載
  + *nodejs*：指定自動使用 Node.js 檢測的工作負載
  + *dotnet*：指定自動使用 .NET 檢測的工作負載

  對於上述每種語言，可以設定下列欄位。
  + *namespaces*：指定要選取之命名空間的字串清單。預設為空白清單，即 []
  + *deployments*：指定要選取之部署的字串清單。以 `namespace/deployment` 格式指定。預設為空白清單，即 []
  + *daemonsets*：指定要選取之常駐程式集的字串清單。以 `namespace/daemonset` 格式指定。預設為空白清單，即 []
  + *statefulsets*：指定要選取之狀態集的字串清單。以 `namespace/statefulset` 格式指定。預設為空白清單，即 []
+ *exclude*：從自動監視器排除特定 Kubernetes 命名空間或工作負載的設定。當同個工作負載也在 `monitorAllServices` 或 `customSelector` 的範圍內時，排除工作負載優先。
  + *java*：指定要排除在外，不自動使用 Java 檢測的工作負載
  + *python*：指定要排除在外，不自動使用 Python 檢測的工作負載
  + *nodejs*：指定要排除在外，不自動使用 Node.js 檢測的工作負載
  + *dotnet*：指定要排除在外，不自動使用 .NET 檢測的工作負載

  對於上述每種語言，可以設定下列欄位。
  + *namespaces*：指定要排除之命名空間的字串清單。預設為空白清單，即 []
  + *deployments*：指定要排除之部署的字串清單。以 `namespace/deployment` 格式指定。預設為空白清單，即 []
  + *daemonsets*：指定要排除之常駐程式集的字串清單。以 `namespace/daemonset` 格式指定。預設為空白清單，即 []
  + *statefulsets*：指定要排除之狀態集的字串清單。以 `namespace/statefulset` 格式指定。預設為空白清單，即 []

以下是為叢集上的所有現有和新服務工作負載自動啟用 Application Signals 的組態範例。

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
      restartPods: true
```

以下是為叢集上已啟動的任何新服務工作負載，以及任何明確將重新啟動的現有服務工作負載自動啟用 Application Signals 的組態範例。

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
```

以下是使用 Java 為 `pet-warehouse` 命名空間中某個工作負載對應的所有現有和新 Pod 自動啟用 Application Signals 的組態範例。

```
manager:
  applicationSignals:
    autoMonitor:
      restartPods: true
      customSelector:
        java:
          namespaces: ["pet-warehouse"]
```

以下是使用 Python 為叢集上的所有現有和新服務工作負載 (`pet-clinic` 部署除外) 自動啟用 Application Signals 的組態範例。

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
      languages: ["python"]
      restartPods: true
      exclude:
        python:
          deployments: ["pet-warehouse/pet-clinic"]
```

以下是使用 Java 為叢集中的所有服務工作負載 (`python-apps` 命名空間中的服務工作負載除外)，以及使用 Python 特別為 `python-apps` 命名空間中的 `sample-python-app` 部署自動啟用 Application Signals 的組態範例。

```
manager:
  applicationSignals:
    autoMonitor:
      monitorAllServices: true
      languages: ["java"]
      restartPods: true
      customSelector:
        python:
          deployments: ["python-apps/sample-python-app"]
      exclude:
        java:
          namespaces: ["python-apps"]
```

## Amazon CloudWatch Observability EKS 附加元件或 Helm Chart 疑難排解
<a name="Container-Insights-setup-EKS-addon-troubleshoot"></a>

可使用以下資訊來協助對 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart 問題進行疑難排解

**Topics**
+ [

### 更新和刪除 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart
](#EKS-addon-troubleshoot-update)
+ [

### 確認 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart 使用的 CloudWatch 代理程式版本
](#EKS-addon-troubleshoot-version)
+ [

### 管理附加元件或 Helm Chart 時處理 ConfigurationConflict
](#EKS-addon-troubleshoot-conflict)

### 更新和刪除 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart
<a name="EKS-addon-troubleshoot-update"></a>

如需有關更新或刪除 Amazon CloudWatch Observability EKS 附加元件的相關指示，請參閱[管理 Amazon EKS 附加元件](https://docs.aws.amazon.com/eks/latest/userguide/managing-add-ons.html)。使用 `amazon-cloudwatch-observability` 作為附加元件的名稱。

如要刪除叢集中的 Helm Chart，請輸入以下命令。

```
helm delete amazon-cloudwatch-observability -n amazon-cloudwatch --wait
```

### 確認 Amazon CloudWatch Observability EKS 附加元件或 Helm Chart 使用的 CloudWatch 代理程式版本
<a name="EKS-addon-troubleshoot-version"></a>

Amazon CloudWatch Observability EKS 附加元件和 Helm Chart 會安裝一種 `AmazonCloudWatchAgent` 類自訂資源，它可控制叢集上 CloudWatch 代理程式常駐程式集的行為，包括所使用的 CloudWatch 代理程式版本。可以透過輸入下列命令，取得叢集 u 上安裝的所有 `AmazonCloudWatchAgent` 自訂資源清單：

```
kubectl get amazoncloudwatchagent -A
```

在此命令的輸出中，應該可以檢查 CloudWatch 代理程式版本。或者，您也可以描述 `amazoncloudwatchagent` 資源或叢集上執行的其中一個 `cloudwatch-agent-*` Pod，以檢查正在使用的映像。

### 管理附加元件或 Helm Chart 時處理 ConfigurationConflict
<a name="EKS-addon-troubleshoot-conflict"></a>

當您安裝或更新 Amazon CloudWatch Observability EKS 附加元件時，如果注意到現有資源導致的失敗，很可能是因為您已經在叢集上安裝 CloudWatch 代理程式及其關聯元件，例如 ServiceAccount、ClusterRole 和 ClusterRoleBinding。

附加元件顯示的錯誤將包含 `Conflicts found when trying to apply. Will not continue due to resolve conflicts mode`、

Helm Chart 顯示的錯誤將類似於 `Error: INSTALLATION FAILED: Unable to continue with install and invalid ownership metadata.`。

當附加元件或 Helm Chart 嘗試安裝 CloudWatch 代理程式及其相關元件時，如果偵測到內容有任何變更，則預設情況下，安裝或更新會失敗，以避免覆寫叢集上資源的狀態。

如果您嘗試上載 Amazon CloudWatch Observability EKS 附加元件，但發現此失敗，建議刪除先前安裝在叢集上的現有 CloudWatch 代理程式設定，然後再安裝 EKS 附加元件或 Helm Chart。請務必備份您對原始 CloudWatch 代理程式設定所做的任何自訂設定 (例如自訂代理程式組態)，並在下次安裝或更新附加元件時將這些自訂設定提供給附加元件或 Helm Chart。如果之前已安裝 CloudWatch 代理程式以登入 Container Insights，請參閱 [刪除 Container Insights 的 CloudWatch 代理程式和 Fluent Bit](ContainerInsights-delete-agent.md) 以取得詳細資訊。

或者，附加元件也支援衝突解決組態選項，該選項可指定 `OVERWRITE`。您可以使用此選項覆寫叢集上的衝突來繼續安裝或更新附加元件。如果您使用 Amazon EKS 主控台，則在建立或更新附加元件時選擇**可選組態設定**，可找到**衝突解決方法**。如果您使用的是 AWS CLI，您可以將 `--resolve-conflicts OVERWRITE` 提供給命令，以建立或更新附加元件。

## 選擇不接收 Application Signals
<a name="Opting-out-App-Signals"></a>

在 CloudWatch 主控台或使用 SDK 微調您的服務監控偏好設定。

對於 5.0.0 之前的版本，若要停用 Application Signals 自動監控，請遵循下列程序：

**使用 CLI 或 SDK**

下列組態可以套用為 EKS 附加元件的進階組態，或在使用 Helm Chart 時作為值覆寫。

```
{
  "manager": {
    "applicationSignals": {
      "autoMonitor": {
        "monitorAllServices": false
      }
    }
  }
}
```

重新啟動您的 服務，以使變更生效。

**使用主控台**

透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格的 **Application Signals (APM)** 下，選擇**服務**。

1.  選擇**啟用 Application Signals** 以檢視啟用頁面。

1. 針對您不想監控的每個服務，**清除自動**監控核取方塊。

1. 重新啟動您的 服務，以使變更生效。