Configuración del agente de CloudWatch para Amazon EMR 7.0.0 - Amazon EMR

Configuración del agente de CloudWatch para Amazon EMR 7.0.0

Puede configurar el agente de Amazon CloudWatch para que utilice métricas del sistema adicionales, diferentes de las que proporciona la configuración predeterminada del agente de CloudWatch. La configuración de la versión 7.0.0 requiere el uso de acciones de arranque, de las que se ofrecen ejemplos en las siguientes secciones. En una próxima versión, Amazon EMR ofrecerá opciones de configuración adicionales a través de la API de Amazon EMR.

Configuración de métricas de sistema adicionales con Amazon EMR 7.0.0

Realice los siguientes pasos para configurar el agente para que utilice un conjunto diferente de métricas del sistema en Amazon EMR 7.0.0:

  1. Cree o elija un bucket en la cuenta de Amazon S3 en la que desea almacenar los archivos de configuración que especifican las métricas del agente de CloudWatch.

  2. Cree el archivo de configuración del emr-amazon-cloudwatch-agent.json con las métricas especificadas que prefiera. Para ello, utilice uno de los métodos explicados en Crear el archivo de configuración del agente de CloudWatch. Para obtener información acerca de la estructura del archivo de configuración del agente de CloudWatch, consulte Crear el archivo de configuración del agente de CloudWatch de forma manual en la Guía del usuario de Amazon CloudWatch.

  3. A continuación, vaya al repositorio aws-emr-utilities en GitHub y descargue los siguientes scripts de métricas del sistema:

    • install_system_metrics_launcher.sh: un script que se descarga y luego ejecuta install_system_metrics.sh en segundo plano para que el nodo pueda terminar de arrancar.

    • install_system_metrics.sh – un script que espera a que la instancia en la que se ejecuta termine de arrancar y, a continuación, descarga y aplica la configuración en el archivo JSON.

  4. Abra cada archivo SH y reemplace amzn-s3-demo-bucket por el nombre del bucket del paso 1.

  5. Cargue el archivo JSON y los dos archivos SH en el bucket de S3.

  6. Ahora puede ir a la consola de Amazon EMR y crear un clúster nuevo con el agente de CloudWatch. En el panel de navegación izquierdo, en EMR en EC2, seleccione Clústeres y, a continuación, Crear clúster.

  7. En la sección Nombre y aplicaciones, elija la versión de Amazon EMR 7.0.0 o posterior.

  8. En Paquete de aplicaciones, seleccione el paquete o las aplicaciones que desea instalar en el clúster e incluya el agente de Amazon CloudWatch en la selección.

  9. En la sección Acciones de arranque, seleccione Agregar.

    • En Nombre, ingrese install_system_metrics_launcher.sh.

    • Para la Ubicación del script, ingrese s3://amzn-s3-demo-bucket/install_system_metrics_launcher.sh. Reemplace amzn-s3-demo-bucket por la ruta al bucket de S3.

    • Deje el bloque Argumentos vacío.

  10. Seleccione Agregar acción de arranque.

  11. Continúe con la creación del clúster para satisfacer las necesidades de la carga de trabajo.

Cuando se lanza el clúster, el agente de CloudWatch publica en CloudWatch las métricas del sistema que especificó en el archivo de configuración.

Configuración de las métricas de las aplicaciones con Amazon EMR 7.0.0

Puede configurar el agente de Amazon CloudWatch para que publique métricas de aplicaciones para HDFS y YARN además de las métricas del sistema. Realice los pasos siguientes para configurar el agente para que publique métricas de aplicaciones:

  1. Cree o elija un bucket en la cuenta de Amazon S3 en la que desea almacenar los archivos de configuración que especifican las métricas del agente de CloudWatch.

  2. A continuación, vaya al repositorio aws-emr-utilities en GitHub y descargue los siguientes scripts:

    • install_app_metrics_launcher.sh: un script que se descarga y luego ejecuta install_app_metrics.sh en segundo plano para que el nodo pueda terminar de arrancar.

    • install_app_metrics.sh – un script que espera a que la instancia en la que se ejecuta termine de arrancar y, a continuación, descarga y aplica la configuración en los archivos YAML que se descargarán en el paso siguiente.

  3. Abra cada archivo y reemplace amzn-s3-demo-bucket por el nombre del bucket del paso 1.

  4. A continuación, descargue los siguientes archivos de mapeo YAML. Para obtener información sobre cómo se estructuran estos archivos YAML, consulte javaagent en el repositorio de GitHub OpenTelemetry Instrumentation for Java.

  5. Cargue los dos archivos SH y los cuatro archivos YAML en el bucket de S3.

  6. Ahora puede ir a la consola de Amazon EMR y crear un clúster nuevo con el agente de CloudWatch. En el panel de navegación izquierdo, en EMR en EC2, seleccione Clústeres y, a continuación, Crear clúster.

  7. En la sección Nombre y aplicaciones, elija la versión de Amazon EMR 7.0.0 o posterior.

  8. En Paquete de aplicaciones, seleccione el paquete o el grupo personalizado de aplicaciones que desee instalar en el clúster e incluya el agente de CloudWatch en la selección.

  9. En la sección Acciones de arranque, seleccione Agregar.

    • En Nombre, ingrese install_app_metrics_launcher.sh.

    • Para la Ubicación del script, ingrese s3://amzn-s3-demo-bucket/install_app_metrics_launcher.sh. Reemplace amzn-s3-demo-bucket por la ruta al bucket de S3.

    • Deje el bloque Argumentos vacío.

  10. Seleccione Agregar acción de arranque.

  11. Continúe con la creación del clúster para satisfacer las necesidades de la carga de trabajo.

Cuando se lanza el clúster, el agente de CloudWatch publica en CloudWatch las métricas del sistema que especificó junto con las métricas del sistema.

Configuración de Amazon Managed Service para Prometheus como almacenamiento en la nube para métricas con Amazon EMR 7.0.0

Puede configurar el agente de Amazon CloudWatch para que publique métricas en Amazon Managed Service para Prometheus en lugar de en CloudWatch.

nota

Puede publicar métricas del agente de Amazon CloudWatch en Amazon Managed Service para Prometheus o en Amazon CloudWatch, pero no puede publicar las métricas en ambos servicios en un mismo clúster.

Para configurar el agente para que publique métricas en Amazon Managed Service para Prometheus, debe agregar el permiso (IAM) aps:RemoteWrite AWS Identity and Access Management al perfil de instancia de Amazon EC2 para Amazon EMR. El siguiente ejemplo de política contiene los permisos necesarios:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aps:RemoteWrite" ], "Resource": [ "*" ], "Sid": "AllowAPSRemotewrite" } ] }
Uso del agente de CloudWatch en un clúster de EMR para que publique métricas en Amazon Managed Service para Prometheus

Cuando la política de servicio tenga los permisos correctos, realice los siguientes pasos para lanzar un clúster que utilice el agente de CloudWatch de modo que publique métricas en Amazon Managed Service para Prometheus.

  1. Utilice la Consola de administración de AWS o la AWS CLI para crear un espacio de trabajo de Amazon Managed Service para Prometheus. Para obtener más información, consulte Crear un espacio de trabajo en la Guía del usuario de Amazon Managed Service para Prometheus.

  2. Cree o elija un bucket en la cuenta de Amazon S3 en la que desea almacenar los archivos de lanzamiento que especifican Amazon Managed Service para Prometheus como almacenamiento en la nube.

  3. A continuación, vaya al repositorio aws-emr-utilities en GitHub y descargue los siguientes scripts:

    • add_prometheus_endpoint_launcher.sh: un script que se descarga y luego ejecuta add_prometheus_endpoint.sh en segundo plano para que el nodo pueda terminar de arrancar.

    • add_prometheus_endpoint.sh – un script que espera a que termine el arranque de la instancia en la que se ejecuta y, a continuación, configura el agente de CloudWatch a fin de publicar en el punto de conexión de Amazon Managed Service para Prometheus que se proporciona como argumento al lanzar el clúster.

  4. Abra cada archivo y reemplace amzn-s3-demo-bucket por el nombre del bucket del paso 2.

  5. Utilice AWS CLI para crear un clúster de EMR con la acción de arranque add_prometheus_endpoint_launcher.sh. En el siguiente comando, reemplace amzn-s3-demo-bucket por el bucket que contiene la acción de arranque y reemplace managedpro-remote-write-workspace-url por el punto de conexión de escritura remoto del espacio de trabajo de Amazon Managed Service para Prometheus. Asegúrese de especificar una etiqueta de versión de Amazon EMR igual a emr-7.0.0 o posterior.

    aws emr create-cluster --name managedpro-cluster \ --release-label emr-7.0.0 \ --applications Name=Hadoop Name=AmazonCloudWatchAgent \ --ec2-attributes KeyName=myKey --instance-type m7g.2xlarge \ --instance-count 3 --use-default-roles --bootstrap-actions Name='Add Prometheus Endpoint',Path=s3://amzn-s3-demo-bucket/add_prometheus_endpoint_launcher.sh,Args='managedpro-remote-write-workspace-url'

Cuando se lanza el clúster, el agente de CloudWatch publica las métricas que recopila en Amazon Managed Service para Prometheus.

Uso de Amazon Managed Service para Prometheus como origen de datos para Amazon Managed Grafana

Una vez que Amazon EMR haya publicado las métricas del clúster en Amazon Managed Service para Prometheus, puede realizar los siguientes pasos para visualizar las métricas con Amazon Managed Grafana:

  1. Utilice la Consola de administración de AWS para crear un espacio de trabajo y un usuario de Amazon Managed Grafana con los permisos adecuados. Para obtener más información, consulte Crear un espacio de trabajo en la Guía del usuario de Amazon Managed Grafana.

  2. Agregue Amazon Managed Service para Prometheus como origen de datos para Amazon Managed Grafana. Para obtener más información, consulte Uso de la configuración de la fuente de datos AWS para agregar Amazon Managed Service para Prometheus como origen de datos en la Guía del usuario de Amazon Managed Grafana.

nota

El agente de CloudWatch tiene un exportador de Prometheus que cambia el nombre de algunos atributos. Para las etiquetas de métricas predeterminadas, Amazon Managed Service para Prometheus utiliza caracteres de subrayado en lugar de los puntos que utiliza Amazon CloudWatch. Por lo tanto, si utiliza Amazon Managed Grafana para visualizar las métricas predeterminadas en Amazon Managed Service para Prometheus, las etiquetas aparecen como jobflow_id, instance_id y service_name.

Además, cualquier métrica de la aplicación que el agente de CloudWatch publique en Amazon Managed Service para Prometheus utiliza la etiqueta job en lugar de service_name. Sin embargo, las métricas del sistema siguen utilizando la etiqueta service_name.