Come posso raccogliere metriche personalizzate dalle istanze del cluster Amazon EMR e monitorarle in CloudWatch?

3 minuti di lettura
0

Desidero configurare parametri personalizzati per le istanze del cluster Amazon EMR, come l'utilizzo di memoria, CPU e spazio su disco. Pertanto, desidero monitorare le metriche utilizzando Amazon CloudWatch.

Soluzione

È possibile configurare e raccogliere parametri da un cluster Amazon EMR installando l'agente CloudWatch su Amazon Elastic Compute Cloud (Amazon EC2). Dopo aver installato l'agente CloudWatch, puoi utilizzare le metriche raccolte oltre alle metriche pubblicate predefinite per le istanze Amazon EC2.

È possibile archiviare e visualizzare le metriche raccolte con l'agente CloudWatch in CloudWatch in modo simile a qualsiasi altra metrica di CloudWatch. Lo spazio dei nomi predefinito per le metriche raccolte dall'agente CloudWatch è CWAgent. Tuttavia, è possibile specificare uno spazio dei nomi diverso quando si configura l'agente.

Per configurare l'agente CloudWatch e pubblicare metriche personalizzate dai nodi del cluster Amazon EMR, segui questi passaggi:

1.    Crea un file di configurazione dell'agente CloudWatch di esempio (config.json) con la seguente configurazione di esempio. Il file di configurazione dell'agente è un file JSON che specifica le metriche e i log che l'agente deve raccogliere, comprese le metriche personalizzate. Nell'esempio seguente per la raccolta delle metriche per un server Linux, vengono raccolte quattro metriche della CPU, due metriche del disco e una metrica della memoria. L'agente è configurato per ricevere queste metriche da un client raccolto.

{
  "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.    Copia il seguente script di bootstrap (esempio: emr-cloudwatchagent-bootstrap.sh) nella tua posizione Amazon Simple Storage Service (Amazon S3).

------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
------------------------------

Lo script esegue le seguenti operazioni:

  • Installa l'agente CloudWatch e il client raccolto.
  • Copia il file config.json da Amazon S3 nel percorso locale /home/hadoop.
  • Esegue l'agente CloudWatch con il file config.json.

3.    Aggiungi l'azione bootstrap al cluster Amazon EMR.

Dopo aver importato le metriche raccolte in CloudWatch, puoi visualizzarle come grafici di serie temporali. Puoi anche impostare allarmi in modo da ricevere una notifica quando le metriche superano una determinata soglia da te specificata. Per visualizzare le metriche raccolte nella console CloudWatch, scegli lo spazio dei nomi per le metriche raccolte dall'agente. Per impostazione predefinita, questo spazio dei nomi si chiama CWAgent. Per ulteriori informazioni, consulta Visualizzazione delle metriche raccolte importate dall'agente CloudWatch.


AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa