Richten Sie ein Grafana-Monitoring-Dashboard für AWS ein ParallelCluster - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Richten Sie ein Grafana-Monitoring-Dashboard für AWS ein ParallelCluster

Erstellt von Dario La Porta (AWS) und William Lu (AWS)

Code-Repository: parallelcluster-monitoring-dashboard

Umgebung: PoC oder Pilotprojekt

Technologien: Hochleistungsrechnen; Analytik; Management und Unternehmensführung

Arbeitslast: Open Source

AWS-Dienste: AWS ParallelCluster

Übersicht

AWS ParallelCluster unterstützt Sie bei der Bereitstellung und Verwaltung von HPC-Clustern (High Performance Computing). Es unterstützt die Open-Source-Job-Scheduler AWS Batch und Slurm. Obwohl AWS CloudWatch für die Protokollierung und Metriken in Amazon integriert ParallelCluster ist, bietet es kein Monitoring-Dashboard für die Arbeitslast.

Das Grafana-Dashboard für AWS ParallelCluster (GitHub) ist ein Überwachungs-Dashboard für AWS ParallelCluster. Es bietet Einblicke in den Job Scheduler und detaillierte Überwachungsmetriken auf Betriebssystemebene (OS). Weitere Informationen zu den in dieser Lösung enthaltenen Dashboards finden Sie unter Beispiel-Dashboards im Repository. GitHub Diese Metriken helfen Ihnen dabei, den HPC-Workload und seine Leistung besser zu verstehen. Der Dashboard-Code wird jedoch nicht für die neuesten Versionen von AWS ParallelCluster oder die Open-Source-Pakete aktualisiert, die in der Lösung verwendet werden. Dieses Muster verbessert die Lösung und bietet die folgenden Vorteile:

  • Unterstützt AWS ParallelCluster v3

  • Verwendet die neueste Version von Open-Source-Paketen, darunter Prometheus, Grafana, Prometheus Slurm Exporter und NVIDIA DCGM-Exporter

  • Erhöht die Anzahl der CPU-Kerne und GPUs, die die Slurm-Jobs verwenden

  • Fügt ein Dashboard zur Jobüberwachung hinzu

  • Verbessert das Dashboard zur GPU-Knotenüberwachung für Knoten mit 4 oder 8 Grafikprozessoren (GPUs)

Diese Version der erweiterten Lösung wurde in der HPC-Produktionsumgebung eines AWS-Kunden implementiert und verifiziert.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • AWS ParallelCluster CLI, installiert und konfiguriert.

  • Eine unterstützte Netzwerkkonfiguration für AWS ParallelCluster. Dieses Muster verwendet die AWS-Konfiguration ParallelCluster mit zwei Subnetzen, was ein öffentliches Subnetz, ein privates Subnetz, ein Internet-Gateway und ein NAT-Gateway erfordert.

  • Alle ParallelCluster AWS-Clusterknoten müssen über Internetzugang verfügen. Dies ist erforderlich, damit die Installationsskripte die Open-Source-Software und die Docker-Images herunterladen können.

  • Ein key pair in Amazon Elastic Compute Cloud (Amazon EC2). Ressourcen mit diesem key pair haben Secure Shell (SSH) -Zugriff auf den Hauptknoten.

Einschränkungen

  • Dieses Muster wurde entwickelt, um Ubuntu 20.04 LTS zu unterstützen. Wenn Sie eine andere Version von Ubuntu oder Amazon Linux oder CentOS verwenden, müssen Sie die mit dieser Lösung bereitgestellten Skripts ändern. Diese Änderungen sind in diesem Muster nicht enthalten.

Produktversionen

  • Ubuntu 20.04 LTS

  • ParallelCluster 3.X

Überlegungen zur Abrechnung und zu den Kosten

  • Die nach diesem Muster bereitgestellte Lösung fällt nicht unter das kostenlose Kontingent. Für Amazon EC2, Amazon FSx for Lustre, das NAT-Gateway in Amazon VPC und Amazon Route 53 fallen Gebühren an.

Architektur

Zielarchitektur

Das folgende Diagramm zeigt, wie ein Benutzer auf das Monitoring-Dashboard für AWS ParallelCluster auf dem Hauptknoten zugreifen kann. Auf dem Hauptknoten werden NICE DCV, Prometheus, Grafana, Prometheus Slurm Exporter, Prometheus Node Exporter und NGINX Open Source ausgeführt. Auf den Rechenknoten wird Prometheus Node Exporter ausgeführt, und sie führen auch NVIDIA DCGM-Exporter aus, wenn der Knoten GPUs enthält. Der Hauptknoten ruft Informationen von den Rechenknoten ab und zeigt diese Daten im Grafana-Dashboard an.

Zugriff auf das Monitoring-Dashboard für AWS ParallelCluster auf dem Hauptknoten.

In den meisten Fällen ist der Hauptknoten nicht stark ausgelastet, da der Job-Scheduler keine nennenswerte Menge an CPU oder Arbeitsspeicher benötigt. Benutzer greifen mithilfe von SSL auf Port 443 auf das Dashboard auf dem Hauptknoten zu.

Alle autorisierten Zuschauer können die Monitoring-Dashboards anonym einsehen. Nur der Grafana-Administrator kann Dashboards ändern. Sie konfigurieren in der aws-parallelcluster-monitoring/docker-compose/docker-compose.head.yml Datei ein Passwort für den Grafana-Administrator.

Tools

AWS-Services

  • NICE DCV ist ein leistungsstarkes Remote-Display-Protokoll, mit dem Sie Remote-Desktops und Anwendungsstreaming von jeder Cloud oder jedem Rechenzentrum auf jedes Gerät unter unterschiedlichen Netzwerkbedingungen bereitstellen können.

  • AWS ParallelCluster unterstützt Sie bei der Bereitstellung und Verwaltung von HPC-Clustern (High Performance Computing). Es unterstützt die Open-Source-Job-Scheduler AWS Batch und Slurm.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

  • Amazon Virtual Private Cloud (Amazon VPC) hilft Ihnen, AWS-Ressourcen in einem von Ihnen definierten virtuellen Netzwerk zu starten.

Andere Tools

  • Docker ist eine Reihe von Platform-as-a-Service (PaaS) -Produkten, die Virtualisierung auf Betriebssystemebene nutzen, um Software in Containern bereitzustellen.

  • Grafana ist eine Open-Source-Software, mit der Sie Metriken, Protokolle und Traces abfragen, visualisieren, darauf hinweisen und untersuchen können.

  • NGINX Open Source ist ein Open-Source-Webserver und Reverse-Proxy.

  • NVIDIA Data Center GPU Manager (DCGM) ist eine Suite von Tools zur Verwaltung und Überwachung von NVIDIA-Grafikprozessoren (GPUs) für Rechenzentren in Clusterumgebungen. In diesem Muster verwenden Sie den DCGM-Exporter, mit dem Sie GPU-Metriken aus Prometheus exportieren können.

  • Prometheus ist ein Open-Source-Toolkit zur Systemüberwachung, das seine Metriken als Zeitreihendaten mit zugehörigen Schlüssel-Wert-Paaren sammelt und speichert, die als Labels bezeichnet werden. In diesem Muster verwenden Sie auch Prometheus Slurm Exporter, um Metriken zu sammeln und zu exportieren, und Sie verwenden Prometheus Node Exporter, um Metriken aus den Rechenknoten zu exportieren.

  • Ubuntu ist ein Linux-basiertes Open-Source-Betriebssystem, das für Unternehmensserver, Desktops, Cloud-Umgebungen und IoT entwickelt wurde.

Code-Repository

Der Code für dieses Muster ist im GitHub pcluster-monitoring-dashboardRepository verfügbar.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie einen S3-Bucket.

Erstellen Sie einen Amazon-S3-Bucket. Sie verwenden diesen Bucket, um die Konfigurationsskripten zu speichern. Anweisungen finden Sie in der Amazon S3 S3-Dokumentation unter Bucket erstellen.

Allgemeines AWS

Klonen Sie das Repository

Klonen Sie das GitHub pcluster-monitoring-dashboardRepo, indem Sie den folgenden Befehl ausführen.

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

Erstellen Sie ein Admin-Passwort.

  1. Wählen Sie den aws-parallelcluster-monitoring Ordner aus, wählen Sie den docker-compose Ordner aus und öffnen Sie dann die Datei docker-compose.head.yml.

  2. Ersetzen Sie die GF_SECURITY_ADMIN_PASSWORD Variable durch ein Passwort Ihrer Wahl. Grafana4PC! Dies ist das Administratorkennwort, mit dem Sie das Grafana-Konto verwalten.

  3. Speichern und schließen Sie die Datei docker-compose.head.yml.

Linux-Shell-Skripting

Kopieren Sie die erforderlichen Dateien in den S3-Bucket.

Kopieren Sie das Skript post_install.sh und den aws-parallelcluster-monitoringOrdner in den S3-Bucket, den Sie erstellt haben. Anweisungen finden Sie unter Objekte hochladen in der Amazon S3 S3-Dokumentation.

Allgemeines AWS

Konfigurieren Sie eine zusätzliche Sicherheitsgruppe für den Hauptknoten.

  1. Erstellen Sie eine Sicherheitsgruppe für den Hauptknoten. Diese Sicherheitsgruppe ermöglicht eingehenden Datenverkehr zu den Überwachungs-Dashboards auf dem Hauptknoten. Anweisungen finden Sie in der Amazon VPC-Dokumentation unter Erstellen einer Sicherheitsgruppe.

  2. Fügen Sie der Sicherheitsgruppe eine Regel für eingehenden Datenverkehr hinzu. Anweisungen finden Sie unter Regeln zu einer Sicherheitsgruppe hinzufügen in der Amazon VPC-Dokumentation. Verwenden Sie die folgenden Parameter für die Regel:

    • Typ — HTTPS

    • Protokoll — TCP

    • Portbereich — 443

    • Quelle — Geben Sie Ihre IP-Adresse ein

    • Beschreibung — Erlaubt Benutzern den Zugriff auf das Monitoring-Dashboard

AWS-Administrator

Konfigurieren Sie eine IAM-Richtlinie für den Hauptknoten.

Erstellen Sie eine identitätsbasierte Richtlinie für den Hauptknoten. Diese Richtlinie ermöglicht es dem Knoten, Metrikdaten von Amazon abzurufen CloudWatch. Das GitHub Repo enthält eine Beispielrichtlinie. Anweisungen finden Sie unter Erstellen von IAM-Richtlinien in der Dokumentation zu AWS Identity and Access Management (IAM).

AWS-Administrator

Konfigurieren Sie eine IAM-Richtlinie für die Rechenknoten.

Erstellen Sie eine identitätsbasierte Richtlinie für die Rechenknoten. Diese Richtlinie ermöglicht es dem Knoten, die Tags zu erstellen, die die Job-ID und den Job-Besitzer enthalten. Das GitHub Repo enthält eine Beispielrichtlinie. Anweisungen finden Sie in der IAM-Dokumentation unter Erstellen von IAM-Richtlinien.

Wenn Sie die bereitgestellte Beispieldatei verwenden, ersetzen Sie die folgenden Werte:

  • <REGION>— Die AWS-Region, in der der Cluster gehostet wird

  • <ACCOUNT_ID>— Die AWS-Konto-ID

AWS-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Ändern Sie die bereitgestellte Cluster-Vorlagendatei.

Erstellen Sie den ParallelCluster AWS-Cluster. Verwenden Sie die bereitgestellte CloudFormation AWS-Vorlagendatei cluster.yaml als Ausgangspunkt für die Erstellung des Clusters. Ersetzen Sie die folgenden Werte in der bereitgestellten Vorlage:

  • <REGION>— Die AWS-Region, in der der Cluster gehostet wird.

  • <HEADNODE_SUBNET>— Das öffentliche Subnetz der VPC.

  • <ADDITIONAL_HEAD_NODE_SG>— Der Name der Sicherheitsgruppe, die Sie für den Hauptknoten erstellt haben.

  • <KEY_NAME>— Geben Sie den Namen eines vorhandenen Amazon EC2 EC2-Schlüsselpaars key pair. Ressourcen mit diesem key pair haben Secure Shell (SSH) -Zugriff auf den Hauptknoten.

  • <ALLOWED_IPS>— Geben Sie den CIDR-formatierten IP-Adressbereich ein, über den SSH-Verbindungen zum Hauptknoten hergestellt werden können.

  • <ADDITIONAL_HEAD_NODE_POLICY>— Geben Sie den Namen der IAM-Richtlinie ein, die Sie für den Hauptknoten erstellt haben.

  • <BUCKET_NAME>— Geben Sie den Namen des S3-Buckets ein, den Sie erstellt haben.

  • <COMPUTE_SUBNET>— Geben Sie den Namen des privaten Subnetzes in der VPC ein.

  • <ADDITIONAL_COMPUTE_NODE_POLICY>— Geben Sie den Namen der IAM-Richtlinie ein, die Sie für den Compute-Knoten erstellt haben.

AWS-Administrator

Erstellen Sie den -Cluster.

Geben Sie in der ParallelCluster AWS-CLI den folgenden Befehl ein. Dadurch wird die CloudFormation Vorlage bereitgestellt und der Cluster erstellt. Weitere Informationen zu diesem Befehl finden Sie unter pcluster create-cluster in der AWS-Dokumentation. ParallelCluster

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

Überwachen Sie die Clustererstellung.

Geben Sie den folgenden Befehl ein, um die Clustererstellung zu überwachen. Weitere Informationen zu diesem Befehl finden Sie unter pcluster describe-cluster in der AWS-Dokumentation. ParallelCluster

pcluster describe-cluster -n <cluster_name>
AWS-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Zugang zum Grafana-Portal.

  1. Geben Sie den folgenden Befehl ein, um die öffentliche IP-Adresse des Hauptknotens abzurufen.

    pcluster describe-cluster -n <cluster_name> --query headNode.publicIpAddress
  2. Navigieren Sie in einem Webbrowser zur folgenden URL, um auf das Grafana-Dashboard zuzugreifen.

    https://<head_node_public_ip_address>

  3. Wählen Sie auf der Grafana-Startseite das 4-eckige Dashboard-Symbol im linken Menü und wählen Sie dann Allgemein. Dies zeigt eine Liste der konfigurierten Dashboards. Die folgenden Dashboards sind in Grafana verfügbar:

    • Cluster-Kosten — Enthält Informationen zu den Kosten des Clusters

    • Cluster-Protokolle — Enthält Informationen zu den Protokollen des Clusters

    • Compute-Knotendetails — Enthält Informationen zur Nutzungsstatistik der Rechenknoten

    • Liste der Rechenknoten — Enthält die Liste der Rechenknoten des Clusters

    • GPU-Knoten — Enthält Informationen zur Nutzungsstatistik der GPU-Knoten

    • Jobdetails — Enthält Informationen über die Auslastung der Jobressourcen

    • Details zum Hauptknoten — Enthält Informationen zur Nutzungsstatistik des Hauptknotens

    • ParallelCluster Zusammenfassung — Enthält Informationen zur Cluster-Nutzung

AWS-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Löschen Sie den Cluster.

Geben Sie den folgenden Befehl ein, um den Cluster zu löschen. Weitere Informationen zu diesem Befehl finden Sie unter pcluster delete-cluster in der AWS-Dokumentation. ParallelCluster

pcluster delete-cluster -n <cluster_name>
AWS-Administrator

Löschen Sie die IAM-Richtlinien.

Löschen Sie die Richtlinien, die Sie für den Hauptknoten und den Rechenknoten erstellt haben. Weitere Informationen zum Löschen von Richtlinien finden Sie unter Löschen von IAM-Richtlinien in der IAM-Dokumentation.

AWS-Administrator

Löschen Sie die Sicherheitsgruppe und die Sicherheitsregel.

Löschen Sie die Sicherheitsgruppe, die Sie für den Hauptknoten erstellt haben. Weitere Informationen finden Sie unter Löschen von Sicherheitsgruppenregeln und Löschen einer Sicherheitsgruppe in der Amazon VPC-Dokumentation.

AWS-Administrator

Löschen Sie den S3-Bucket.

Löschen Sie den S3-Bucket, den Sie zum Speichern der Konfigurationsskripten erstellt haben. Weitere Informationen finden Sie unter Löschen eines Buckets in der Amazon S3 S3-Dokumentation.

Allgemeines AWS

Fehlerbehebung

ProblemLösung

Auf den Hauptknoten kann im Browser nicht zugegriffen werden.

Überprüfen Sie die Sicherheitsgruppe und stellen Sie sicher, dass der eingehende Port 443 geöffnet ist.

Grafana öffnet nicht.

Suchen Sie auf dem Hauptknoten im Container-Log nachdocker logs Grafana.

Einige Metriken enthalten keine Daten.

Überprüfen Sie auf dem Hauptknoten die Container-Logs aller Container.

Zugehörige Ressourcen

AWS-Dokumentation

Andere AWS-Ressourcen

Sonstige Ressourcen