使用 CloudWatch代理程式組態在 EC2 執行個體上安裝代理程式 - Amazon CloudWatch

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

使用 CloudWatch代理程式組態在 EC2 執行個體上安裝代理程式

在參數存放區中儲存 CloudWatch 代理程式組態之後,您可以在其他伺服器上安裝代理程式時使用該組態。

將 IAM 角色連接至執行個體

您必須將 CloudWatchAgentServerRoleIAM 角色附加到 EC2 執行個體,才能在執行個體上執行 CloudWatch 代理程式。此角色可讓 CloudWatch 代理程式在執行個體上執行動作。您之前應該已建立此角色。如需更多資訊,請參閱建立 IAM 角色和使用者以搭配 CloudWatch 代理程式使用

如需詳細資訊,請參閱 Amazon EC2 使用者指南中的將 IAM 角色附加到執行個體。

在 Amazon EC2 執行個體上下載 CloudWatch代理程式套件

您需要在每個您將執行代理程式的伺服器上安裝代理程式。該 CloudWatch 代理程式可在 Amazon Linux 2023 和 Amazon Linux 2 中以套件形式提供。如果您使用的是此作業系統,則可以輸入下列命令來安裝套件。您還必須確保附加到執行個體的 IAM 角色已CloudWatchAgentServerPolicy附加。如需詳細資訊,請參閱 建立 IAM 角色以搭配 Amazon EC2 執行個體上的 CloudWatch 代理程式使用

sudo yum install amazon-cloudwatch-agent

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

注意

當您安裝或更新 CloudWatch 代理程式時,僅支援「解除安裝並重新安裝」選項。您無法使用 In-place update (就地更新) 選項。

使用系統管理器在 Amazon EC2 執行個體上下載 CloudWatch 代 Systems Manager 程式

在您可以使用 Systems Manager 安裝 CloudWatch 代理程式之前,您必須確定 Systems Manager 已正確設定執行個體。

安裝或更新 SSM Agent

在 Amazon EC2 執行個體上, CloudWatch 代理程式要求執行個體執行的是 2.2.93.0 版或更新版本。安裝 CloudWatch 代理程式之前,請先在執行個體上更新或安裝 SSM Agent (如果尚未安裝)。

如需在執行 Linux 的執行個體上安裝或更新 SSM Agent 的資訊,請參閱《AWS Systems Manager 使用者指南》中的在 Linux 執行個體上安裝和設定 SSM Agent

如需在執行 Windows Server 的執行個體上安裝或更新 SSM Agent 的資訊,請參閱《AWS Systems Manager 使用者指南》中的在 Windows 執行個體上安裝和設定 SSM Agent

(選用) 驗證 Systems Manager 先決條件

在您使用 Systems Manager 執行命令來安裝和設定 CloudWatch 代理程式之前,請確認您的執行個體符合 Systems Manager 的最低需求。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南中的 設定 AWS Systems Manager

驗證網際網路存取

您的 Amazon EC2 執行個體必須具有輸出網際網路存取權,才能將資料傳送至 CloudWatch 或 CloudWatch 記錄。如需有關如何設定網際網路存取的詳細資訊,請參閱《Amazon VPC 使用者指南》中的網際網路閘道

下載 CloudWatch 代理程式套件

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

使用執行命令下載 CloudWatch 代理程式
  1. 開啟 Systems Manager 主控台,網址為 https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 執行命令

    -或-

    如果 AWS Systems Manager 首頁開啟,請向下捲動並選擇「瀏覽執行命令」。

  3. 選擇 執行命令

  4. 在 [命令] 文件清單中,選擇 [AWS-AWSPackage 設定]。

  5. 在 [目標] 區域中,選擇要在其上安裝 CloudWatch 代理程式的執行個體。如果您沒看到特定執行個體,可能是因為它未設定用於執行命令。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的在混合環境中設定 AWS Systems Manager

  6. Action (動作) 清單中,選擇 Install (安裝)

  7. Name (名稱) 方塊中,輸入 AmazonCloudWatchAgent

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

  9. 選擇執行

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

(選擇性) 修改 CloudWatch 代理程式的一般組態和具名設定檔

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— 對於內部部署伺服器,此行指定要用來傳送資料的 IAM 使用者登入資料設定檔 CloudWatch。若您將此行標示為註解,則會使用 AmazonCloudWatchAgent

    CloudWatch 在 EC2 執行個體上,您可以使用此行讓 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_proxyhttps_proxy 欄位中指定那些代理。如有必須排除在代理之外的 URL,請在 no_proxy 欄位中指定並以逗號分隔。

啟動 CloudWatch 代理程式

您可以使用 Systems Manager 執行命令或命令列啟動代理程式。

使用系統管理器運行命令啟動 CloudWatch 代理

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

使用執行命令啟動 CloudWatch 代理程式
  1. 開啟 Systems Manager 主控台,網址為 https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 執行命令

    -或-

    如果 AWS Systems Manager 首頁開啟,請向下捲動並選擇「瀏覽執行命令」。

  3. 選擇 執行命令

  4. 在「命令」文件清單中,選擇 AmazonCloudWatch-ManageAgent

  5. 在 [目標] 區域中,選擇您安裝 CloudWatch 代理程式的執行個體。

  6. Action (動作) 清單中,選擇 configure (設定)

  7. Optional Configuration Source (選用組態來源) 清單中,選擇 ssm

  8. 選用組態位置方塊中,輸入您建立並儲存至 Systems Manager 參數存放區的 Systems Manager 參數名稱和代理程式組態檔案名稱,如 建立 CloudWatch 代理程式組態檔 中所述。

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

  10. 選擇執行

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

使用命令列在 Amazon EC2 執行個體上啟動 CloudWatch 代理程式

請依照下列步驟使用命令列在 Amazon EC2 執行個體上安裝 CloudWatch 代理程式。

使用命令列在 Amazon EC2 執行個體上啟動 CloudWatch 代理程式
  • 在此命令中,-a fetch-config會使代理程式載入最新版本的 CloudWatch 代理程式組態檔,並-s啟動代理程式。

    Linux 和 macOS:如果您已將組態檔案儲存於 Systems Manager 參數存放區,請輸入以下內容:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name

    Linux 和 macOS:如果您已將組態檔案儲存於本機電腦,請輸入以下命令。以代理程式組態檔的路徑取configuration-file-path代。如果您使用精靈建立,則這個檔案稱為 config.json;如果您以手動方式建立,則可能稱為 amazon-cloudwatch-agent.json

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path

    Windows Server:如果您將代理程式組態檔儲存在「Systems Manager 參數存放區」中,請從 PowerShell 主控台輸入下列內容:

    & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name

    Windows Server:如果您已將代理程式組態檔儲存在本機電腦上,請從 PowerShell 主控台輸入下列內容:

    & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"