Wie kann ich benutzerdefinierte Metriken von Amazon EMR-Cluster-Instances sammeln und sie in CloudWatch überwachen?

Lesedauer: 3 Minute
0

Ich möchte benutzerdefinierte Metriken für Amazon EMR-Cluster-Instances konfigurieren, wie z. B. die Speicher-, CPU- und Festplattenspeichernutzung. Dann möchte ich die Metriken mit Amazon CloudWatch überwachen.

Behebung

Sie können Metriken aus einem Amazon EMR-Cluster konfigurieren und erfassen, indem Sie den CloudWatch-Agenten auf Amazon Elastic Compute Cloud (Amazon EC2) installieren. Nach der Installation des CloudWatch-Agenten können Sie die gesammelten Metriken zusätzlich zu den veröffentlichten Standardmetriken für Amazon EC2-Instances verwenden.

Sie können die Metriken, die Sie mit dem CloudWatch-Agenten sammeln, in CloudWatch speichern und anzeigen, ähnlich wie bei allen anderen CloudWatch-Metriken. Der Standard-Namespace für Metriken, die vom CloudWatch-Agenten erfasst werden, ist CWAgent. Sie können jedoch bei der Konfiguration des Agenten einen anderen Namespace angeben.

Gehen Sie wie folgt vor, um den CloudWatch-Agenten zu konfigurieren und benutzerdefinierte Metriken von den Amazon EMR-Clusterknoten aus zu veröffentlichen:

1.    Erstellen Sie eine Beispielkonfigurationsdatei für den CloudWatch-Agenten (config.json) mit der folgenden Beispielkonfiguration. Die Agentenkonfigurationsdatei ist eine JSON-Datei, die die Metriken und Protokolle angibt, die der Agent erfassen muss, einschließlich benutzerdefinierter Metriken. Im folgenden Beispiel für die Erfassung der Metriken für einen Linux-Server werden vier CPU-Metriken, zwei Festplattenmetriken und eine Speichermetrik erfasst. Der Agent ist so eingerichtet, dass er diese Metriken von einem **gesammelten **Client empfängt.

{
  "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.    Kopieren Sie das folgende Bootstrap-Skript (Beispiel: emr-cloudwatchagent-bootstrap.sh) in Ihren Amazon Simple Storage Service (Amazon S3)-Speicherort.

------emr-cloudwatchagent-bootstrap.sh---------
#!/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
------------------------------

Das Skript macht Folgendes:

  • Installiert den CloudWatch-Agenten und den Collectd-Client.
  • Kopiert die Datei config.json von Amazon S3 in den lokalen Pfad /home/hadoop.
  • Führt den CloudWatch-Agenten mit der Datei config.json.

3.    Fügen Sie die Bootstrap-Aktion zum Amazon EMR-Cluster hinzu.

Nachdem Sie die gesammelten Metriken in CloudWatch importiert haben, können Sie diese Metriken als Zeitreihendiagramme anzeigen. Sie können auch Alarme einrichten, sodass Sie benachrichtigt werden, wenn die Metriken einen bestimmten Schwellenwert überschreiten, den Sie angeben. Um die gesammelten Metriken in der CloudWatch-Konsole anzuzeigen,. Wählen Sie den Namespace für die Metriken, die vom Agenten erfasst werden. Standardmäßig heißt dieser Namespace CWAgent. Weitere Informationen finden Sie unter Gesammelte Metriken anzeigen, die vom CloudWatch-Agenten importiert wurden.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren