

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Le planificateur se connecte à PCS AWS
<a name="monitoring_scheduler-logs"></a>

Vous pouvez configurer AWS PCS pour envoyer des données de journalisation détaillées depuis votre planificateur de cluster à Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) et Amazon Data Firehose. Cela peut faciliter la surveillance et le dépannage.

**Contents**
+ [Conditions préalables](#monitoring_scheduler-logs_prereqs)
+ [Configurer les journaux du planificateur](#monitoring_scheduler-logs_setup)
+ [Le planificateur enregistre les chemins et les noms des flux](#monitoring_scheduler-logs_paths)
+ [Exemple d'enregistrement du journal du planificateur](#monitoring_scheduler-logs_record)

## Conditions préalables
<a name="monitoring_scheduler-logs_prereqs"></a>

Le principal IAM qui gère le cluster AWS PCS doit autoriser l'`pcs:AllowVendedLogDeliveryForResource`action.

L'exemple de politique IAM suivant accorde les autorisations requises.

------
#### [ JSON ]

****  

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

------

## Configurer les journaux du planificateur
<a name="monitoring_scheduler-logs_setup"></a>

Vous pouvez configurer les journaux du planificateur pour votre cluster AWS PCS à l'aide du AWS Management Console ou. AWS CLI

------
#### [ AWS Management Console ]

**Pour configurer les journaux du planificateur avec la console**

1. Ouvrez la [console AWS PCS](https://console.aws.amazon.com/pcs).

1. Dans le panneau de navigation, choisissez **Clusters**.

1. Choisissez le cluster dans lequel vous souhaitez ajouter les journaux du planificateur.

1. Sur la page des détails du cluster, choisissez l'onglet **Logs**.

1. Sous **Scheduler Logs**, choisissez **Ajouter** pour ajouter jusqu'à 3 destinations de livraison de CloudWatch journaux parmi Logs, Amazon S3 et Firehose.

1. Choisissez **Mettre à jour les livraisons de journaux**.

------
#### [ AWS CLI ]

**Pour configurer les journaux du planificateur à l'aide du AWS CLI**

1. Créez une destination de livraison du journal :

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

   Remplacez :
   + *region*— L' Région AWS endroit où vous souhaitez créer la destination, tel que `us-east-1`
   + *pcs-logs-destination*— Un nom pour la destination
   + *resource-arn*— Le nom de ressource Amazon (ARN) d'un groupe de CloudWatch journaux Logs, d'un compartiment S3 ou d'un flux de diffusion Firehose.

   Pour plus d'informations, consultez [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)le manuel *Amazon CloudWatch Logs API Reference*.

1. Définissez le cluster PCS comme source de livraison de journaux :

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

   Remplacez :
   + *region*— Le Région AWS nom de votre cluster, tel que `us-east-1`
   + *cluster-logs-source-name*— Un nom pour la source
   + *cluster-arn*— l'ARN de votre cluster AWS PCS

   Pour plus d'informations, consultez [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)le manuel *Amazon CloudWatch Logs API Reference*.

1. Connectez la source de livraison à la destination de livraison :

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

   Remplacez :
   + *region*— Le Région AWS, tel que `us-east-1`
   + *cluster-logs-source*— Le nom de votre source de livraison
   + *destination-arn*— L'ARN de votre destination de livraison

   Pour plus d'informations, consultez [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)le manuel *Amazon CloudWatch Logs API Reference*.

------

## Le planificateur enregistre les chemins et les noms des flux
<a name="monitoring_scheduler-logs_paths"></a>

 Le chemin et le nom des journaux du planificateur AWS PCS dépendent du type de destination. 
+ **CloudWatch Journaux**
  + Un flux CloudWatch Logs suit cette convention de dénomination.

    ```
    AWSLogs/PCS/${cluster_id}/${log_name}_${scheduler_major_version}.log
    ```  
**Example**  

    ```
    AWSLogs/PCS/abcdef0123/slurmctld_24.05.log
    ```
+ **Compartiment S3**
  + Le chemin de sortie d'un compartiment S3 suit cette convention de dénomination :

    ```
    AWSLogs/${account-id}/PCS/${region}/${cluster_id}/${log_name}/${scheduler_major_version}/yyyy/MM/dd/HH/
    ```  
**Example**  

    ```
    AWSLogs/111111111111/PCS/us-east-2/abcdef0123/slurmctld/24.05/2024/09/01/00.
    ```
  + Le nom d'un objet S3 suit cette convention :

    ```
    PCS_${log_name}_${scheduler_major_version}_#{expr date 'event_timestamp', format: "yyyy-MM-dd-HH"}_${cluster_id}_${hash}.log
    ```  
**Example**  

    ```
    PCS_slurmctld_24.05_2024-09-01-00_abcdef0123_0123abcdef.log
    ```

## Exemple d'enregistrement du journal du planificateur
<a name="monitoring_scheduler-logs_record"></a>

AWS Les journaux du planificateur PCS sont structurés. Ils incluent des champs tels que l'identifiant du cluster, le type de planificateur, les versions majeures et de correctif, en plus du message de journal émis par le processus du contrôleur Slurm. Voici un exemple. 

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