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.

Voraussetzungen

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

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

{ "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 Management Console oder einrichten. AWS CLI

AWS Management Console
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 dem 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

    Ersetze:

    • 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

    Ersetze:

    • region— Der 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

    Ersetze:

    • 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.

  • CloudWatch Protokolle

    • Ein CloudWatch Logs-Stream folgt dieser Namenskonvention.

      AWSLogs/PCS/${cluster_id}/${log_name}_${scheduler_major_version}.log
      Beispiel
      AWSLogs/PCS/abcdef0123/slurmctld_24.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/24.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_24.05_2024-09-01-00_abcdef0123_0123abcdef.log

Beispiel für einen Scheduler-Protokolleintrag

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-Controller-Prozess ausgegeben wird. Ein Beispiel.

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