如何從 Amazon CloudWatch 取得顯示我的 Amazon Elastic Compute Cloud(Amazon EC2)執行個體的 Amazon Elastic Block Store(Amazon EBS)輸送量的指標? 另外,如何設置警示以在 EC2 執行個體達到輸送量限制時通知我?
簡短描述
沒有一個 Amazon EBS 指標可追蹤 CloudWatch 中 Xen Amazon EC2 執行個體的 EBS 輸送量。但是,您可以使用 EC2EBSThroughput/ebs-stats.sh 指令碼測量 EC2 執行個體的彙總 EBS 輸送量。
該指令碼會收集所有連接磁碟區中每秒的總讀取/寫入位元組,然後將輸送量做為指標推送至 Amazon CloudWatch。您可以在 Amazon CloudWatch 主控台中檢視這些指標,並根據指定的閾值設定觸發警示。
**注意:**以 Amazon EBS 優化執行個體爆發功能建置的 AWS Nitro EC2 執行個體包括 CloudWatch 指標 EBSIOBalance% 和 EBSByteBalance%。這些指標適用於某些執行個體大小,這些指標會每 24 小時至少一次顯示最大效能,維持 30 分鐘。如需適用執行個體類型的完整清單,請參閱支援的執行個體類型。
ebs-stats.sh 指令碼適用於 CloudWatch 中的 Xen EC2 執行個體。這個指令碼只能與 Amazon Linux、RHEL 及 CentOS 執行個體相容。但是,您可以為其他 Linux 發行版自訂指令碼。
**注意:**如果您的執行個體有執行個體儲存體磁碟區,指令碼會報告彙總輸送量,包括執行個體儲存體磁碟區的輸送量。這表示您可能無法從此指令碼取得 EBS 輸送量的準確度量。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確認您使用的是最新的 AWS CLI 版本。
-
對於 RHEL 發行版,請安裝 AWS CLI(如果尚未安裝)。
-
下載 ebs-stats.sh 指令碼。
-
將腳本放在您的執行個體上,然後使其可執行。您必須以根使用者或 sudo 的身分執行指令碼。否則會失敗。
$sudo chmod +x ebs-stats.sh
- 在 AWS CLI 中,透過在背景執行下列命令來設定所需的 ebs-stats.sh 執行期頻率:
$sudo nohup ./ebs-stats.sh example-sleep-interval &
**注意:**將 example-sleep-interval 取代為每個資料點之間所需的秒數。
- 建立 AWS Identity and Access Management(IAM)角色。
6. 將下列政策連接至角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"cloudwatch:PutMetricData",
"autoscaling:DescribeAutoScalingInstances"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
-
將 IAM 政策連接至您的 EC2 執行個體。這可讓指令碼將指標推送至 Amazon CloudWatch。
-
從 CloudWatch 主控台,為 EBSThroughoutMB 設定警示。如需詳細資訊,請參閱根據靜態閾值建立 CloudWatch 警示或使用 Amazon CloudWatch 警示。
請務必根據您使用的引數選擇正確的期間。
相關資訊
使用 CloudWatch 監控您的執行個體
列出執行個體可用的 CloudWatch 指標
Amazon EBS 優化執行個體