跳至內容

如何從 Amazon EMR 叢集執行個體收集自訂指標,然後在 CloudWatch 中加以監控?

2 分的閱讀內容
0

我想為 Amazon EMR 叢集執行個體設定自訂指標,例如記憶體、CPU 和磁碟空間使用量。然後,我想要使用 Amazon CloudWatch 來監控指標。

解決方法

**注意:**如果您使用 Amazon EMR 版本 7.0.0 或更新版本,請將 CloudWatch 代理程式安裝為應用程式。如需詳細資訊,請參閱 Amazon CloudWatch agent

若要從 Amazon EMR 叢集設定和收集指標,請在 Amazon Elastic Compute Cloud (Amazon EC2) 上安裝 CloudWatch 代理程式。安裝 CloudWatch 代理程式後,除了 Amazon EC2 執行個體的預設已發佈指標外,亦請使用收集的指標。

請在 CloudWatch 中儲存和檢視透過 CloudWatch 代理程式收集的指標,就像任何其他 CloudWatch 指標一樣。CloudWatch 代理程式所收集指標的預設命名空間為 CWAgent。不過,當您設定代理程式時,可以指定不同的命名空間。

若要設定 CloudWatch 代理程式並從 Amazon EMR 叢集節點發佈自訂指標,請完成下列步驟:

  1. 使用下列範例組態建立一個範例 CloudWatch 代理程式組態檔 (config.json)。在下列範例中,有四個 CPU 指標、兩個磁碟指標和一個記憶體指標會收集 Linux 伺服器的指標。代理程式已設定為從收集的用戶端接收這些指標:

    {
      "agent": {
        "metrics_collection_interval": 60,
        "run_as_user": "root"
      },
      "metrics": {
        "aggregation_dimensions": [
          [
            "InstanceId"
          ]
        ],
        "append_dimensions": {
          "ImageId": "${aws:ImageId}",
          "InstanceId": "${aws:InstanceId}",
          "InstanceType": "${aws:InstanceType}"
        },
        "metrics_collected": {
          "collectd": {
            "metrics_aggregation_interval": 60
          },
          "cpu": {
            "measurement": [
              "cpu_usage_idle",
              "cpu_usage_iowait",
              "cpu_usage_user",
              "cpu_usage_system"
            ],
            "metrics_collection_interval": 60,
            "resources": [
              "*"
            ],
            "totalcpu": false
          },
          "disk": {
            "measurement": [
              "used_percent",
              "inodes_free"
            ],
            "metrics_collection_interval": 60,
            "resources": [
              "*"
            ]
          },
          "mem": {
            "measurement": [
              "mem_used_percent"
            ],
            "metrics_collection_interval": 60
          },
          "statsd": {
            "metrics_aggregation_interval": 60,
            "metrics_collection_interval": 10,
            "service_address": ":8125"
          }
        }
      }
    }
  2. 將下列啟動程序指令碼複製到您的 Amazon Simple Storage Service (Amazon S3) 位置:

    #!/bin/bash
    
    sudo yum install amazon-cloudwatch-agent -y
    sudo amazon-linux-extras install collectd -y
    
    aws s3 cp <s3 path for config.json> /home/hadoop/config.json
    
    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:///home/hadoop/config.json

    該指令碼會先安裝 CloudWatch 代理程式收集的用戶端,接著會將 config.json 檔案從 Amazon S3 複製到本機路徑 **/home/hadoop。**最後,指令碼會使用 config.json 檔案執行 CloudWatch 代理程式。

  3. 將啟動程序動作新增至 Amazon EMR 叢集。

收集的指標匯入 CloudWatch 後,您可以將這些指標作為時間序列圖表檢視。您也可以設定警示,以便在指標超過您指定的臨界值時收到通知。

若要在 CloudWatch 主控台中檢視收集的指標,請為代理程式收集的指標選擇命名空間。依預設,此命名空間稱為 CWagent。如需詳細資訊,請參閱檢視 CloudWatch 代理程式匯入的收集指標

AWS 官方已更新 2 年前