在內部部署伺服器上安裝 CloudWatch 代理 - Amazon CloudWatch

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

在內部部署伺服器上安裝 CloudWatch 代理

如果您已在一部電腦上下載 CloudWatch 代理程式,並建立所需的代理程式組態檔,則可以使用該組態檔將代理程式安裝在其他內部部署伺服器上。

在內部部署伺服器上下載 CloudWatch 代理程式

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

使用 Systems Manager 下載

若要使用 Systems Manager 執行命令,您必須使用 Amazon EC2 Systems Manager 註冊您的內部部署伺服器。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的在混合環境中設定 Systems Manager

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

如需在執行 Linux 的伺服器上更新 SSM Agent 的相關資訊,請參閱《AWS Systems Manager 使用者指南》中的在混合環境 (Linux) 中安裝 SSM Agent

如需在執行 Windows Server 的伺服器上更新 SSM Agent 的相關資訊,請參閱《AWS Systems Manager 使用者指南》中的在混合環境 (Windows) 中安裝 SSM Agent

使用 SSM 代理程式在內部部署伺服器上下載 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 (版本) 維持空白,以安裝代理程式的最新版本。

  9. 選擇執行

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

(在內部部署伺服器上安裝) 指定 IAM 登入資料和 AWS 區域

若要讓 CloudWatch 代理程式能夠從內部部署伺服器傳送資料,您必須指定先前建立之 IAM 使用者的存取金鑰和秘密金鑰。如需建立此使用者的詳細資訊,請參閱建立 IAM 角色和使用者以搭配 CloudWatch 代理程式使用

您也必須使用欄位指定要傳送量度的「 AWS 地區region」。

以下是此檔案的範例。

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

針對 my_access_keymy_secret_key,使用沒有寫入 Systems Manager 參數存放區許可的 IAM 使用者金鑰。如需 CloudWatch 代理程式所需 IAM 使用者的詳細資訊,請參閱建立 IAM 使用者,以搭配內部部署伺服器上的 CloudWatch 代理程式

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

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

建立 CloudWatch 代理程式的 AmazonCloudWatchAgent 設定檔
  1. 如果您尚未這樣做,請在伺服器 AWS Command Line Interface 上安裝。如需詳細資訊,請參閱安裝 AWS CLI

  2. 在 Linux 伺服器上,輸入以下命令並依提示操作:

    sudo aws configure --profile AmazonCloudWatchAgent

    在 Windows Server 上,以系統管理員身分開啟 PowerShell ,輸入下列命令,然後依照提示執行。

    aws configure --profile AmazonCloudWatchAgent

(選擇性) 修改 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。如需建立此描述檔的詳細資訊,請參閱(在內部部署伺服器上安裝) 指定 IAM 登入資料和 AWS 區域

    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 代理程式。

使用 SSM 代理程式在內部部署伺服器上啟動 CloudWatch 代理程式
  1. 開啟 Systems Manager 主控台,網址為 https://console.aws.amazon.com/systems-manager/

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

    -或-

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

  3. 選擇 執行命令

  4. 在 [指令] 文件清單中,選取 [AmazonCloudWatch-] 旁邊的按鈕ManageAgent。

  5. Targets (目標) 區域中,選取您安裝代理程式的執行個體。

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

  7. Mode (模式) 清單中,選擇 onPremise (現場部署)

  8. Optional Configuration Location (選用組態位置) 方塊中,輸入您使用精靈建立並存放於參數存放區的代理程式組態檔案名稱。

  9. 選擇執行

    代理程式以您在組態檔案中指定的組態進行啟動。

使用命令列在內部部署伺服器上啟動 CloudWatch 代理程式
  • 在此命令中,-a fetch-config會使代理程式載入最新版本的 CloudWatch 代理程式組態檔,並-s啟動代理程式。

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

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

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

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -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 onPremise -s -c ssm:configuration-parameter-store-name

    Windows Server:如果您已將代理程式組態檔儲存在本機電腦上,請從 PowerShell 主控台輸入下列內容。以代理程式組態檔的路徑取configuration-file-path代。如果您使用精靈建立,則這個檔案稱為 config.json;如果您以手動方式建立,則可能稱為 amazon-cloudwatch-agent.json

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