为以下各项设置 Grafana 监控控制面板 AWS ParallelCluster - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为以下各项设置 Grafana 监控控制面板 AWS ParallelCluster

由 Dario La Porta (AWS) 和 William Lu (AWS) 创作

代码存储库:parallelcluster-monitoring-dashboard

环境:PoC 或试点

技术:高性能计算;分析;管理和治理

工作负载:开源

AWS服务:AWS ParallelCluster

Summary

AWS ParallelCluster 帮助您部署和管理高性能计算 (HPC) 集群。它支持 AWS Batch 和 Slurm 开源作业调度器。尽管AWS ParallelCluster 它已与 Amazon 集成 CloudWatch 以获取日志和指标,但它并未为工作负载提供监控面板。

GitHub() 的 Grafana 控制面板是AWS ParallelCluster用于的监控控制面板。AWS ParallelCluster它提供了操作系统级别的作业调度程序见解和详细的监控指标。有关此解决方案中包含的仪表板的更多信息,请参阅 GitHub 存储库中的示例仪表板。这些指标可帮助您更好地了解工作HPC负载及其性能。但是,对于解决方案中使用的最新版本AWS ParallelCluster 或开源软件包,仪表板代码不会更新。此模式增强解决方案,提供以下优势:

  • 支持 AWS ParallelCluster v3

  • 使用最新版本的开源包,包括 Prometheus、Grafana、Prometheus Slurm Exporter 和-Exporter NVIDIA DCGM

  • 增加 Slurm 任务GPUs使用的CPU内核数量和

  • 添加任务监控控制面板

  • 增强了GPU具有 4 或 8 个图形处理单元的节点的节点监控仪表板 (GPUs)

此版本的增强解决方案已在AWS客户的HPC生产环境中实施和验证。

先决条件和限制

先决条件

限制

  • 此模式旨在支持 Ubuntu 20.04。LTS如果您使用的是其他版本的 Ubuntu,或者您使用的是 Amazon Linux 或 CentOS,则需要修改此解决方案提供的脚本。这些修改不包含在此模式中。

产品版本

  • Ubuntu 20.04 LTS

  • ParallelCluster 3.X

账单与成本注意事项

  • 以这种模式部署的解决方案并不在免费套餐范围内。亚马逊EC2、亚马逊收费 Lustre、亚马逊FSxNAT网关和亚马逊 VPC Route 53 的费用。

架构

目标架构

下图显示了用户如何访问头节点AWS ParallelCluster 上的监控仪表板。头节点运行 NICEDCV,Prometheus、Grafana、Prometheus Slurm Exporter、Prometheus Node Exporter 和开源。NGINX计算节点运行 Prometheus Node Exporter,如果节点包含,NVIDIADCGM它们还会运行-Exporter。GPUs头节点从计算节点检索信息,并将此数据显示在 Grafana 控制面板中。

访问头节点AWS ParallelCluster 上的监控仪表板。

在大多数情况下,头节点的负载并不大,因为作业调度器不需要大量的CPU内存。用户使用端口 443 访问头节点SSL上的仪表板。

所有授权查看者都可以匿名查看监控控制面板。仅 Grafana 管理员可以修改控制面板。您可在 aws-parallelcluster-monitoring/docker-compose/docker-compose.head.yml 文件中为 Grafana 管理员配置密码。

工具

AWS服务

其他工具

  • Docker 是一组平台即服务(PaaS)产品,它们使用操作系统级别的虚拟化技术在容器中交付软件。

  • Grafana 是一款开源软件,可帮助您查询、可视化、提醒和浏览指标、日志和跟踪。

  • NGINX开源是一个开源的 Web 服务器和反向代理。

  • NVIDIAData Center GPU Manager (DCGM) 是一套工具,用于管理和监控集群环境中的NVIDIA数据中心图形处理单元 (GPUs)。在这种模式中,你使用 DCGM- Exporter,它可以帮助你从 Prometheu GPU s 导出指标。

  • Prometheus 是开源系统监控工具包,可将其指标收集并存储为时间序列数据,以及相关的键值对(称为标签)。在此模式下,您还可使用 Prometheus Slurm Exporter 收集和导出指标,您可使用 Prometheus Node Exporter 导出来自结算节点的指标。

  • Ubuntu 是基于 Linux 的开源操作系统,专为企业服务器、桌面、云环境和物联网而设计。

代码存储库

此模式的代码可在 GitHub pcluster-monitoring-dashboard存储库中找到。

操作说明

任务描述所需技能

创建 S3 存储桶。

创建 Amazon S3 存储桶。您可使用此存储桶存储配置脚本。有关说明,请参阅 Amazon S3 文档中的创建存储桶

将军 AWS

克隆存储库。

通过运行以下命令来克隆 GitHub pcluster-monitoring-dashboard存储库。

git clone https://github.com/aws-samples/parallelcluster-monitoring-dashboard.git
DevOps 工程师

创建管理员密码。

  1. 选择文件夹,选择 aws-parallelcluster-monitoring 文件夹,选择 docker-compose 文件夹,然后打开 docker-compose.head.yml 文件。

  2. GF_SECURITY_ADMIN_PASSWORD 变量中,使用所选密码替换 Grafana4PC!。这是您用于管理 Grafana 账户的管理密码。

  3. 保存和关闭 docker-compose.head.yml 文件。

Linux Shell 脚本

将所需文件复制至 S3 存储桶。

post_install.sh 脚本和aws-parallelcluster-monitoring文件夹复制到您创建的 S3 存储桶中。有关说明,请参阅 Amazon S3 文档中的上传对象

将军 AWS

为头节点配置其他安全组。

  1. 为头节点创建安全组。该安全组将允许入站流量到达头节点上的监控控制面板。有关说明,请参阅 Amazon VPC 文档中的创建安全组

  2. 将入站规则添加到安全组。有关说明,请参阅 Amazon VPC 文档中的向安全组添加规则。对规则使用以下参数:

    • 类型 — HTTPS

    • 协议 — TCP

    • 端口范围 –443

    • - 输入您的 IP 地址

    • 描述 - 允许用户访问监控面板

AWS管理员

为头节点配置IAM策略。

为头节点创建基于身份的策略。该策略允许节点从 Amazon 检索指标数据 CloudWatch。该 GitHub 存储库包含一个示例策略。有关说明,请参阅 Ident AWS ity and Access Management (IAM) 文档中的创建IAM策略

AWS管理员

为计算节点配置IAM策略。

为计算机节点创建基于身份的策略。此策略允许节点创建包含作业 ID 和任务拥有者的标签。该 GitHub 存储库包含一个示例策略。有关说明,请参阅IAM文档中的创建IAM策略

如您使用提供的示例文件,请替换以下值:

  • < REGION >-托管集群的AWS区域

  • < ACCOUNT _ID> — 账户 ID AWS

AWS管理员
任务描述所需技能

修改所提供的集群模板文件。

创建集AWS ParallelCluster 群。使用提供的集群.yaml AWS CloudFormation 模板文件作为创建集群的起点。替换所提供模板中的以下值:

  • < REGION >-托管集群的AWS区域。

  • < HEADNODE _ SUBNET > — 的公有子网VPC。

  • < ADDITIONAL _ HEAD _ NODE _SG> — 您为头节点创建的安全组的名称。

  • < KEY _ NAME > — 输入现有亚马逊EC2密钥对的名称。拥有此 key pair 的资源可以访问头节点 Secure Shell (SSH)。

  • < ALLOWED _ IPS >-—输入允许与头SSH节点建立连接的CIDR格式化的 IP 地址范围。

  • < ADDITIONAL _ HEAD NODE _ _ POLICY > — 输入您为头节点创建的IAM策略的名称。

  • < BUCKET _ NAME > — 输入您创建的 S3 存储桶的名称。

  • < COMPUTE _ SUBNET > — 在中输入私有子网的名称VPC。

  • < ADDITIONAL _ COMPUTE NODE _ _ POLICY > — 输入您为计算节点创建的IAM策略的名称。

AWS管理员

创建集群。

在中 AWS ParallelCluster CLI,输入以下命令。这将部署 CloudFormation 模板并创建集群。有关此命令的更多信息,请参阅文档中的 pcluster create-cluster。AWS ParallelCluster

pcluster create-cluster -n <cluster_name> -c cluster.yaml
AWS管理员

监控集群创建。

输入以下命令,以监控集群创建。有关此命令的更多信息,请参阅文档中的 pcluster describe-cluster。AWS ParallelCluster

pcluster describe-cluster -n <cluster_name>
AWS管理员
任务描述所需技能

访问 Grafana 门户。

  1. 输入以下命令以检索头节点的公共 IP 地址。

    pcluster describe-cluster -n <cluster_name> --query headNode.publicIpAddress
  2. 在网络浏览器中,导航至以下内容URL以访问 Grafana 控制面板。

    https://<head_node_public_ip_address>

  3. 在 Grafana 首页上,选择左侧菜单上的 4 方形控制面板图标,然后选择常规。这显示了已配置的控制面板列表。Grafana 中提供以下控制面板:

    • 集群成本 — 包含有关集群成本的信息

    • 集群日志 — 包含有关集群日志的信息

    • 计算节点详细信息 — 包含有关计算节点使用情况统计信息的信息

    • 计算节点列表 — 包含集群的计算节点列表

    • GPU节点-包含有关节点使用情况GPU统计信息的信息

    • 作业详情 — 包含有关作业资源利用率的信息

    • 头节点详细信息 — 包含有关头节点使用情况统计信息的信息

    • ParallelCluster 摘要-包含有关集群使用情况的信息

AWS管理员
任务描述所需技能

请删除集群。

输入以下命令以删除集群。有关此命令的更多信息,请参阅文档中的 pcluster delete-cluster。AWS ParallelCluster

pcluster delete-cluster -n <cluster_name>
AWS管理员

删除IAM策略。

删除您为头节点与计算节点创建的策略。有关删除策略的更多信息,请参阅IAM文档中的删除IAM策略

AWS管理员

删除安全组和规则。

删除您为头节点创建的安全组。有关更多信息,请参阅 Amazon VPC 文档中的删除安全组规则和删除安全组。

AWS管理员

删除 S3 存储桶。

删除您创建的用于存储配置脚本的 S3 存储桶。有关更多信息,请参阅 Amazon S3 文档中的删除存储桶

将军 AWS

故障排除

问题解决方案

头节点在浏览器中不可访问。

检查安全组并确认入站端口 443 已经打开。

无法打开 Grafana。

在头节点上,查看 docker logs Grafana 的容器日志。

部分指标没有数据。

在头节点,检查所有容器的容器日志。

相关资源

AWS文档

其他AWS资源

其他资源