Configurar un panel de monitoreo de Grafana para AWS ParallelCluster - Recomendaciones de AWS

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.

Configurar un panel de monitoreo de Grafana para AWS ParallelCluster

Creado por Dario La Porta (AWS) y William Lu (AWS)

Repositorio de código: parallelcluster-monitoring-dashboard

Entorno: PoC o piloto

Tecnologías: computación de alto rendimiento; análisis; gestión y gobierno

Carga de trabajo: código abierto

Servicios de AWS: AWS ParallelCluster

Resumen

AWS le ParallelCluster ayuda a implementar y administrar clústeres de computación de alto rendimiento (HPC). Es compatible con los programadores de trabajos de código abierto AWS Batch y Slurm. Aunque AWS ParallelCluster está integrado con Amazon CloudWatch para el registro y las métricas, no proporciona un panel de supervisión de la carga de trabajo.

El panel de control de Grafana para AWS ParallelCluster (GitHub) es un panel de supervisión para AWS. ParallelCluster Proporciona información sobre el programador de tareas y métricas de supervisión detalladas a nivel del sistema operativo (SO). Para obtener más información sobre los paneles incluidos en esta solución, consulte Ejemplos de paneles en el repositorio. GitHub Estas métricas le ayudan a comprender mejor la carga de trabajo de HPC y su rendimiento. Sin embargo, el código del panel de control no se actualiza para las versiones más recientes de AWS ParallelCluster ni para los paquetes de código abierto que se utilizan en la solución. Este patrón mejora la solución para proporcionar los siguientes beneficios:

  • Compatible con AWS ParallelCluster v3

  • Usa la última versión de los paquetes de código abierto, incluidos Prometheus, Grafana, Prometheus Slurm Exporter y NVIDIA DCGM-Exporter

  • Aumenta el número de núcleos de CPU y GPU que usan los trabajos de Slurm

  • Añade un panel de supervisión de trabajos

  • Mejora el panel de supervisión de nodos de GPU para nodos con 4 u 8 unidades de procesamiento gráfico (GPU)

Esta versión de la solución mejorada se ha implementado y verificado en el entorno de producción de HPC de un cliente de AWS.

Requisitos previos y limitaciones

Requisitos previos 

  • AWS ParallelCluster CLI, instalada y configurada.

  • Una configuración de red compatible con AWS ParallelCluster. Este patrón usa la configuración de AWS ParallelCluster con dos subredes, que requiere una subred pública, una subred privada, una puerta de enlace a Internet y una puerta de enlace NAT.

  • Todos los nodos ParallelCluster del clúster de AWS deben tener acceso a Internet. Esto es necesario para que los scripts de instalación puedan descargar el software de código abierto y las imágenes de Docker.

  • Un par de claves en Amazon Elastic Compute Cloud (Amazon EC2). Los recursos con este par de claves tienen acceso Secure Shell (SSH) al nodo principal.

Limitaciones

  • Este patrón está diseñado para Ubuntu 20.04 LTS. Si usa una versión diferente de Ubuntu, o si usa Amazon Linux o CentOS, tendrá que modificar los scripts que se proporcionan con esta solución. Dichas modificaciones no se incluyen en este patrón.

Versiones de producto

  • Ubuntu 20.04 LTS

  • ParallelCluster 3.X

Consideraciones de costos y facturación

  • La solución implementada en este patrón no está cubierta por el nivel gratuito. Se aplican cargos a Amazon EC2, Amazon FSx para Lustre, la puerta de enlace NAT de Amazon VPC y Amazon Route 53.

Arquitectura

Arquitectura de destino

En el siguiente diagrama, se muestra cómo un usuario puede acceder al panel de supervisión de AWS ParallelCluster en el nodo principal. El nodo principal ejecuta NICE DCV, Prometheus, Grafana, Prometheus Slurm Exporter, Prometheus Node Exporter y NGINX Open Source. Los nodos de cómputo ejecutan Prometheus Node Exporter y, si el nodo contiene GPU, también ejecutan NVIDIA DCGM-Exporter. El nodo principal recupera información de los nodos de cómputo y muestra esos datos en el panel de control de Grafana.

Acceso al panel de supervisión de AWS ParallelCluster en el nodo principal.

En la mayoría de los casos, el nodo principal no está muy cargado, ya que el programador de tareas no requiere una cantidad significativa de CPU o memoria. Los usuarios acceden al panel de control del nodo principal mediante SSL en el puerto 443.

Todos los usuarios con acceso de lectura autorizado pueden ver los paneles de supervisión de forma anónima. Solo el administrador de Grafana puede modificar los paneles. Debe configurar una contraseña para el administrador de Grafana en el archivo aws-parallelcluster-monitoring/docker-compose/docker-compose.head.yml.

Herramientas

Servicios de AWS

  • NICE DCV es un protocolo de visualización remota de alto rendimiento que le permite ofrecer escritorios remotos y streaming de aplicaciones desde cualquier nube o centro de datos a cualquier dispositivo, en condiciones de red variables.

  • AWS le ParallelCluster ayuda a implementar y administrar clústeres de computación de alto rendimiento (HPC). Es compatible con los programadores de trabajos de código abierto AWS Batch y Slurm.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • Amazon Virtual Private Cloud (Amazon VPC) le permite lanzar recursos de AWS en una red virtual que haya definido.

Otras herramientas

  • Docker es un conjunto de productos de plataforma como servicio (PaaS) que utiliza la virtualización a nivel del sistema operativo para entregar software en contenedores.

  • Grafana es un software de código abierto que le permite consultar, visualizar, alertar y explorar métricas, registros y trazas.

  • NGINX Open Source es un servidor web de código abierto y proxy inverso.

  • NVIDIA Data Center GPU Manager (DCGM) es un conjunto de herramientas para administrar y supervisar las unidades de procesamiento gráfico (GPU) de los centros de datos de NVIDIA en entornos de clúster. Este patrón usa DCGM-Exporter, que le ayuda a exportar las métricas de GPU de Prometheus.

  • Prometheus es un conjunto de herramientas de supervisión de sistemas de código abierto que recopila y almacena sus métricas como datos de serie temporal con pares clave-valor asociados, denominados etiquetas. Este patrón también usa Prometheus Slurm Exporter para recopilar y exportar métricas, y Prometheus Node Exporter para exportar métricas de los nodos de cómputo.

  • Ubuntu es un sistema operativo de código abierto basado en Linux y diseñado para servidores empresariales, escritorios, entornos de nube e IoT.

Repositorio de código

El código de este patrón está disponible en el GitHub pcluster-monitoring-dashboardrepositorio.

Epics

TareaDescripciónHabilidades requeridas

Cree un bucket de S3.

Crear un bucket de Amazon S3. Este bucket se usa para almacenar los scripts de configuración. Para obtener instrucciones, consulte Crear un bucket en la documentación de Amazon S3.

AWS general

Clonar el repositorio.

Clona el GitHub pcluster-monitoring-dashboardrepositorio ejecutando el siguiente comando.

git clone https://github.com/aws-samples/parallelcluster-monitoring-dashboard.git
DevOps ingeniero

Cree una contraseña de administrador.

  1. Seleccione la carpeta aws-parallelcluster-monitoring, seleccione la carpeta docker-compose y abra el archivo docker-compose.head.yml.

  2. En la variable GF_SECURITY_ADMIN_PASSWORD, sustituya Grafana4PC! por una contraseña de su elección. Esta es la contraseña administrativa que usará para gestionar la cuenta de Grafana.

  3. Guarde y cierre el archivo docker-compose.head.yml.

Scripts Linux Shell

Copie los archivos necesarios en el bucket de S3.

Copie el script post_install.sh y la aws-parallelcluster-monitoringcarpeta en el depósito de S3 que creó. Para más instrucciones, consulte Cargar objetos en la documentación de Amazon S3.

AWS general

Configure un grupo de seguridad adicional para el nodo principal.

  1. Cree un grupo de seguridad para el nodo principal. Este grupo de seguridad permitirá que el tráfico entrante llegue a los paneles de supervisión del nodo principal. Para más instrucciones, consulte Crear un grupo de seguridad en la documentación de Amazon VPC.

  2. Agregar una regla de entrada al grupo de seguridad Para obtener más instrucciones, consulte Cómo añadir reglas a un grupo de seguridad en la documentación de Amazon VPC. Utilice los siguientes parámetros para la regla:

    • Tipo: HTTPS

    • Protocolo: TCP

    • Intervalo de puertos: 443

    • Origen: introduzca su dirección IP

    • Descripción: permitir a los usuarios acceder al panel de supervisión

Administrador de AWS

Configure una política de IAM para el nodo principal.

Cree una política basada en identidades para el nodo principal. Esta política permite al nodo recuperar datos métricos de Amazon CloudWatch. El GitHub repositorio contiene un ejemplo de política. Para obtener más instrucciones, consulte Creación de políticas de IAM en la documentación de AWS Identity and Access Management (IAM).

Administrador de AWS

Configure una política de IAM para los nodos de cómputo.

Cree una política basada en identidades para los nodos de computación. Esta política permite al nodo crear las etiquetas que contienen la ID y el propietario del trabajo. El GitHub repositorio contiene un ejemplo de política. Para obtener más información, consulte Creación de políticas de IAM en la documentación de IAM.

Si usa el archivo de ejemplo proporcionado, sustituya los siguientes valores:

  • <REGION>: la región de AWS donde se aloja el clúster.

  • <ACCOUNT_ID>: ID de la cuenta de AWS.

Administrador de AWS
TareaDescripciónHabilidades requeridas

Modifique el archivo de plantilla de clúster proporcionado.

Cree el ParallelCluster clúster de AWS. Utilice el archivo de plantilla de CloudFormation AWS cluster.yaml proporcionado como punto de partida para crear el clúster. Sustituya los siguientes valores en la plantilla proporcionada:

  • <REGION>: la región de AWS donde se aloja el clúster.

  • <HEADNODE_SUBNET> – La subred pública de la VPC.

  • <ADDITIONAL_HEAD_NODE_SG> – El nombre del grupo de seguridad que ha creado para el nodo principal.

  • <KEY_NAME> – Introduzca el nombre de un par de claves de Amazon EC2 existente. Los recursos con este par de claves tienen acceso Secure Shell (SSH) al nodo principal.

  • <ALLOWED_IPS> -– Introduzca el rango de direcciones IP con formato CIDR que puede realizar conexiones SSH en el nodo principal.

  • <ADDITIONAL_HEAD_NODE_POLICY> – Introduzca el nombre de la política de IAM que ha creado para el nodo principal.

  • <BUCKET_NAME>: escriba el nombre del bucket de S3·que creó.

  • <COMPUTE_SUBNET> – Introduzca el nombre de la subred privada en la VPC.

  • <ADDITIONAL_HEAD_NODE_POLICY> – Introduzca el nombre de la política de IAM que ha creado para el nodo de computación.

Administrador de AWS

Cree el clúster.

En la AWS ParallelCluster CLI, introduzca el siguiente comando. Esto despliega la CloudFormation plantilla y crea el clúster. Para obtener más información sobre este comando, consulte pcluster create-cluster en la documentación de AWS. ParallelCluster

pcluster create-cluster -n <cluster_name> -c cluster.yaml
Administrador de AWS

Supervise la creación del clúster.

Introduzca el siguiente comando para supervisar la creación del cluster. Para obtener más información sobre este comando, consulte pcluster describe-cluster en la documentación de AWS. ParallelCluster

pcluster describe-cluster -n <cluster_name>
Administrador de AWS
TareaDescripciónHabilidades requeridas

Acceda al portal de Grafana.

  1. Introduzca el siguiente comando para obtener la dirección IP pública del nodo principal.

    pcluster describe-cluster -n <cluster_name> --query headNode.publicIpAddress
  2. En un navegador web, acceda a la siguiente URL para entrar en el panel de control de Grafana.

    https://<head_node_public_ip_address>

  3. En la página de inicio de Grafana, elija el icono de cuatro cuadrados Panel de control, en el menú de la izquierda, y seleccione General. Se mostrará una lista de paneles configurados. Grafana ofrece los siguientes paneles:

    • Costo del clúster: contiene información sobre el costo del clúster

    • Registros del clúster: contiene información sobre los registros del clúster

    • Detalles del nodo de cómputo: contiene información sobre las estadísticas de uso de los nodos de cómputo

    • Lista de nodos de cómputo: contiene una lista de los nodos de cómputo del clúster

    • Nodos de GPU: contiene información sobre las estadísticas de uso de los nodos de GPU

    • Detalles de los trabajos: contiene información sobre la utilización de los recursos del trabajo

    • Detalles del nodo principal: contiene información sobre las estadísticas de uso del nodo principal

    • ParallelCluster Resumen: contiene información sobre el uso del clúster

Administrador de AWS
TareaDescripciónHabilidades requeridas

Eliminar el clúster.

Para eliminar el clúster, escriba siguiente comando. Para obtener más información sobre este comando, consulte pcluster delete-cluster en la documentación de AWS. ParallelCluster

pcluster delete-cluster -n <cluster_name>
Administrador de AWS

Elimine las políticas de IAM.

Elimine las políticas que creó para el nodo principal y el nodo de cómputo. Para más información acerca de la eliminación de políticas, consulte Eliminación de políticas de IAM en la documentación de IAM.

Administrador de AWS

Eliminar la regla y el grupo de seguridad.

Elimine el grupo de seguridad que creó para el nodo principal. Para obtener más información, consulte Eliminar reglas de grupo de seguridad y Eliminar un grupo de seguridad en la documentación de Amazon VPC.

Administrador de AWS

Elimine el bucket de S3.

Elimine el bucket de S3 que creó para almacenar los scripts de configuración. Para obtener más información, consulte Eliminación de un bucket en la documentación de Amazon S3.

AWS general

Resolución de problemas

ProblemaSolución

No se puede acceder al nodo principal en el navegador.

Compruebe el grupo de seguridad y confirme que el puerto de entrada 443 esté abierto.

Grafana no se abre.

En el nodo principal, busque docker logs Grafana en el registro del contenedor.

Algunas métricas no tienen datos.

En el nodo principal, compruebe los registros de todos los contenedores.

Recursos relacionados

Documentación de AWS

Otros recursos de AWS

Otros recursos