

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

# 管理 CloudWatch 代理程式組態檔案
<a name="create-store-cloudwatch-configurations"></a>

我們建議您建立標準 Amazon CloudWatch 代理程式組態，其中包含您要在所有 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和內部部署伺服器中擷取的系統日誌和指標。您可以使用 CloudWatch 代理程式[組態檔案精靈](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html)來協助您建立組態檔案。您可以多次執行組態精靈，為不同的系統和環境產生唯一的組態。您也可以使用組態檔案[結構描述來修改組態檔案](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)或建立變化。CloudWatch 代理程式組態檔案可以存放在 [AWS Systems Manager 參數存放區](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)參數中。 如果您有[多個 CloudWatch 代理程式組態檔案](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-common-scenarios.html#CloudWatch-Agent-multiple-config-files)，您可以建立個別的參數存放區參數。如果您使用多個 AWS 帳戶或 AWS 區域，您必須管理和更新每個帳戶和區域中的參數存放區參數。或者，您可以將 CloudWatch 組態作為 Amazon S3 中的檔案或您選擇的版本控制工具集中管理。 

CloudWatch 代理程式隨附的`amazon-cloudwatch-agent-ctl`指令碼可讓您指定組態檔案、參數存放區參數或代理程式的預設組態。預設組態符合基本的預先定義指標集，並設定代理程式向 CloudWatch 報告記憶體和磁碟空間指標。不過，它不包含任何日誌檔案組態。如果您使用 CloudWatch 代理程式的 [Systems Manager Quick Setup](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-quick-setup.html) ，也會套用預設組態。

由於預設組態不包含記錄，也未根據您的需求自訂，因此建議您建立並套用自訂的 CloudWatch 組態，以符合您的需求。

## 管理 CloudWatch 組態
<a name="store-cloudwatch-configuration-s3"></a>

根據預設，CloudWatch 組態可以儲存並套用為參數存放區參數或 CloudWatch 組態檔案。最佳選擇取決於您的需求。在本節中，我們會討論這兩個選項的優缺點。代表性解決方案也詳細說明如何管理多個 AWS 帳戶和 AWS 區域的 CloudWatch 組態檔案。

**Systems Manager 參數存放區參數**

如果您有單一、標準 CloudWatch 代理程式組態檔案，想要在一組小型 AWS 帳戶和區域中套用和管理，請使用參數存放區參數來管理 CloudWatch 組態。當您將 CloudWatch 組態儲存為參數存放區參數時，您可以使用 CloudWatch 代理程式組態工具 (`amazon-cloudwatch-agent-ctl`在 Linux 上） 從參數存放區讀取和套用組態，而無需將組態檔案複製到執行個體。您可以使用 **AmazonCloudWatch-ManageAgent **Systems Manager 命令文件，在單一執行中更新多個 EC2 執行個體上的 CloudWatch 組態。由於參數存放區參數是區域參數，您必須更新和維護每個 AWS 區域和 AWS 帳戶中的 CloudWatch 參數存放區參數。如果您要將多個 CloudWatch 組態套用至每個執行個體，則必須自訂 **AmazonCloudWatch-ManageAgent** Command 文件** **以包含這些參數。

**CloudWatch 組態檔案**

如果您有多個 AWS 帳戶和區域，而且您正在管理多個 CloudWatch 組態檔案，則將 CloudWatch 組態做為檔案管理得很好。使用此方法，您可以在資料夾結構中瀏覽、組織和管理它們。  您可以將安全規則套用至個別資料夾或檔案，以限制和授予存取，例如更新和讀取許可。您可以在 AWS 外部共用和轉移它們以進行協同合作。您可以控制檔案的版本，以追蹤和管理變更。您可以將組態檔案複製到 CloudWatch 代理程式組態目錄，而無需個別套用每個組態檔案，即可共同套用 CloudWatch 組態。對於 Linux，CloudWatch 組態目錄位於 `/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d`。對於 Windows，組態目錄位於 `C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs`。

當您啟動 CloudWatch 代理程式時，代理程式會自動附加這些目錄中找到的每個檔案，以建立 CloudWatch 複合組態檔案。組態檔案應存放在中央位置 （例如，S3 儲存貯體），可供您所需的帳戶和區域存取。提供使用此方法的範例解決方案。

**組織 CloudWatch 組態**

無論用於管理 CloudWatch 組態的方法為何，請組織您的 CloudWatch 組態。您可以使用如下所示的方法，將組態整理成檔案或參數存放區路徑。


|  |  | 
| --- |--- |
| */config/standard/windows/ec2* | 存放 Amazon EC2 的標準 Windows 特定 CloudWatch 組態檔案。您可以在此資料夾下進一步分類不同 Windows 版本、EC2 執行個體類型和環境的標準作業系統 (OS) 組態。 | 
| */config/standard/windows/onpremises* | 存放內部部署伺服器的標準 Windows 特定 CloudWatch 組態檔案。您也可以在此資料夾下進一步分類不同 Windows 版本、伺服器類型和環境的標準作業系統組態。 | 
| */config/standard/linux/ec2* | 儲存 Amazon EC2 的標準 Linux 特定 CloudWatch 組態檔案。您可以在此資料夾下進一步分類不同 Linux 發行版本、EC2 執行個體類型和環境的標準作業系統組態。 | 
| */config/standard/linux/onpremises* | 儲存適用於內部部署伺服器的標準 Linux 特定 CloudWatch 組態檔案。您可以在此資料夾下進一步分類不同 Linux 發行版本、伺服器類型和環境的標準作業系統組態。 | 
| */config/ecs* | 如果您使用 Amazon ECS 容器執行個體，請存放 Amazon Elastic Container Service (Amazon ECS) 特有的 CloudWatch 組態檔案。這些組態可以附加到 Amazon ECS 特定系統層級記錄和監控的標準 Amazon EC2 組態。 | 
| */config/<application\$1name>* | 存放應用程式特定的 CloudWatch 組態檔案。您可以使用環境和版本的其他資料夾和字首進一步分類您的應用程式。 | 

## 範例：將 CloudWatch 組態檔案存放在 S3 儲存貯體
<a name="example"></a>

本節提供使用 Amazon S3 存放 CloudWatch 組態檔案的範例，以及用於擷取和套用 CloudWatch 組態檔案的自訂 Systems Manager Runbook。此方法可以解決大規模使用 CloudWatch 組態的 Systems Manager 參數存放區參數的一些挑戰：
+ 如果您使用多個區域，則必須同步每個區域的參數存放區中的 CloudWatch 組態更新。參數存放區是區域服務，必須在使用 CloudWatch 代理程式的每個區域中更新相同的參數。
+ 如果您有多個 CloudWatch 組態，您必須啟動每個參數存放區組態的擷取和應用程式。您必須個別從參數存放區擷取每個 CloudWatch 組態，並在每次新增組態時更新擷取方法。相反地，CloudWatch 提供用於儲存組態檔案的組態目錄，並在目錄中套用每個組態，而不需要個別指定這些組態。
+ 如果您使用多個帳戶，則必須確保每個新帳戶在其參數存放區中具有所需的 CloudWatch 組態。您也必須確保未來會將任何組態變更套用至這些帳戶及其區域。

您可以將 CloudWatch 組態存放在可從所有帳戶和區域存取的 S3 儲存貯體中。然後，您可以使用 Systems Manager Automation Runbooks 和 Systems Manager State Manager，將這些組態從 S3 儲存貯體複製到 CloudWatch 組態目錄。您可以使用 [cloudwatch-config-s3-bucket.yaml](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/cloudwatch-config-s3-bucket.yaml) AWS CloudFormation 範本來建立可從 AWS Organizations 中組織內多個帳戶存取的 S3 儲存貯體。範本包含 參數 `OrganizationID` ，可授予 [組織內](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html)所有帳戶的讀取存取權。

本指南 [的設定狀態管理員和適用於 CloudWatch 代理程式的 Distributor 部署和組態](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/install-cloudwatch-systems-manager.html#set-up-systems-manager-distributor) 區段中提供的擴增範例 Systems Manager Runbook，設定為使用 [cloudwatch-config-s3-bucket.yaml](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/cloudwatch-config-s3-bucket.yaml) AWS CloudFormation 範本建立的 S3 儲存貯體擷取檔案。

或者，您可以使用版本控制系統 （例如 GitHub) 來存放您的組態檔案。如果您想要自動擷取儲存在版本控制系統中的組態檔案，您必須管理或集中登入資料儲存，並更新 Systems Manager Automation Runbook，其用於跨您的帳戶和擷取登入資料 AWS 區域。