View a markdown version of this page

Scheduler loggt sich in AWS PCS ein - AWS PCS

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.

Scheduler loggt sich in AWS PCS ein

Sie können AWS PCS so konfigurieren, dass detaillierte Protokolldaten von Ihrem Cluster-Scheduler an Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) und Amazon Data Firehose gesendet werden. Dies kann bei der Überwachung und Fehlerbehebung hilfreich sein.

AWS PCS übermittelt Logs von den folgenden Slurm-Daemons über den PCS_SCHEDULER_LOGS Protokolltyp:

  • slurmctld— Der Slurm-Controller-Daemon. Verfügbar für alle unterstützten Slurm-Versionen.

  • slurmdbd— Der Slurm-Datenbank-Daemon. Verfügbar für Slurm 24.11 und höher.

  • slurmrestd— Der Slurm-REST-API-Daemon. Verfügbar für Slurm 25.05 und höher.

Cluster, für die der PCS_SCHEDULER_LOGS Versand bereits konfiguriert ist, beginnen automatisch mit dem Empfang slurmdbd und slurmrestd protokollieren, wenn sie eine unterstützte Slurm-Version ausführen. Es ist keine zusätzliche Konfiguration erforderlich.

Voraussetzungen

Der IAM-Principal, der den AWS PCS-Cluster verwaltet, muss die pcs:AllowVendedLogDeliveryForResource Aktion zulassen.

Die folgende Beispiel-IAM-Richtlinie gewährt die erforderlichen Berechtigungen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "PcsAllowVendedLogsDelivery", "Effect": "Allow", "Action": ["pcs:AllowVendedLogDeliveryForResource"], "Resource": [ "arn:aws:pcs:*::cluster/*" ] } ] }

Richten Sie Scheduler-Protokolle ein

Sie können Scheduler-Protokolle für Ihren AWS PCS-Cluster mit dem AWS-Managementkonsole oder einrichten. AWS CLI

AWS-Managementkonsole
Um Scheduler-Logs mit der Konsole einzurichten
  1. Öffnen Sie die AWS PCS-Konsole.

  2. Klicken Sie im Navigationsbereich auf Cluster.

  3. Wählen Sie den Cluster aus, zu dem Sie Scheduler-Logs hinzufügen möchten.

  4. Wählen Sie auf der Seite mit den Cluster-Details die Registerkarte Logs aus.

  5. Wählen Sie unter Scheduler Logs die Option Hinzufügen aus, um bis zu 3 Log-Lieferziele aus CloudWatch Logs, Amazon S3 und Firehose hinzuzufügen.

  6. Wählen Sie Protokollzustellungen aktualisieren aus.

AWS CLI
Um Scheduler-Logs einzurichten mit AWS CLI
  1. Erstellen Sie ein Ziel für die Protokollzustellung:

    aws logs put-delivery-destination --region region \ --name pcs-logs-destination \ --delivery-destination-configuration \ destinationResourceArn=resource-arn

    Ersetzen Sie:

    • region— Der AWS-Region Ort, an dem Sie das Ziel erstellen möchten, z. B. us-east-1

    • pcs-logs-destination— Ein Name für das Ziel

    • resource-arn— Der Amazon-Ressourcenname (ARN) einer CloudWatch Logs-Protokollgruppe, eines S3-Buckets oder eines Firehose-Lieferstreams.

    Weitere Informationen finden Sie PutDeliveryDestinationin der Amazon CloudWatch Logs API-Referenz.

  2. Legen Sie den PCS-Cluster als Quelle für die Protokollzustellung fest:

    aws logs put-delivery-source --region region \ --name cluster-logs-source-name \ --resource-arn cluster-arn \ --log-type PCS_SCHEDULER_LOGS

    Ersetzen Sie:

    • region— Die AWS-Region Ihres Clusters, wie us-east-1

    • cluster-logs-source-name— Ein Name für die Quelle

    • cluster-arn— der ARN Ihres AWS PCS-Clusters

    Weitere Informationen finden Sie PutDeliverySourcein der Amazon CloudWatch Logs API-Referenz.

  3. Connect die Lieferquelle mit dem Lieferziel:

    aws logs create-delivery --region region \ --delivery-source-name cluster-logs-source \ --delivery-destination-arn destination-arn

    Ersetzen Sie:

    • region— Die AWS-Region, wie us-east-1

    • cluster-logs-source— Der Name Ihrer Lieferquelle

    • destination-arn— Die ARN Ihres Lieferziels

    Weitere Informationen finden Sie CreateDeliveryin der Amazon CloudWatch Logs API-Referenz.

Pfade und Namen von Log-Streams im Scheduler

Der Pfad und der Name der AWS PCS-Scheduler-Protokolle hängen vom Zieltyp ab.

Der ${log_name} Wert in den folgenden Pfaden istslurmctld, oder slurmdbdslurmrestd, abhängig vom Daemon, der das Protokoll erstellt hat.

  • CloudWatch Protokolle

    • Ein CloudWatch Logs-Stream folgt dieser Namenskonvention.

      AWSLogs/PCS/${cluster_id}/${log_name}_${scheduler_major_version}.log
      Beispiel
      AWSLogs/PCS/abcdef0123/slurmctld_25.11.log
      AWSLogs/PCS/abcdef0123/slurmdbd_24.11.log
      AWSLogs/PCS/abcdef0123/slurmrestd_25.05.log
  • S3 bucket

    • Ein S3-Bucket-Ausgabepfad folgt dieser Namenskonvention:

      AWSLogs/${account-id}/PCS/${region}/${cluster_id}/${log_name}/${scheduler_major_version}/yyyy/MM/dd/HH/
      Beispiel
      AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmctld/25.11/2024/09/01/00/
      AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmdbd/24.11/2024/09/01/00/
      AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmrestd/25.05/2024/09/01/00/
    • Ein S3-Objektname folgt dieser Konvention:

      PCS_${log_name}_${scheduler_major_version}_#{expr date 'event_timestamp', format: "yyyy-MM-dd-HH"}_${cluster_id}_${hash}.log
      Beispiel
      PCS_slurmctld_25.11_2024-09-01-00_abcdef0123_0123abcdef.log

Beispiel für Scheduler-Protokolldatensätze

AWS Die PCS-Scheduler-Protokolle sind strukturiert. Sie enthalten Felder wie die Cluster-ID, den Scheduler-Typ, Haupt- und Patch-Versionen sowie die Protokollnachricht, die vom Slurm-Daemon-Prozess ausgegeben wird. Die node_type Felder log_name und identifizieren, welcher Daemon das Protokoll erstellt hat.

Das folgende Beispiel zeigt einen slurmctld Protokolleintrag.

{
    "resource_id": "s3431v9rx2",
    "resource_type": "PCS_CLUSTER",
    "event_timestamp": 1721230979,
    "log_level": "info",
    "log_name": "slurmctld",
    "scheduler_type": "slurm",
    "scheduler_major_version": "25.11",
    "scheduler_patch_version": "2",
    "node_type": "controller_primary",
    "message": "[2024-07-17T15:42:58.614+00:00] Running as primary controller\n"
}

Das folgende Beispiel zeigt einen slurmdbd Protokolldatensatz (Slurm 24.11 und höher).

{
    "resource_id": "pcs_bu93qsds2j",
    "resource_type": "PCS_CLUSTER",
    "event_timestamp": 1774485082772,
    "log_level": "info",
    "log_name": "slurmdbd",
    "scheduler_type": "slurm",
    "scheduler_major_version": "25.11",
    "scheduler_patch_version": "2",
    "node_type": "slurmdbd_primary",
    "message": "[2026-03-26T00:31:22.772+00:00] mysql_common: storage token refreshed"
}

Das folgende Beispiel zeigt einen slurmrestd Protokolldatensatz (Slurm 25.05 und höher).

{
    "resource_id": "pcs_bu93qsds2j",
    "resource_type": "PCS_CLUSTER",
    "event_timestamp": 1774485082772,
    "log_level": "info",
    "log_name": "slurmrestd",
    "scheduler_type": "slurm",
    "scheduler_major_version": "25.05",
    "scheduler_patch_version": "3",
    "node_type": "slurmrestd_primary",
    "message": "[2026-03-26T00:31:22.772+00:00] slurmrestd: Listening on port 6820\n"
}