跳至內容

如何從 Amazon CloudWatch 取得顯示 EC2 執行個體 EBS 輸送量的指標,然後設定警示,以便在 EC2 執行個體達到輸送量限制時通知我?

1 分的閱讀內容
0

如何從 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 版本

  1. 對於 RHEL 發行版,請安裝 AWS CLI(如果尚未安裝)。

  2. 下載 ebs-stats.sh 指令碼。

  3. 將腳本放在您的執行個體上,然後使其可執行。您必須以根使用者sudo 的身分執行指令碼。否則會失敗。

$sudo chmod +x ebs-stats.sh
  1. 在 AWS CLI 中,透過在背景執行下列命令來設定所需的 ebs-stats.sh 執行期頻率:
$sudo nohup ./ebs-stats.sh example-sleep-interval &

**注意:**將 example-sleep-interval 取代為每個資料點之間所需的秒數。

  1. 建立 AWS Identity and Access Management(IAM)角色

6.    將下列政策連接至角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "cloudwatch:ListMetrics",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:PutMetricData",
        "autoscaling:DescribeAutoScalingInstances"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
  1. 將 IAM 政策連接至您的 EC2 執行個體。這可讓指令碼將指標推送至 Amazon CloudWatch。

  2. CloudWatch 主控台,為 EBSThroughoutMB 設定警示。如需詳細資訊,請參閱根據靜態閾值建立 CloudWatch 警示或使用 Amazon CloudWatch 警示

請務必根據您使用的引數選擇正確的期間。


相關資訊

使用 CloudWatch 監控您的執行個體

列出執行個體可用的 CloudWatch 指標

Amazon EBS 優化執行個體

AWS 官方已更新 3 年前