¿Cómo puedo recopilar métricas personalizadas de las instancias de clúster de Amazon EMR y monitorizarlas en CloudWatch?

3 minutos de lectura
0

Quiero configurar métricas personalizadas para las instancias del clúster de Amazon EMR, como el uso de memoria, CPU y espacio en disco. A continuación, quiero monitorizar las métricas mediante Amazon CloudWatch.

Solución

Puede configurar y recopilar métricas de un clúster de Amazon EMR mediante la instalación del agente de CloudWatch en Amazon Elastic Compute Cloud (Amazon EC2). Tras instalar el agente de CloudWatch, puede utilizar las métricas recopiladas además de las métricas publicadas de forma predeterminada para las instancias de Amazon EC2.

Puede almacenar y ver las métricas que recopila con el agente de CloudWatch en CloudWatch de forma similar a cualquier otra métrica de CloudWatch. El espacio de nombres predeterminado para las métricas recopiladas por el agente de CloudWatch es CWAgent. Sin embargo, puede especificar un espacio de nombres diferente al configurar el agente.

Para configurar el agente de CloudWatch y publicar métricas personalizadas desde los nodos del clúster de Amazon EMR, siga estos pasos:

1.    Cree un archivo de configuración del agente de CloudWatch de ejemplo (config.json) con la siguiente configuración de ejemplo. El archivo de configuración del agente es un archivo JSON que especifica las métricas y los registros que el agente debe recopilar, incluidas las métricas personalizadas. En el siguiente ejemplo de recopilación de las métricas de un servidor Linux, se recopilan cuatro métricas de CPU, dos métricas de disco y una métrica de memoria. El agente está configurado para recibir estas métricas del cliente collectd.

{
  "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.    Copie el siguiente script de arranque (ejemplo: emr-cloudwatchagent-bootstrap.sh) en su ubicación de 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
------------------------------

El script hace lo siguiente:

  • Instala el agente de CloudWatch y el cliente collectd.
  • Copia el archivo config.json de Amazon S3 en la ruta local /home/hadoop.
  • Ejecuta el agente de CloudWatch con el archivo config.json.

3.    Agregue la acción de arranque al clúster de Amazon EMR.

Tras importar las métricas «collectd» a CloudWatch, puede verlas como gráficos de series temporales. También puede configurar alarmas para que se le notifique cuando las métricas superen un determinado umbral que especifique. Para ver las métricas «collectd» en la consola de CloudWatch, elija el espacio de nombres para las métricas recopiladas por el agente. De forma predeterminada, este espacio de nombres se denomina CWAgent. Para obtener más información, consulte Visualización de las métricas recopiladas importadas por el agente de CloudWatch.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años