Ejemplo: Uso de métricas personalizadas de Amazon CloudWatch - AWS Elastic Beanstalk

Ejemplo: Uso de métricas personalizadas de Amazon CloudWatch

En este tema se proporciona un ejemplo de configuración que integra las métricas de Elastic Beanstalk con el agente Amazon CloudWatch para plataformas basadas en Amazon Linux 2 y versiones posteriores. El ejemplo de configuración utiliza archivos y comandos de un archivo de configuración .ebextensions.

Amazon CloudWatch es un servicio web que le permite supervisar, administrar y publicar diversas métricas, así como configurar acciones de alarma en función de los datos de esas métricas. Puede definir métricas personalizadas para su propio uso y Elastic Beanstalk las insertará en Amazon CloudWatch. Una vez que Amazon CloudWatch contiene las métricas personalizadas, pueden verse en la consola de Amazon CloudWatch.

El agente de Amazon CloudWatch

El agente de Amazon CloudWatch permite la recopilación de métricas y registros de CloudWatch desde las instancias de Amazon EC2 y los servidores locales de los sistemas operativos. El agente admite las métricas recopiladas a nivel del sistema. También admite la recopilación de métricas y registros personalizados desde las aplicaciones o servicios. Para obtener más información sobre el agente de Amazon CloudWatch, consulte Recopilación de métricas y registros con el agente de CloudWatch en la Guía del usuario de Amazon CloudWatch.

nota

Los informes de estado avanzados de Elastic Beanstalk tienen compatibilidad nativa para publicar una gran variedad de métricas de instancia y entorno en CloudWatch. Para obtener más información, consulte Publicación de métricas personalizadas de un entorno en Amazon CloudWatch.

Archivo de configuración .ebextensions

En este ejemplo, se utilizan archivos y comandos de un archivo de configuración .ebextensions para configurar y ejecutar el agente de Amazon CloudWatch en la plataforma Amazon Linux 2. El agente está preempaquetado con Amazon Linux 2. Si utiliza otro sistema operativo, es posible que sean necesarios pasos adicionales para instalar el agente. Para obtener más información, consulte Instalación del agente de CloudWatch en la Guía del usuario de Amazon CloudWatch.

Para utilizar este ejemplo, guárdelo en un archivo llamado cloudwatch.config que esté situado en un directorio denominado .ebextensions en el nivel superior del directorio del proyecto. A continuación, implemente la aplicación a través de la consola de Elastic Beanstalk (incluya el directorio .ebextensions en el paquete de código fuente) o la CLI de EB.

Para obtener más información sobre los archivos de configuración, consulta Personalización avanzada de entornos con archivos de configuración (.ebextensions).

Este archivo tiene dos secciones:

  • files: en esta sección se agrega el archivo de configuración del agente. Indica qué métricas y registros debe enviar el agente a Amazon CloudWatch. En este ejemplo, solo enviamos la métrica mem_used_percent. Para obtener una lista completa de las métricas de nivel de sistema compatibles con el agente de Amazon CloudWatch, consulte Métricas recopiladas por el agente de CloudWatch en la Guía del usuario de Amazon CloudWatch.

  • container_commands: esta sección contiene el comando que inicia el agente al transferir el archivo de configuración como parámetro. Para obtener información detallada acerca de container_commands, consulte Comandos de contenedor.

.ebextensions/cloudwatch.config

files: "/opt/aws/amazon-cloudwatch-agent/bin/config.json": mode: "000600" owner: root group: root content: | { "agent": { "metrics_collection_interval": 60, "run_as_user": "root" }, "metrics": { "namespace": "System/Linux", "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "metrics_collected": { "mem": { "measurement": [ "mem_used_percent" ] } } } } container_commands: start_cloudwatch_agent: command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json

Permisos

Las instancias del entorno necesitan los permisos de IAM adecuados para poder publicar métricas personalizadas de Amazon CloudWatch mediante el agente de Amazon CloudWatch. Los permisos para las instancias del entorno se conceden agregándolas al perfil de instancias del entorno. Los permisos pueden agregarse al perfil de instancia antes o después de implementar la aplicación.

Para conceder permisos para publicar métricas de CloudWatch
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. Seleccione Roles en el panel de navegación.

  3. Seleccione el rol del perfil de instancia del entorno. De forma predeterminada, cuando se crea un entorno con la consola de Elastic Beanstalk o la CLI de EB, el rol es aws-elasticbeanstalk-ec2-role.

  4. Elija la pestaña Permisos.

  5. Bajo Permissions Policies (Políticas de permisos), en la sección Permissions (Permisos), elija Attach policies (Adjuntar políticas).

  6. Bajo Attach Permissions (Adjuntar permisos), elija la política administrada por AWS CloudWatchAgentServerPolicy. Haga clic en Attach Policy (Adjuntar política).

Para obtener más información acerca de la administración de políticas, consulte Uso de las políticas en la Guía del usuario de IAM.

Visualizar métricas en la consola de CloudWatch

Después de implementar el archivo de configuración de CloudWatch en el entorno, consulte la consola de Amazon CloudWatch para ver las métricas. Las métricas personalizadas se ubicarán en el espacio de nombres CWAgent.

Para obtener más información, consulte Visualización de las métricas disponibles en la Guía del usuario de Amazon CloudWatch.