在您的伺服器上安裝及執行 CloudWatch 代理程式 - Amazon CloudWatch

在您的伺服器上安裝及執行 CloudWatch 代理程式

在您建立您希望的代理程式組態檔案,並建立 IAM 角色或 IAM 使用者後,請使用下列步驟來在您的伺服器上安裝及執行代理程式,並使用該組態。首先,請先將 IAM 角色或 IAM 使用者連接到將執行代理程式的伺服器。接著,在該伺服器上,下載代理程式套件,並使用您建立的代理程式組態啟動它。

使用 S3 下載連結下載 CloudWatch 代理程式套件

您需要在每個您將執行代理程式的伺服器上安裝代理程式。

Amazon Linux 2

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

sudo yum install amazon-cloudwatch-agent

所有作業系統

在所有支援的作業系統上,您可以搭配 Simple Storage Service (Amazon S3) 下載連結使用命令列來下載及安裝 CloudWatch 代理程式,如以下步驟所述。

每個下載連結都有一個一般連結及針對每個區域的連結。例如,以 Amazon Linux、 Amazon Linux 2 和 x86-64 架構而言,三個有效的下載連結為:

  • https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

  • https://s3.us-east-1.amazonaws.com/amazoncloudwatch-agent-us-east-1/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

  • https://s3.eu-central-1.amazonaws.com/amazoncloudwatch-agent-eu-central-1/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

架構 平台 下載連結 簽章檔案連結

x86-64

Amazon Linux 和 Amazon Linux 2

https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

Centos

https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/centos/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/centos/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

Redhat

https://s3.amazonaws.com/amazoncloudwatch-agent/redhat/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/redhat/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/redhat/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

SUSE

https://s3.amazonaws.com/amazoncloudwatch-agent/suse/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/suse/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/suse/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

Debian

https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/debian/amd64/latest/amazon-cloudwatch-agent.deb

https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/debian/amd64/latest/amazon-cloudwatch-agent.deb.sig

x86-64

Ubuntu

https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb

https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb.sig

x86-64

Oracle

https://s3.amazonaws.com/amazoncloudwatch-agent/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/oracle_linux/amd64/latest/amazon-cloudwatch-agent.rpm.sig

x86-64

macOS

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

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

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

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

x86-64

Windows

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

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

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

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

ARM64

Amazon Linux 2

https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm.sig

ARM64

Redhat

https://s3.amazonaws.com/amazoncloudwatch-agent/redhat/arm64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/redhat/arm64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/redhat/arm64/latest/amazon-cloudwatch-agent.rpm.sig

ARM64

Ubuntu

https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb

https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb.sig

ARM64

SUSE

https://s3.amazonaws.com/amazoncloudwatch-agent/suse/arm64/latest/amazon-cloudwatch-agent.rpm

https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/suse/arm64/latest/amazon-cloudwatch-agent.rpm

https://s3.amazonaws.com/amazoncloudwatch-agent/suse/arm64/latest/amazon-cloudwatch-agent.rpm.sig

https://s3.region.amazonaws.com/amazoncloudwatch-agent-regionsuse/arm64/latest/amazon-cloudwatch-agent.rpm.sig

若要使用命令列在 Amazon EC2 執行個體上安裝 CloudWatch 代理程式
  1. 下載 CloudWatch 代理程式。針對 Linux 伺服器,請輸入以下資訊。對於 download-link,請使用上表中適當的下載連結。

    wget download-link

    針對執行 Windows Server 的伺服器,請下載以下檔案:

    https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi
  2. 下載套件之後,您可以選擇驗證套件簽章。如需更多詳細資訊,請參閱 驗證 CloudWatch 代理程式套件的簽章

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

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

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

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

    若您在執行 Windows Server 的伺服器上下載了 MSI 套件,請變更到包含該套件的目錄,然後輸入以下資訊:

    msiexec /i amazon-cloudwatch-agent.msi

    此命令也可從 PowerShell 執行。如需 MSI 命令選項的詳細資訊,請參閱 Microsoft Windows 文件中的命令列選項

(在 EC2 執行個體上安裝) 連接 IAM 角色

若要啟用 CloudWatch 代理程式來從執行個體傳送資料,您必須將 IAM 角色連接到執行個體。要連接的角色是 CloudWatchAgentServerRole

如需有關將 IAM 角色連接至執行個體的詳細資訊,請參閱《Amazon EC2 Windows 執行個體使用者指南》中的將 IAM 角色連接至執行個體

(在內部部署伺服器上安裝) 請指定 IAM 憑證及 AWS 區域

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

您也必須使用 AWS 組態檔案 [AmazonCloudWatchAgent] 區段中的 region 欄位,指定要傳送指標的目的地 AWS 區域,如以下範例所示。

[profile AmazonCloudWatchAgent] region = us-west-1

以下是使用 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

驗證網際網路存取

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

在您的代理上設定的端點和連接埠如下所示:

  • 若您使用代理程式收集指標,您必須針對適當的區域將 CloudWatch 端點新增至允許清單。這些端點列於《Amazon Web Services 一般參考》中的 Amazon CloudWatch

  • 若您使用代理程式收集日誌,您必須針對適當的區域將 CloudWatch Logs 端點新增至允許清單。這些端點列於《Amazon Web Services 一般參考》中的 Amazon CloudWatch Logs

  • 若您使用 Systems Manager 安裝代理程式或參數存放區來存放組態檔案,您必須針對適當的區域將 Systems Manager 端點新增至允許清單。這些端點列於《Amazon Web Services 一般參考》 中的 AWS Systems Manager

(選用) 修改代理或區域資訊的常見組態

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 the on-premises 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 區域

    在 EC2 執行個體上,您可以使用這一行來讓 CloudWatch 代理程式從此執行個體傳送資料給不同 AWS 區域中的 CloudWatch。若要執行此作業,請指定一個具名描述檔,其中包含指定要傳送對象區域名稱的 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 代理程式

遵循下列步驟,使用命令列在伺服器上啟動 CloudWatch 代理程式。

若要使用命令列在伺服器上啟動 CloudWatch 代理程式
  1. 將您希望使用的代理程式組態檔案複製到您要執行代理程式的伺服器。請注意您複製的目標路徑名稱。

  2. 在此命令中,-a fetch-config 會使代理程式載入最新版的 CloudWatch 代理程式組態檔案,而 -s 會啟動代理程式。

    輸入以下其中一個命令。將 configuration-file-path 取代為代理程式組態檔案的路徑。如果您使用精靈建立,則這個檔案稱為 config.json;如果您以手動方式建立,則可能稱為 amazon-cloudwatch-agent.json

    在執行 Linux 的 EC2 執行個體上,輸入以下命令:

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

    在執行 Linux 的現場部署伺服器上,輸入以下內容:

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

    在執行 Windows Server 的 EC2 執行個體上,從 PowerShell 主控台輸入以下內容:

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

    在執行 Windows Server 的現場部署伺服器上,從 PowerShell 主控台輸入以下內容:

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