安裝 CloudWatch 代理程式使用 Systems Manager 分發商和狀態管理器 - AWS 規定指引

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

安裝 CloudWatch 代理程式使用 Systems Manager 分發商和狀態管理器

您可以將 Systems Manager 狀態管理器狀態管理器與 Systems Manager 分發服務器自動安裝和更新 CloudWatch 服務器和 EC2 實例上的代理。經銷商包括AmazonCloudWatchAgent AWS託管軟件包,可安裝最新的 CloudWatch 代理版本。

此安裝方法有以下事前準備:

  • 必須在您的伺服器或 EC2 執行個體上安裝並執行 Systems Manager 代理程式。Systems Manager 代理已預安裝在亞馬遜 Linux、亞馬遜 Linux 2 和某些 AMI 上。還必須在其他映像或本地 VM 和服務器上安裝和配置代理。

  • 一個或多個 IAM 角色,具有必需的 CloudWatch 和 Systems Manager 權限必須附加到 EC2 執行個體或在內部部署伺服器的證書文件中定義。例如,您可以創建 IAM 角色,其中包含AWS受管政策:AmazonSSMManagedInstanceCore針對 Systems Manager 和CloudWatchAgentServerPolicy適用於 CloudWatch。您可以使用服務器-雲監視實例角色 .yaml AWS CloudFormation模板部署 IAM 角色和執行個體配置文件,其中包含這兩個策略。此模板也可以修改為包含 EC2 實例的其他標準 IAM 權限。對於內部部署伺服器或 VM,應配置 CloudWatch 代理程式使用Systems Manager 服務角色,這是為內部部署伺服器設定的。如需此項目的詳細資訊,請參如何配置使用 Systems Manager 代理和統一 CloudWatch 代理只使用臨時證書?中的AWS知識中心.

下面的列表提供了使用 Systems Manager 分發服務器和狀態管理器方法來安裝和維護 CloudWatch 代理程式:

  • 自動安裝多個操作系統— 您無需為每個操作系統編寫和維護腳本即可下載和安裝 CloudWatch 代理。

  • 自動更新檢查— 狀態管理器會自動定期檢查每個 EC2 實例是否具有最新的 CloudWatch 版本。

  • 合規性報告— Systems Manager 合規性儀錶板顯示哪些 EC2 實例未能成功安裝分銷商軟件包。

  • 新啟動的 EC2 實例的自動安裝— 在您的賬户中啟動的新 EC2 實例會自動接收 CloudWatch 代理程式。

但是,在選擇此方法之前,還應考慮以下三個方面:

  • 與現有關聯的衝突— 如果另一個關聯已安裝或配置 CloudWatch 代理,那麼這兩個關聯可能會互相幹擾並可能導致問題。使用此方法時,應刪除安裝或更新 CloudWatch 代理和配置的所有現有關聯。

  • 更新定製代理程式組態檔案— 分發服務器使用默認配置文件執行安裝。如果您使用自定義配置文件或多個 CloudWatch 配置文件,則必須在安裝後更新配置。

  • 多區域或多賬户設置— 必須在每個帳户和地區中設置狀態管理器關聯。必須更新多賬户環境中的新帳户以包含狀態管理器關聯。您需要集中或同步 CloudWatch 配置,以便多個帳户和地區可以檢索和應用您所需的標準。

設置狀態管理器和分銷商 CloudWatch 代理程式部署和組態

您可以使用Systems Manager 快速設定快速配置 Systems Manager 功能,包括自動安裝和更新 CloudWatch 代理。快速安裝程序會部署AWS CloudFormation堆棧,根據您的選擇部署和配置 Systems Manager 資源。

下面的列表提供了兩個重要的操作,這兩個操作由快速安裝為自動執行 CloudWatch 代理安裝和更新:

  1. 創建 Systems Manager 自定義文檔— 快速安裝創建以下 Systems Manager 文檔以與狀態管理器一起使用。文檔名稱可能會有所不同,但內容保持不變:

    • CreateAndAttachIAMToInstance— 建立AmazonSSMRoleForInstancesQuickSetup角色和實例配置文件(如果它們不存在)並附加AmazonSSMManagedInstanceCore政策添加到角色。這不包括所需的CloudWatchAgentServerPolicyIAM 政策。您必須更新此策略並更新此 Systems Manager 文檔以包含此策略,如以下部分所述。

    • InstallAndManageCloudWatchDocument— 安裝 CloudWatch 代理,並使用默認的 CloudWatch 使用代理程式組態AWS-ConfigureAWSPackageSystems Manager 文件。

    • UpdateCloudWatchDocument— 更新 CloudWatch 代理程式安裝最新的 CloudWatch 代理程式,使用AWS-ConfigureAWSPackageSystems Manager 文件。更新或卸載代理不會刪除現有 CloudWatch 來自 EC2 執行個體的組態檔案。

  2. 建立狀態管理員關聯— 創建狀態管理器關聯並將其配置為使用自定義創建的 Systems Manager 文檔。狀態管理器關聯名稱可能會有所不同,但配置保持不變:

    • ManageCloudWatchAgent— 執行InstallAndManageCloudWatchDocumentSystems Manager 為每個 EC2 實例提供一次文檔。

    • UpdateCloudWatchAgent— 執行UpdateCloudWatchDocumentSystems Manager 每 30 天為每個 EC2 實例提供一次文檔。

    • 執行CreateAndAttachIAMToInstanceSystems Manager 為每個 EC2 實例提供一次文檔。

您必須增強和自定義已完成的快速安裝配置,以包含 CloudWatch 權限並支持自定義 CloudWatch 配置。尤其是,CreateAndAttachIAMToInstanceInstallAndManageCloudWatchDocument文檔將需要更新。您可以手動更新由「快速設定」創建的 Systems Manager 文件。或者,您可以使用自己的 CloudFormation 模板以使用必要的更新置備相同的資源,以及配置和部署其他 Systems Manager 資源,而不是使用快速設置。

重要

快速設定會創建AWS CloudFormation堆棧根據您的選擇部署和配置 Systems Manager 資源。如果您更新了快速設置選項,則可能需要手動重新更新 Systems Manager 文檔。

以下各節介紹如何手動更新由快速安裝創建的 Systems Manager 資源,以及如何使用您自己的AWS CloudFormation模板來執行更新的快速設置。建議您使用自己的AWS CloudFormation模板,以避免手動更新由快速安裝和AWS CloudFormation。

使用 Systems Manager 快速設置並手動更新創建的 Systems Manager 資源

必須更新快速設置方法創建的 Systems Manager 資源,以包括所需的 CloudWatch 代理權限並支持多個 CloudWatch 組態檔案。本節介紹如何更新 IAM 角色和 Systems Manager 文檔以使用包含 CloudWatch 配置,可從多個帳户訪問。建立 S3 儲存貯體來存放 CloudWatch 設定文件會在管理 CloudWatch組態章節。

更新CreateAndAttachIAMToInstanceSystems Manager 文件

由快速安裝創建的此 Systems Manager 文檔檢查 EC2 實例是否附加了現有 IAM 實例配置文件。如果這樣做,它會附加AmazonSSMManagedInstanceCore策略設定為現有角色。這樣可以防止您的現有 EC2 執行個體丟失AWS權限,這些權限可以通過現有實例配置文件分配。您需要在本文檔中添加一個步驟,以附加CloudWatchAgentServerPolicyIAM 策略添加到已附加實例配置文件的 EC2 實例。如果 IAM 角色不存在且 EC2 實例沒有附加實例配置文件,則 Systems Manager 文檔還會創建該 IAM 角色。您必須更新文檔的此部分,以便還包含CloudWatchAgentServerPolicyIAM 政策。

檢已完成創建和立町實例 .Yaml示例文檔,並將其與快速設置創建的文檔進行比較。編輯現有文檔以包含所需步驟和更改。根據您的「快速設置」選項,「快速設置」創建的文檔可能與提供的示例文檔不同,因此請確保進行所需的調整。示例文檔包括「快速安裝」選項選項,用於每天掃描缺少的修補程序的實例,因此包括 Systems Manager 修補程序管理器的策略。

更新InstallAndManageCloudWatchDocumentSystems Manager 文件

由快速安裝創建的此 Systems Manager 文檔將安裝 CloudWatch 代理,並使用默認 CloudWatch 代理程式組態。預設的 CloudWatch 配置與基本的預定義指標集對齊。您必須替換默認配置步驟並添加步驟以下載 CloudWatch 配置文件 CloudWatch 設定 S3 儲存貯體。

檢已完成安裝和管理觀察文檔 .Yaml更新文檔,並將其與快速設置創建的文檔進行比較。快速設置創建的文檔可能不同,因此請確保您已進行了所需的調整。編輯現有文檔以包含必要的步驟和更改。

使用AWS CloudFormation而不是快速設定

您可以使用AWS CloudFormation配置 Systems Manager。此方法允許您根據您的特定需求定製 Systems Manager 配置。此方法還可以避免手動更新由快速安裝程序創建的已配置的 Systems Manager 資源,以支持自定義 CloudWatch 配置。

快速設置功能還使用AWS CloudFormation並創建一個AWS CloudFormation堆棧設置為根據您的選擇部署和配置 Systems Manager 資源。在您可以使用AWS CloudFormation堆棧集,您必須創建AWS CloudFormation StackSets 以支持跨多個帳户或區域的部署。快速設置可創建支持多區域或多賬户部署所需的角色。AWS CloudFormationStackSets。您必須完成AWS CloudFormation StackSets 如果您想要在多個區域或從單個帳户和地區的多個帳户配置和部署 Systems Manager 資源。如需此項目的詳細資訊,請參堆疊集操作的先決條件中的AWS CloudFormation文件中)。

請參AWS-快速設置-網絡主機管理。Yaml AWS CloudFormation模板來定製快速設定。

您應該查看AWS CloudFormation模板,並根據您的需求進行調整。您應該使用版本控制AWS CloudFormation模板,並以遞增方式測試更改以確認所需結果。此外,您還應執行雲安全審核,以確定是否存在根據組織的要求進行的任何策略調整。

您應該部署AWS CloudFormation堆棧在單個測試帳户和區域中,並執行任何必要的測試用例來自定義和確認所需的結果。然後,您可以將部署完成到單個帳户中的多個區域,然後到多個帳户和多個區域。

在單一帳號和區域中進行定製快速設定AWS CloudFormation堆

如果您只使用單個帳户和區域,則可以將完整的示例部署為AWS CloudFormation堆疊,而不是AWS CloudFormation堆疊集。但是,如果可能,我們建議您使用多賬户、多區域堆棧設置方法,即使只使用單個帳户和地區。使用AWS CloudFormation StackSets 可以更輕鬆地 future 擴展到其他賬户和地區。

使用下列步驟來部署AWS-快速設置-網絡主機管理。Yaml AWS CloudFormation模板作為AWS CloudFormation在單一帳户和區域中堆棧:

  1. 下載模板並將其檢入到您首選的版本控制系統(例如AWS CodeCommit。

  2. 自定義默認AWS CloudFormation參數值基於組織的要求。

  3. 定製狀態管理器關聯計劃。

  4. 定製 Systems Manager 文件,並使用InstallAndManageCloudWatchDocument邏輯 ID。確認 S3 存儲桶前綴與包含 CloudWatch 組態。

  5. 檢索並記錄 Amazon Cource Name (ARN),其中包含 CloudWatch 配置。如需此項目的詳細資訊,請參管理 CloudWatch組態章節。範例雲監視配置 S3 桶 .yaml AWS CloudFormation模板可用,該模板包含一個存儲桶策略,用於提供AWS Organizations帳户。

  6. 部署自定義的快速設置AWS CloudFormation模板添加到 S3 存儲段相同的賬户:

    • 對於CloudWatchConfigBucketARN參數中輸入 S3 儲存貯體的 ARN。

    • 根據要為 Systems Manager 啟用的功能,對參數選項進行調整。

7. 部署帶有或不帶 IAM 角色的測試 EC2 實例,以確認 EC2 實例與 CloudWatch 配合使用。

  • 套用AttachIAMToInstance狀態管理員關聯。這是一個 Systems Manager Runbook,配置為按計劃執行。使用 Runbook 的狀態管理器關聯不會自動應用於新的 EC2 實例,並且可以配置為按計劃運行。如需詳細資訊,請參閱「」使用狀態管理器執行觸發執行自動化在 Systems Manager 文件中。

  • 確認 EC2 實例附加了所需的 IAM 角色。

  • 通過確認 EC2 實例在 Systems Manager 中可見,確認 Systems Manager 代理工作正常。

  • 確認 CloudWatch 代理正常工作,方法是查看 CloudWatch 日誌和基於 CloudWatch 來自 S3 儲存貯體的組態。

在多個區域和多個帳户中進行定製快速設定AWS CloudFormationStackSets

如果您使用的是多個帳户和區域,則可以部署AWS-快速設置-網絡主機管理。Yaml AWS CloudFormation模板作為堆棧集。您必須完成AWS CloudFormationStackSet 先決條件,然後再使用堆棧集。根據您是否使用自我管理或者服務管理permissions

我們建議您部署具有服務管理權限的堆棧集,以便新帳户自動接收自定義的快速安裝程序。您必須部署一個服務管理堆棧集,從AWS Organizations管理帳户或委派管理員帳户。您應該從具有委派管理員權限的用於自動化的集中式帳户部署堆棧集,而不是AWS Organizations管理帳户。我們還建議您測試堆棧集部署,方法是將測試組織單位 (OU) 定位在一個區域中具有單個或少量帳户數量的測試組織單位 (OU)。

  1. 完成步驟 1 到 5,從在單一帳號和區域中進行定製快速設定AWS CloudFormation堆章節。

  2. 登入AWS Management Console,開啟AWS CloudFormation控制台,然後選擇建立 StackSet

    • 選擇範本已就緒上傳範本檔案。上傳AWS CloudFormation模板,您可以根據您的需求進行定製。

    • 指定堆棧集詳細信息:

      • 輸入堆棧集名稱,例如StackSet-SSM-QuickSetup

      • 根據要為 Systems Manager 啟用的功能,對參數選項進行調整。

      • 對於CloudWatchConfigBucketARN參數 ARN 輸入 CloudWatch 設定的 S3 儲存貯體。

      • 指定堆棧集選項,選擇是否將服務管理權限與AWS Organizations或自我管理許可。

        • 如果選擇自我管理權限,請輸入Aws雲形式堆棧集管理角色Aws雲形成堆棧規則角色IAM 角色詳細信息。帳户中必須存在管理員角色,並且每個目標帳户中必須存在執行角色

      • 適用於服務管理具有的許可AWS Organizations,我們建議您首先部署到測試 OU,而不是整個組織。

        • 選擇您要啟用自動部署。建議您選擇Enabled。對於帳户刪除行為,建議的設置為刪除堆疊

      • 適用於自我管理權限,輸入AWS您要設定的帳户 ID。如果您使用自管理權限,則必須為每個新帳户重複此過程。

      • 輸入您將使用的地區 CloudWatch 和 Systems Manager。

      • 通過查看操作 堆疊執行個體選項卡中的堆棧集。

      • 測試 Systems Manager 和 CloudWatch 在已部署的帳户中正常工作,請按照在單一帳號和區域中進行定製快速設定AWS CloudFormation堆章節。

配置內部部署伺服器的注意事項

所以此 CloudWatch 代理使用類似於 EC2 實例的方法來安裝和配置。但是,下表提供了在安裝和配置 CloudWatch 在內部部署伺服器和 VM 上安裝代理程式。

指向 CloudWatch 代理設置為用於 Systems Manager 的相同臨時證書。

在包含本地服務器的混合環境中設置 Systems Manager 時,您可以使用 IAM 角色激活 Systems Manager。您應該使用為 EC2 實例創建的角色,該角色包括CloudWatchAgentServerPolicyAmazonSSMManagedInstanceCore政策。

這會導致 Systems Manager 代理檢索臨時證書並將其寫入本地憑證文件。您可以指出您的 CloudWatch 代理配置添加到同一個文件中。您可以使用將使用 Systems Manager 代理和統一 CloudWatch 代理的本地服務器配置為僅使用臨時憑據中的AWS知識中心.

您還可以通過定義單獨的 Systems Manager 自動化運行簿和狀態管理器關聯,並使用標籤定位您的本地實例,從而自動執行此過程。建立Systems Manager 激活,則應包含一個標籤,將實例標識為本地實例。

考慮使用具有 VPN 或AWS Direct Connect存取和AWSPrivateLink。 您可以使用AWS Direct Connect或者AWS Virtual Private Network(AWS VPN),在內部部署網絡和虛擬私有雲端 (VPC) 之間建立私有連接。AWSPrivateLink 接建立一個私有連接 CloudWatch 使用界面 VPC 端點記錄。如果您有限制阻止數據通過公共互聯網發送到公共服務終端節點,則此方法非常有用。
所有指標必須包含在 CloudWatch 組態檔案。 Amazon EC2 包含標準指標(例如 CPU 利用率),但必須為本地實例定義這些指標。您可以使用單獨的平台配置文件為本地服務器定義這些指標,然後將配置附加到標準 CloudWatch 指標配置。

臨時 EC2 實例的注意事項

EC2 實例是臨時實例,或僅有一日生命的,如果它們是 Amazon EC2 Auto Scaling、Amazon EMR、Amazon EC2 競價型實例, 或AWS Batch。臨時 EC2 實例可能會導致非常大量的 CloudWatch 流,而無需關於其運行時源的其他信息。

如果您使用臨時 EC2 實例,請考慮在日誌組和日誌流名稱中添加其他動態上下文信息。例如,您可以包含競價型實例請求 ID、Amazon EMR 集羣名稱或 Auto Scaling 組名稱。對於新啟動的 EC2 實例,此信息可能會有所不同,您可能必須在運行時檢索和配置它。您可以通過編寫 CloudWatch 代理配置文件,並重新啟動代理以包含更新的配置文件。這樣可以使用動態運行時信息將日誌和指標傳遞到 CloudWatch。

您還應確保您的指標和日誌由 CloudWatch 代理,然後再終止臨時 EC2 實例。所以此 CloudWatch 代理包含flush_interval參數,可配置為定義刷新日誌和度量緩衝區的時間間隔。您可以根據工作負載降低此值,並停止 CloudWatch 代理,並在 EC2 實例終止之前強制緩衝區刷新。

使用自動化解決方案部署 CloudWatch 代理人

如果您使用自動化解決方案(例如 Ansible 或 Chef),您可以利用它來自動安裝和更新 CloudWatch 代理程式。如果使用此方法,則必須評估以下注意事項:

  • 驗證自動化是否涵蓋您支持的操作系統和操作系統版本。如果自動化腳本不支持組織的所有操作系統,則應為不受支持的操作系統定義替代解決方案。

  • 驗證自動化解決方案是否定期檢查 CloudWatch 代理更新和升級。您的自動化解決方案應定期檢查 CloudWatch 代理,或定期卸載並重新安裝代理。您可以使用調度程序或自動化解決方案功能定期檢查和更新代理。

  • 驗證是否可以確認代理安裝和配置符合性。您的自動化解決方案應使您能夠確定系統何時沒有安裝代理或代理無法正常工作。您可以在自動化解決方案中實施通知或警報,以便跟蹤失敗的安裝和配置。