我想使用整合式 Amazon CloudWatch 代理程式,將 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的指標和日誌傳送至 CloudWatch。
解決方法
先決條件: 為 Amazon EC2 執行個體建立網際網路連線。EC2 執行個體必須能連線至網際網路,才能連線至必要的端點。
建立 IAM 角色,以便在執行個體上執行 CloudWatch 代理程式
請完成以下步驟:
- 開啟 AWS Identity and Access Management (IAM) console (AWS Identity and Access Management (IAM) 主控台)。
- 在導覽窗格中,選擇 Roles (角色)。
- 選擇 Create role (建立角色)。
- 在 Service or use case (服務或使用案例),選擇 EC2。
- 選擇 Next (下一步)。
- 在政策清單中,選取 CloudWatchAgentServerPolicy。
- 選擇 Next. (下一步)。
- 提供以下資訊:
在 Role name (角色名稱),輸入角色名稱,例如 CloudWatchAgentServerRole。
在 Description (描述),提供角色的描述。
- 在 Permissions policy (權限政策) 摘要區段中,確認清單包含 CloudWatchAgentServerPolicy。
- 選擇 Create role (建立角色)。
- 將新的 IAM 角色Attach (連接) 至執行個體。
下載並安裝整合式 CloudWatch 代理程式
Linux 執行個體
請完成以下步驟:
- 執行以下 wget 命令,下載 CloudWatch 代理程式:
wget https://s3.REGION.amazonaws.com/amazoncloudwatch-agent-REGION/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
注意: 請將 REGION 替換為您的 AWS 區域。
- 執行以下命令,安裝 CloudWatch 代理程式:
sudo rpm -U ./amazon-cloudwatch-agent.rpm
Windows 執行個體
請以管理員身分在 AWS Tools for PowerShell 中完成以下步驟:
-
前往您要下載安裝程式的資料夾:
cd "path"
注意: 請將 path 替換為您要下載安裝程式的資料夾路徑。
-
若要下載 CloudWatch 代理程式,請執行以下 Invoke-WebRequest 命令:
Invoke-WebRequest -Uri https://s3.REGION.amazonaws.com/amazoncloudwatch-agent-REGION/windows/amd64/latest/amazon-cloudwatch-agent.msi -outFile amazon-cloudwatch-agent.msi
注意: 請將 REGION 替換為您的區域。如果您的 TLS 版本低於 1.2,執行上述 Invoke-WebRequest 命令時會收到以下錯誤: 「Invoke-WebRequest: The request was aborted: Could not create SSL/TLS secure channel」
-
若要設定 TLS 版本,請執行以下命令,然後再次執行上述 Invoke-WebRequest 命令:
[Net.ServicePointManager]::SecurityProtocol = "Tls, Tls11, Tls12, Ssl3"
-
執行以下命令,啟動代理程式安裝程式:
msiexec /i amazon-cloudwatch-agent.msi
建立代理程式組態檔案
若要建立代理程式組態檔案,請使用精靈。回答代理程式組態檔案精靈的問題時,請參考以下資訊。
精靈問題的回答指南
您要開啟 StatsD 常駐程式嗎? 您要監控 collectd 的指標嗎?
如果您的執行個體已安裝 StatsD 和 collectd 外掛程式,請針對這些問題選擇 Yes (是)。
您要使用哪一種預設指標組態?
如需預設組態的詳細資訊,請參閱CloudWatch 代理程式預先定義的指標集。請選擇最適合您使用案例的選項。
您是否有要匯入以進行遷移的現有 CloudWatch Logs 代理程式組態檔案?
如果您已安裝 awslogs 代理程式,且該代理程式正在執行,請選擇 Yes (是)。如果選擇 Yes (是),精靈會讀取 awslogs 代理程式組態檔案 /etc/awslogs/awslogs.conf 或 /var/awslogs/etc/awslogs.conf,以判斷您必須監控哪些日誌檔案。
您要將組態儲存在 AWS Systems Manager 的 Parameter Store 功能中嗎?
若要將代理程式組態檔案儲存在 Parameter Store,以便稍後重複使用,請選擇 Yes (是)。將代理程式組態檔案儲存在 Parameter Store 時,啟動代理程式的命令會有所不同。
使用精靈
對於 Linux 執行個體,請執行以下命令:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
對於 Windows 執行個體,請以管理員身分在 Tools for PowerShell 中執行以下命令:
cd "C:\Program Files\Amazon\AmazonCloudWatchAgent"
.\amazon-cloudwatch-agent-config-wizard.exe
精靈預設會將代理程式組態檔案儲存在以下路徑:
Linux: /opt/aws/amazon-cloudwatch-agent/bin/config.json
Windows: C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json
如需自訂組態檔案範例,請參閱CloudWatch 代理程式組態檔案: 完整範例。
接著,編輯檔案以新增或移除指標或日誌。
若要套用組態檔案的變更,請執行 fetch-config 命令來重新啟動代理程式。
啟動 CloudWatch 代理程式
注意: 在以下命令中,請將 configuration-file-path 替換為組態檔案的路徑。
對於 Linux 執行個體,請執行以下命令:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:configuration-file-path -s
對於 Windows 執行個體,請以管理員身分在 Tools for PowerShell 中執行以下命令:
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -c file:configuration-file-path -s
代理程式預設會將指標傳送至 CWAgent 命名空間。
確認代理程式狀態
代理程式啟動後,可能需要幾分鐘才會將指標發佈至 CloudWatch。若要在 CloudWatch 顯示指標前確認代理程式是否正在執行,請執行以下命令。
對於 Linux 執行個體,請執行以下命令:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
對於 Windows 執行個體,請執行以下命令:
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -m ec2 -a status