View a markdown version of this page

Supervisión AWS Instancias de PCS que utilizan Amazon CloudWatch - AWS PIEZAS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Supervisión AWS Instancias de PCS que utilizan Amazon CloudWatch

AWS PCS lanza las instancias de Amazon EC2 según sea necesario para cumplir los requisitos de escalado definidos en sus grupos de nodos de computación de PCS. Puede supervisar estas instancias mientras se ejecutan con Amazon CloudWatch. Puedes inspeccionar los registros de las instancias en ejecución iniciando sesión en ellas y utilizando herramientas de línea de comandos interactivas. Sin embargo, de forma predeterminada, los datos de CloudWatch las métricas solo se conservan durante un período limitado una vez que se termina una instancia y, por lo general, los registros de las instancias se eliminan junto con los volúmenes de EBS que respaldan la instancia. Para conservar las métricas o los datos de registro de las instancias lanzadas por PCS una vez finalizadas, puedes configurar el CloudWatch agente en tus instancias con una plantilla de lanzamiento de EC2. En este tema se ofrece una descripción general de la supervisión de las instancias en ejecución y ejemplos de cómo configurar las métricas y los registros de las instancias persistentes.

Supervisión de las instancias en ejecución

Búsqueda de instancias de AWS PCS

Para supervisar las instancias lanzadas por PCS, busque las instancias en ejecución asociadas a un clúster o grupo de nodos de computación. A continuación, en la consola EC2 de una instancia determinada, inspeccione las secciones de estado y alarmas y de supervisión. Si el acceso de inicio de sesión está configurado para esas instancias, puede conectarse a ellas e inspeccionar varios archivos de registro de las instancias. Para obtener más información sobre cómo identificar qué instancias administra PCS, consulteBúsqueda de instancias de grupos de nodos de cómputo en AWS PCS.

Habilitar métricas detalladas

De forma predeterminada, las métricas de las instancias se recopilan en intervalos de 5 minutos. Para recopilar métricas en intervalos de un minuto, habilita la CloudWatch supervisión detallada en tu plantilla de lanzamiento de grupos de nodos de procesamiento. Para obtener más información, consulte Active la CloudWatch supervisión detallada.

Configurar las métricas y los registros de instancias persistentes

Puedes conservar las métricas y los registros de tus instancias instalando y configurando el CloudWatch agente de Amazon en ellas. Consta de tres pasos principales:

  1. Cree una configuración de CloudWatch agente.

  2. Almacene la configuración en un lugar donde las instancias de PCS puedan recuperarla.

  3. Escriba una plantilla de lanzamiento de EC2 que instale el software del CloudWatch agente, obtenga la configuración e inicie el CloudWatch agente mediante la configuración.

Para obtener más información, consulte Recopilar métricas, registros y rastreos con el CloudWatch agente en la Guía del CloudWatch usuario de Amazon, y. Uso de plantillas de lanzamiento de Amazon EC2 con PCS AWS

Cree una configuración CloudWatch de agente

Antes de implementar el CloudWatch agente en tus instancias, debes generar un archivo de configuración JSON que especifique las métricas, los registros y los rastreos que debes recopilar. Los archivos de configuración se pueden crear con un asistente o manualmente con un editor de texto. El archivo de configuración se creará manualmente para esta demostración.

En un equipo en el que tenga instalada la CLI de AWS, cree un archivo de CloudWatch configuración denominado config.json con el siguiente contenido. También puede usar la siguiente URL para descargar una copia del archivo.

https://aws-hpc-recipes.s3.amazonaws.com/main/recipes/pcs/cloudwatch/assets/config.json
Notas
  • Las rutas de registro del archivo de muestra son para Amazon Linux 2023. Si sus instancias van a utilizar un sistema operativo base diferente, cambie las rutas según corresponda.

  • Para capturar otros registros, agrega entradas adicionales encollect_list.

  • Los valores de {brackets} son variables de plantilla. Para ver la lista completa de variables admitidas, consulte Crear o editar manualmente el archivo de configuración del CloudWatch agente en la Guía del CloudWatch usuario de Amazon.

  • Puede optar por omitir logs o no metrics desea recopilar estos tipos de información.

{ "agent": { "metrics_collection_interval": 60 }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/cloud-init.log", "log_group_class": "STANDARD", "log_group_name": "/PCSLogs/instances", "log_stream_name": "{instance_id}.cloud-init.log", "retention_in_days": 30 }, { "file_path": "/var/log/cloud-init-output.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.cloud-init-output.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/amazon/pcs/bootstrap.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.bootstrap.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/slurmd.log", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.slurmd.log", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/messages", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.messages", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 }, { "file_path": "/var/log/secure", "log_group_class": "STANDARD", "log_stream_name": "{instance_id}.secure", "log_group_name": "/PCSLogs/instances", "retention_in_days": 30 } ] } } }, "metrics": { "aggregation_dimensions": [ [ "InstanceId" ] ], "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "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": [ "*" ] }, "diskio": { "measurement": [ "io_time" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 }, "swap": { "measurement": [ "swap_used_percent" ], "metrics_collection_interval": 60 } } } }

Este archivo indica al CloudWatch agente que supervise varios archivos que pueden resultar útiles para diagnosticar errores, como el arranque, la autenticación y el inicio de sesión, y otros dominios de solución de problemas. Entre ellos se incluyen:

  • /var/log/cloud-init.log— Resultado de la etapa inicial de la configuración de la instancia

  • /var/log/cloud-init-output.log— Resultado de los comandos que se ejecutan durante la configuración de la instancia

  • /var/log/amazon/pcs/bootstrap.log— Resultado de PCS-specific las operaciones que se ejecutan durante la configuración de la instancia

  • /var/log/slurmd.log— Resultado del daemon slurmd del administrador de cargas de trabajo de Slurm

  • /var/log/messages— Mensajes del sistema desde el núcleo, los servicios del sistema y las aplicaciones

  • /var/log/secure— Registros relacionados con los intentos de autenticación, como SSH, sudo y otros eventos de seguridad

Los archivos de registro se envían a un grupo de CloudWatch registros denominado. /PCSLogs/instances Los flujos de registro son una combinación del ID de instancia y el nombre base del archivo de registro. El grupo de registros tiene un tiempo de retención de 30 días.

Además, el archivo indica al CloudWatch agente que recopile varias métricas comunes y las agregue por ID de instancia.

Almacena la configuración

El archivo de configuración del CloudWatch agente debe almacenarse de forma que las instancias de nodos de cómputos de PCS puedan acceder a él. Hay dos formas habituales de hacerlo. Puedes subirlo a un bucket de Amazon S3 al que tendrán acceso tus instancias de grupo de nodos de procesamiento a través de su perfil de instancias. También puedes almacenarlo como un parámetro de SSM en el almacén de parámetros de Amazon Systems Manager.

Sube a un bucket de S3

Para almacenar el archivo en S3, utilice los siguientes comandos de la CLI de AWS. Antes de ejecutar el comando, realice los siguientes reemplazos:

  • amzn-s3-demo-bucketSustitúyalo por tu propio nombre de bucket de S3

En primer lugar (esto es opcional si ya tienes un depósito), crea un depósito para guardar tus archivos de configuración.

aws s3 mb s3://amzn-s3-demo-bucket

A continuación, sube el archivo al bucket.

aws s3 cp ./config.json s3://amzn-s3-demo-bucket/

Almacene como un parámetro SSM

Para almacenar el archivo como un parámetro SSM, utilice el siguiente comando. Antes de ejecutar el comando, realice los siguientes reemplazos:

  • region-codeSustitúyalo por la región de AWS en la que trabaja con AWS PCS.

  • (Opcional) AmazonCloudWatch-PCS Sustitúyalo por su propio nombre para el parámetro. Ten en cuenta que si cambias el prefijo del nombre de, AmazonCloudWatch- tendrás que añadir específicamente el acceso de lectura al parámetro SSM en tu perfil de instancia de grupo de nodos.

aws ssm put-parameter \ --region region-code \ --name "AmazonCloudWatch-PCS" \ --type String \ --value file://config.json

Escribe una plantilla de lanzamiento de EC2

Los detalles específicos de la plantilla de lanzamiento dependen de si el archivo de configuración está almacenado en S3 o SSM.

Utilice una configuración almacenada en S3

Este script instala el CloudWatch agente, importa un archivo de configuración desde un bucket de S3 y lanza el CloudWatch agente con él. Sustituya los siguientes valores en este script por sus propios detalles:

  • amzn-s3-demo-bucket— El nombre de un bucket de S3 desde el que puede leer tu cuenta

  • /config.json— Ruta relativa a la raíz del bucket de S3 donde se almacena la configuración

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-cloudwatch-agent runcmd: - aws s3 cp s3://amzn-s3-demo-bucket/config.json /etc/s3-cw-config.json - /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file://etc/s3-cw-config.json --==MYBOUNDARY==--

El perfil de instancia de IAM del grupo de nodos debe tener acceso al bucket. Este es un ejemplo de política de IAM para el bucket en el script de datos de usuario anterior.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Ten en cuenta también que las instancias deben permitir el tráfico saliente al S3 y CloudWatch a los puntos finales. Esto se puede lograr mediante grupos de seguridad o puntos de enlace de la VPC, según la arquitectura de su clúster.

Utilice una configuración almacenada en SSM

Este script instala el CloudWatch agente, importa un archivo de configuración desde un parámetro de SSM y lanza el CloudWatch agente con él. Sustituya los siguientes valores en este script por sus propios detalles:

  • (Opcional) AmazonCloudWatch-PCS Sustitúyalo por su propio nombre para el parámetro.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-cloudwatch-agent runcmd: - /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:AmazonCloudWatch-PCS --==MYBOUNDARY==--

La política de instancias de IAM para el grupo de nodos debe estar CloudWatchAgentServerPolicy adjunta.

Si el nombre del parámetro no empieza por, AmazonCloudWatch- tendrás que añadir específicamente el acceso de lectura al parámetro SSM en el perfil de instancia de tu grupo de nodos. Este es un ejemplo de política de IAM que ilustra este prefijo. DOC-EXAMPLE-PREFIX

JSON
{ "Version":"2012-10-17", "Statement" : [ { "Sid" : "CustomCwSsmMParamReadOnly", "Effect" : "Allow", "Action" : [ "ssm:GetParameter" ], "Resource" : "arn:aws:ssm:*:*:parameter/DOC-EXAMPLE-PREFIX*" } ] }

Tenga en cuenta también que las instancias deben permitir el tráfico saliente al SSM y a los puntos finales. CloudWatch Esto se puede lograr mediante grupos de seguridad o puntos de enlace de la VPC, según la arquitectura de su clúster.