如何從 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 官方
AWS 官方已更新 1 年前