

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Registrazione e monitoraggio per AWS PCS
<a name="monitoring-overview"></a>

Il monitoraggio è una parte importante per mantenere l'affidabilità, la disponibilità e le prestazioni dei AWS PCS e delle altre risorse AWS. AWS fornisce i seguenti strumenti di monitoraggio per monitorare i AWS PCS, segnalare quando qualcosa non va e intraprendere azioni automatiche quando necessario:
+ *Amazon CloudWatch* monitora AWS le tue risorse e le applicazioni su cui esegui AWS in tempo reale. È possibile raccogliere e tenere traccia dei parametri, creare pannelli di controllo personalizzati e impostare allarmi per inviare una notifica o intraprendere azioni quando un parametro specificato raggiunge una determinata soglia. Ad esempio, puoi tenere CloudWatch traccia dell'utilizzo della CPU o di altri parametri delle tue istanze Amazon EC2 e avviare automaticamente nuove istanze quando necessario. Per ulteriori informazioni, consulta la [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).
+ *Amazon CloudWatch Logs* ti consente di monitorare, archiviare e accedere ai tuoi file di log da istanze Amazon EC2 e altre CloudTrail fonti. CloudWatch I log possono monitorare le informazioni nei file di registro e avvisarti quando vengono raggiunte determinate soglie. Puoi inoltre archiviare i dati del log in storage estremamente durevole. Per ulteriori informazioni, consulta la [Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/).
+ *AWS CloudTrail*acquisisce le chiamate API e gli eventi correlati effettuati da o per conto del tuo AWS account e invia i file di log a un bucket Amazon S3 da te specificato. Puoi identificare quali utenti e account hanno chiamato AWS, l'indirizzo IP di origine da cui sono state effettuate le chiamate e quando sono avvenute le chiamate. Per ulteriori informazioni, consulta la [Guida per l'utente AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

# Registri di completamento dei lavori in AWS PCS
<a name="monitoring_job-completion-logs"></a>

I log di completamento dei lavori forniscono dettagli chiave sui lavori del AWS Parallel Computing Service (AWS PCS) una volta completati, senza costi aggiuntivi. Puoi utilizzare altri AWS servizi per accedere ed elaborare i tuoi dati di log, come Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) e Amazon Data Firehose AWS ; PCS registra i metadati sui tuoi lavori, come i seguenti.
+ Job ID e nome
+ Informazioni su utenti e gruppi
+ Stato del lavoro (ad esempio`COMPLETED`,`FAILED`,`CANCELLED`)
+ Partizione utilizzata
+ Limiti di tempo
+ Orari di inizio, fine, invio e tempi di idoneità
+ Elenco e conteggio dei nodi
+ Numero di processori
+ Directory di lavoro
+ Utilizzo delle risorse (CPU, memoria)
+ Codici di uscita
+ Dettagli dei nodi (nomi, istanze IDs, tipi di istanza)

**Contents**
+ [Prerequisiti](#monitoring_job-completion-logs_prereqs)
+ [Imposta i registri di completamento dei lavori](#monitoring_job-completion-logs_setup)
+ [Come trovare i log di completamento dei lavori](#monitoring_job-completion-logs_access)
  + [CloudWatch Registri](#monitoring_job-completion-logs_access_cloudwatch)
  + [Simple Storage Service (Amazon S3)](#monitoring_job-completion-logs_access_s3)
+ [Campi del registro di completamento del Job](#monitoring_job-completion-logs_fields)
+ [Esempi di registri di completamento dei lavori](#monitoring_job-completion-logs_example)

## Prerequisiti
<a name="monitoring_job-completion-logs_prereqs"></a>

Il principale IAM che gestisce il cluster AWS PCS deve consentire l'`pcs:AllowVendedLogDeliveryForResource`azione.

Il seguente esempio di politica IAM concede le autorizzazioni richieste.

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

****  

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

------

## Imposta i registri di completamento dei lavori
<a name="monitoring_job-completion-logs_setup"></a>

È possibile configurare i registri di completamento dei lavori per il cluster AWS PCS con o. Console di gestione AWS AWS CLI

------
#### [ Console di gestione AWS ]

**Per configurare i registri di completamento dei lavori con la console**

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

1. Nel pannello di navigazione scegliere **Cluster**.

1. Scegli il cluster in cui desideri aggiungere i registri di completamento dei lavori.

1. Nella pagina dei dettagli del cluster, scegli la scheda **Registri.**

1. In **Job Completion Logs**, scegli **Aggiungi** per aggiungere fino a 3 destinazioni di consegna dei log tra CloudWatch Logs, Amazon S3 e Firehose.

1. **Scegli Aggiorna le consegne dei log.**

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

**Per impostare i registri di completamento dei lavori con il AWS CLI**

1. Crea una destinazione di consegna dei log:

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

   Sostituire:
   + *region*— Il Regione AWS luogo in cui si desidera creare la destinazione, ad esempio `us-east-1`
   + *pcs-logs-destination*— Un nome per la destinazione
   + *resource-arn*— L'Amazon Resource Name (ARN) di un gruppo di log CloudWatch Logs, un bucket S3 o un flusso di distribuzione Firehose.

   Per ulteriori informazioni, [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)consulta *Amazon CloudWatch Logs API Reference.*

1. Imposta il cluster PCS come fonte di consegna dei log:

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

   Sostituire:
   + *region*— Il Regione AWS nome del tuo cluster, ad esempio `us-east-1`
   + *cluster-logs-source-name*— Un nome per la fonte
   + *cluster-arn*— l'ARN del tuo AWS cluster PCS

   Per ulteriori informazioni, [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)consulta *Amazon CloudWatch Logs API Reference.*

1. Connect l'origine di consegna alla destinazione di consegna:

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

   Sostituire:
   + *region*— I Regione AWS, ad esempio `us-east-1`
   + *cluster-logs-source*— Il nome della fonte di consegna
   + *destination-arn*— L'ARN della destinazione di consegna

   Per ulteriori informazioni, [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)consulta *Amazon CloudWatch Logs API Reference.*

------

## Come trovare i log di completamento dei lavori
<a name="monitoring_job-completion-logs_access"></a>

Puoi configurare le destinazioni dei log in CloudWatch Logs e Amazon S3. AWS PCS utilizza i seguenti nomi di percorso e nomi di file strutturati.

### CloudWatch Registri
<a name="monitoring_job-completion-logs_access_cloudwatch"></a>

AWS PCS utilizza il seguente formato di nome per il flusso CloudWatch Logs:

```
AWSLogs/PCS/cluster-id/jobcomp.log
```

Ad esempio: `AWSLogs/PCS/pcs_abc123de45/jobcomp.log`

### Simple Storage Service (Amazon S3)
<a name="monitoring_job-completion-logs_access_s3"></a>

AWS PCS utilizza il seguente formato di nome per il percorso S3:

```
AWSLogs/account-id/PCS/region/cluster-id/jobcomp/year/month/day/hour/
```

Ad esempio: `AWSLogs/111122223333/PCS/us-east-1/pcs_abc123de45/jobcomp/2025/06/19/11/`

AWS PCS utilizza il seguente formato di nome per i file di registro:

```
PCS_jobcomp_year-month-day-hour_cluster-id_random-id.log.gz
```

Ad esempio: `PCS_jobcomp_2025-06-19-11_pcs_abc123de45_04be080b.log.gz`

## Campi del registro di completamento del Job
<a name="monitoring_job-completion-logs_fields"></a>

AWS PCS scrive i dati del registro di completamento del lavoro come oggetti JSON. Il contenitore JSON `jobcomp` contiene i dettagli del lavoro. La tabella seguente descrive i campi all'interno del `jobcomp` contenitore. Alcuni campi sono presenti solo in circostanze specifiche, ad esempio per lavori di matrice o lavori eterogenei. 


**Campi del registro di completamento del Job**  

| Name | Valore di esempio | Richiesto | Note | 
| --- | --- | --- | --- | 
| job\$1id | 11 | sì | Sempre presenti con valore | 
| user | "root" | sì | Sempre presente con valore | 
| user\$1id | 0 | sì | Sempre presente con valore | 
| group | "root" | sì | Sempre presente con valore | 
| group\$1id | 0 | sì | Sempre presente con valore | 
| name | "wrap" | sì | Sempre presente con valore | 
| job\$1state | "COMPLETED" | sì | Sempre presente con valore | 
| partition | "Hydra-MpiQueue-abcdef01-7" | sì | Sempre presente con valore | 
| time\$1limit | "UNLIMITED" | sì | Sempre presente, ma potrebbe esserlo "UNLIMITED" | 
| start\$1time | "2025-06-19T10:58:57" | sì | Sempre presente, però potrebbe esserlo "Unknown" | 
| end\$1time | "2025-06-19T10:58:57" | sì | Sempre presente, però potrebbe esserlo "Unknown" | 
| node\$1list | "Hydra-MpiNG-abcdef01-2345-1" | sì | Sempre presente con valore | 
| node\$1cnt | 1 | sì | Sempre presente con valore | 
| proc\$1cnt | 1 | sì | Sempre presente con valore | 
| work\$1dir | "/root" | sì | Sempre presente, ma potrebbe esserlo "Unknown" | 
| reservation\$1name | "weekly\$1maintenance" | sì | Sempre presente, ma potrebbe essere una stringa vuota "" | 
| tres.cpu | 1 | sì | Sempre presente con valore | 
| tres.mem.val | 600 | sì | Sempre presente con valore | 
| tres.mem.unit | "M" | sì | Può essere "M" o "bb" | 
| tres.node | 1 | sì | Sempre presente con valore | 
| tres.billing | 1 | sì | Sempre presente con valore | 
| account | "finance" | sì | Sempre presente, ma potrebbe essere una stringa vuota "" | 
| qos | "normal" | sì | Sempre presente, ma potrebbe essere una stringa vuota "" | 
| wc\$1key | "project\$11" | sì | Sempre presente, ma potrebbe essere una stringa vuota "" | 
| cluster | "unknown" | sì | Sempre presente, ma potrebbe esserlo "unknown" | 
| submit\$1time | "2025-06-19T10:55:46" | sì | Sempre presente, però potrebbe esserlo "Unknown" | 
| eligible\$1time | "2025-06-19T10:55:46" | sì | Sempre presente, però potrebbe esserlo "Unknown" | 
| array\$1job\$1id | 12 | no | Presente solo se il lavoro è un lavoro di matrice | 
| array\$1task\$1id | 1 | no | Presente solo se il lavoro è un lavoro di matrice | 
| het\$1job\$1id | 10 | no | Presente solo se il lavoro è eterogeneo | 
| het\$1job\$1offset | 0 | no | Presente solo se la mansione è eterogenea | 
| derived\$1exit\$1code\$1status | 0 | sì | Sempre presente con valore | 
| derived\$1exit\$1code\$1signal | 0 | sì | Sempre presente con valore | 
| exit\$1code\$1status | 0 | sì | Sempre presente con valore | 
| exit\$1code\$1signal | 0 | sì | Sempre presente con valore | 
| node\$1details[0].name | "Hydra-MpiNG-abcdef01-2345-1" | no | Sempre presente, ma node\$1details potrebbe esserlo "[]" | 
| node\$1details[0].instance\$1id | "i-0abcdef01234567a" | no | Sempre presente, però node\$1details potrebbe esserlo "[]" | 
| node\$1details[0].instance\$1type | "t4g.micro" | no | Sempre presente, però node\$1details potrebbe esserlo "[]" | 

## Esempi di registri di completamento dei lavori
<a name="monitoring_job-completion-logs_example"></a>

Gli esempi seguenti mostrano i registri di completamento dei lavori per vari tipi e stati dei lavori:

```
{ "jobcomp": { "job_id": 1, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T16:32:57", "end_time": "2025-06-19T16:33:03", "node_list": "Hydra-MpiNG-abcdef01-2345-[1-2]", "node_cnt": 2, "proc_cnt": 2, "work_dir": "/usr/bin", "reservation_name": "", "tres": { "cpu": 2, "mem": { "val": 1944, "unit": "M" }, "node": 2, "billing": 2 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T16:29:40", "eligible_time": "2025-06-19T16:29:41", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc123def45678", "instance_type": "t4g.micro" }, { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def456abc78901", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 2, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T16:33:13", "end_time": "2025-06-19T16:33:14", "node_list": "Hydra-MpiNG-abcdef01-2345-[1-2]", "node_cnt": 2, "proc_cnt": 2, "work_dir": "/usr/bin", "reservation_name": "", "tres": { "cpu": 2, "mem": { "val": 1944, "unit": "M" }, "node": 2, "billing": 2 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T16:33:13", "eligible_time": "2025-06-19T16:33:13", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc123def45678", "instance_type": "t4g.micro" }, { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def456abc78901", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 3, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T22:58:57", "end_time": "2025-06-19T22:58:57", "node_list": "Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 972, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T22:55:46", "eligible_time": "2025-06-19T22:55:46", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 4, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "525600", "start_time": "2025-06-19T23:04:27", "end_time": "2025-06-19T23:04:27", "node_list": "Hydra-MpiNG-abcdef01-2345-[1-2]", "node_cnt": 2, "proc_cnt": 2, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 2, "mem": { "val": 1944, "unit": "M" }, "node": 2, "billing": 2 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:01:38", "eligible_time": "2025-06-19T23:01:38", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" }, { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def345abc67890", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 5, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "FAILED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:09:00", "end_time": "2025-06-19T23:09:00", "node_list": "(null)", "node_cnt": 0, "proc_cnt": 0, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 1, "unit": "G" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:09:00", "eligible_time": "2025-06-19T23:09:00", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 1, "node_details": [] } }
{ "jobcomp": { "job_id": 6, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "CANCELLED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:09:36", "end_time": "2025-06-19T23:09:36", "node_list": "(null)", "node_cnt": 0, "proc_cnt": 0, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:09:35", "eligible_time": "2025-06-19T23:09:36", "het_job_id": 6, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 1, "node_details": [] } }
{ "jobcomp": { "job_id": 7, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "CANCELLED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:10:03", "end_time": "2025-06-19T23:10:03", "node_list": "(null)", "node_cnt": 0, "proc_cnt": 0, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:10:03", "eligible_time": "2025-06-19T23:10:03", "het_job_id": 7, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 1, "node_details": [] } }
{ "jobcomp": { "job_id": 8, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:11:24", "end_time": "2025-06-19T23:11:24", "node_list": "Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:11:23", "eligible_time": "2025-06-19T23:11:23", "het_job_id": 8, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 9, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:11:24", "end_time": "2025-06-19T23:11:24", "node_list": "Hydra-MpiNG-abcdef01-2345-2", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:11:23", "eligible_time": "2025-06-19T23:11:23", "het_job_id": 8, "het_job_offset": 1, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def345abc67890", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 10, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:12:24", "end_time": "2025-06-19T23:12:24", "node_list":"Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:12:14", "eligible_time": "2025-06-19T23:12:14", "het_job_id": 10, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 11, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:12:24", "end_time": "2025-06-19T23:12:24", "node_list":"Hydra-MpiNG-abcdef01-2345-2", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 600, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:12:14", "eligible_time": "2025-06-19T23:12:14", "het_job_id": 10, "het_job_offset": 1, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def345abc67890", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 13, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:47:57", "end_time": "2025-06-19T23:47:58", "node_list":"Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 972, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:43:56", "eligible_time": "2025-06-19T23:43:56" , "array_job_id": 12, "array_task_id": 1, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc345def67890", "instance_type": "t4g.micro" } ] } }
{ "jobcomp": { "job_id": 12, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:47:58", "end_time": "2025-06-19T23:47:58", "node_list":"Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 972, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:43:56", "eligible_time": "2025-06-19T23:43:56" , "array_job_id": 12, "array_task_id": 2, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc345def67890", "instance_type": "t4g.micro" } ] } }
```

# Registri dell'utilità di pianificazione in PCS AWS
<a name="monitoring_scheduler-logs"></a>

Puoi configurare AWS PCS per inviare dati di registrazione dettagliati dal tuo programma di pianificazione del cluster ad Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) e Amazon Data Firehose. Questo può aiutare nel monitoraggio e nella risoluzione dei problemi.

**Contents**
+ [Prerequisiti](#monitoring_scheduler-logs_prereqs)
+ [Configura i registri dello scheduler](#monitoring_scheduler-logs_setup)
+ [I percorsi e i nomi dei flussi di log di Scheduler](#monitoring_scheduler-logs_paths)
+ [Esempio di record di log dello scheduler](#monitoring_scheduler-logs_record)

## Prerequisiti
<a name="monitoring_scheduler-logs_prereqs"></a>

Il responsabile IAM che gestisce il cluster AWS PCS deve consentire l'`pcs:AllowVendedLogDeliveryForResource`azione.

Il seguente esempio di politica IAM concede le autorizzazioni richieste.

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

****  

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

------

## Configura i registri dello scheduler
<a name="monitoring_scheduler-logs_setup"></a>

È possibile configurare i registri dello scheduler per il cluster AWS PCS con o. Console di gestione AWS AWS CLI

------
#### [ Console di gestione AWS ]

**Per configurare i log dello scheduler con la console**

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

1. Nel pannello di navigazione scegliere **Cluster**.

1. Scegli il cluster in cui desideri aggiungere i log dello scheduler.

1. Nella pagina dei dettagli del cluster, scegli la scheda **Registri**.

1. In **Scheduler Logs**, scegli **Aggiungi** per aggiungere fino a 3 destinazioni di consegna dei log tra CloudWatch Logs, Amazon S3 e Firehose.

1. **Scegli Aggiorna le consegne dei log.**

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

**Per configurare i registri dello scheduler con AWS CLI**

1. Crea una destinazione di consegna dei log:

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

   Sostituire:
   + *region*— Il Regione AWS luogo in cui si desidera creare la destinazione, ad esempio `us-east-1`
   + *pcs-logs-destination*— Un nome per la destinazione
   + *resource-arn*— L'Amazon Resource Name (ARN) di un gruppo di log CloudWatch Logs, un bucket S3 o un flusso di distribuzione Firehose.

   Per ulteriori informazioni, [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)consulta *Amazon CloudWatch Logs API Reference.*

1. Imposta il cluster PCS come fonte di consegna dei log:

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

   Sostituire:
   + *region*— Il Regione AWS nome del tuo cluster, ad esempio `us-east-1`
   + *cluster-logs-source-name*— Un nome per la fonte
   + *cluster-arn*— l'ARN del tuo AWS cluster PCS

   Per ulteriori informazioni, [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)consulta *Amazon CloudWatch Logs API Reference.*

1. Connect l'origine di consegna alla destinazione di consegna:

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

   Sostituire:
   + *region*— I Regione AWS, ad esempio `us-east-1`
   + *cluster-logs-source*— Il nome della fonte di consegna
   + *destination-arn*— L'ARN della destinazione di consegna

   Per ulteriori informazioni, [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)consulta *Amazon CloudWatch Logs API Reference.*

------

## I percorsi e i nomi dei flussi di log di Scheduler
<a name="monitoring_scheduler-logs_paths"></a>

 Il percorso e il nome dei log dello scheduler AWS PCS dipendono dal tipo di destinazione. 
+ **CloudWatch Log**
  + Uno stream CloudWatch Logs segue questa convenzione di denominazione.

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

    ```
    AWSLogs/PCS/abcdef0123/slurmctld_24.05.log
    ```
+ **Bucket S3**
  + Un percorso di output del bucket S3 segue questa convenzione di denominazione:

    ```
    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.
    ```
  + Il nome di un oggetto S3 segue questa convenzione:

    ```
    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
    ```

## Esempio di record di log dello scheduler
<a name="monitoring_scheduler-logs_record"></a>

AWS I log dello scheduler PCS sono strutturati. Includono campi come l'identificatore del cluster, il tipo di scheduler, le versioni principali e di patch, oltre al messaggio di registro emesso dal processo del controller Slurm. Ecco un esempio. 

```
{
    "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"
}
```

# Servizio di monitoraggio del calcolo AWS parallelo con Amazon CloudWatch
<a name="monitoring-cloudwatch"></a>

Amazon CloudWatch fornisce il monitoraggio dello stato e delle prestazioni del cluster AWS Parallel Computing Service (AWS PCS) raccogliendo parametri dal cluster a intervalli regolari. Queste metriche vengono mantenute, consentendoti di accedere ai dati storici e ottenere informazioni dettagliate sulle prestazioni del cluster nel tempo.

CloudWatch consente inoltre di monitorare le istanze EC2 lanciate da AWS PCS per soddisfare i requisiti di scalabilità. Sebbene sia possibile controllare i log sulle istanze in esecuzione, le CloudWatch metriche e i dati di registrazione vengono in genere eliminati una volta terminate le istanze. Tuttavia, puoi configurare l' CloudWatch agente sulle istanze utilizzando un modello di avvio EC2 per mantenere le metriche e i log anche dopo la chiusura dell'istanza, abilitando il monitoraggio e l'analisi a lungo termine.

Esplora gli argomenti di questa sezione per saperne di più sul monitoraggio tramite PCS. AWS CloudWatch

**Topics**
+ [Monitoraggio delle metriche AWS PCS tramite CloudWatch](monitoring-cloudwatch_metrics.md)
+ [Monitoraggio delle istanze AWS PCS tramite Amazon CloudWatch](monitoring-cloudwatch_instances.md)

# Monitoraggio delle metriche AWS PCS tramite CloudWatch
<a name="monitoring-cloudwatch_metrics"></a>

Puoi monitorare lo stato del cluster AWS PCS utilizzando Amazon CloudWatch, che raccoglie i dati dal cluster e li trasforma in metriche quasi in tempo reale. Queste statistiche vengono conservate per un periodo di 15 mesi, in modo da poter accedere alle informazioni storiche e avere una prospettiva migliore sulle prestazioni del cluster. Le metriche del cluster vengono inviate a CloudWatch intervalli di 1 minuto. Per ulteriori informazioni su CloudWatch, consulta [What Is Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) nella *Amazon CloudWatch User Guide*.

AWS PCS pubblica le seguenti metriche nello spazio dei nomi **AWS/PCS** in. CloudWatch Hanno un'unica dimensione,. `ClusterId`


| Nome | Description | unità | 
| --- | --- | --- | 
| ActualCapacity | IdleCapacity \$1 UtilizedCapacity | Conteggio | 
| CapacityUtilization | UtilizedCapacity / ActualCapacity | Conteggio | 
| DesiredCapacity | ActualCapacity \$1 PendingCapacity | Conteggio | 
| IdleCapacity | Numero di istanze in esecuzione ma non assegnate ai job | Conteggio | 
| UtilizedCapacity | Numero di istanze in esecuzione e assegnate ai job | Conteggio | 

# Monitoraggio delle istanze AWS PCS tramite Amazon CloudWatch
<a name="monitoring-cloudwatch_instances"></a>

AWS PCS lancia le istanze Amazon EC2 in base alle esigenze per soddisfare i requisiti di scalabilità definiti nei gruppi di nodi di calcolo PCS. Puoi monitorare queste istanze mentre sono in esecuzione utilizzando Amazon CloudWatch. Puoi controllare i log delle istanze in esecuzione accedendovi e utilizzando strumenti interattivi da riga di comando. Tuttavia, per impostazione predefinita, i dati CloudWatch delle metriche vengono conservati solo per un periodo limitato dopo la chiusura di un'istanza e i log delle istanze vengono generalmente eliminati insieme ai volumi EBS che supportano l'istanza. Per conservare le metriche o i dati di registrazione delle istanze avviate da PCS dopo la loro chiusura, puoi configurare l' CloudWatch agente sulle tue istanze con un modello di avvio EC2. Questo argomento fornisce una panoramica del monitoraggio delle istanze in esecuzione e fornisce esempi su come configurare i parametri e i log delle istanze persistenti. 

## Monitoraggio delle istanze in esecuzione
<a name="monitoring-cloudwatch_instances_running"></a>

### Ricerca di istanze AWS PCS
<a name="monitoring-cloudwatch_instances_finding"></a>

 Per monitorare le istanze lanciate da PCS, trova le istanze in esecuzione associate a un cluster o a un gruppo di nodi di calcolo. **Quindi, nella console EC2 per una determinata istanza, ispeziona le sezioni **Stato e allarmi e** Monitoraggio.** Se l'accesso di accesso è configurato per tali istanze, puoi connetterti ad esse e controllare i vari file di registro sulle istanze. Per ulteriori informazioni sull'identificazione delle istanze gestite da PCS, vedere. [Ricerca di istanze di gruppi di nodi di calcolo in PCS AWS](working-with_compute-instances.md) 

### Abilitazione di metriche dettagliate
<a name="monitoring-cloudwatch_instances_enable-metrics"></a>

 Per impostazione predefinita, le metriche delle istanze vengono raccolte a intervalli di 5 minuti. Per raccogliere le metriche a intervalli di un minuto, abilita il CloudWatch monitoraggio dettagliato nel modello di lancio del gruppo di nodi di calcolo. Per ulteriori informazioni, consulta [Attiva il monitoraggio dettagliato CloudWatch](working-with_launch-templates_parameters.md#working-with_launch-templates_parameters_cw).

## Configurazione di metriche e log persistenti delle istanze
<a name="monitoring-cloudwatch_instances_config-metrics"></a>

 Puoi conservare i parametri e i log delle tue istanze installando e configurando l'agente CloudWatch Amazon su di esse. Si compone di tre passaggi principali: 

1.  Creare una configurazione CloudWatch dell'agente. 

1.  Archivia la configurazione dove può essere recuperata dalle istanze PCS. 

1.  Scrivi un modello di avvio EC2 che installi il software dell' CloudWatch agente, recuperi la configurazione e avvii l'agente utilizzando la CloudWatch configurazione. 

 Per ulteriori informazioni, consulta [Raccogli metriche, log e tracce con l' CloudWatch agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) nella *Amazon CloudWatch User Guide* e. [Utilizzo dei modelli di lancio di Amazon EC2 con PCS AWS](working-with_launch-templates.md)

### Crea una configurazione dell'agente CloudWatch
<a name="monitoring-cloudwatch_instances_agent-config"></a>

 Prima di distribuire l' CloudWatch agente sulle istanze, è necessario generare un file di configurazione JSON che specifichi le metriche, i log e le tracce da raccogliere. I file di configurazione possono essere creati utilizzando una procedura guidata o manualmente, utilizzando un editor di testo. Il file di configurazione verrà creato manualmente per questa dimostrazione. 

 Su un computer in cui è installata la CLI AWS, crea un file di CloudWatch configurazione denominato **config.json** con i contenuti seguenti. Puoi anche utilizzare il seguente URL per scaricare una copia del file. 

```
https://aws-hpc-recipes.s3.amazonaws.com/main/recipes/pcs/cloudwatch/assets/config.json
```

**Note**
+ I percorsi di log nel file di esempio sono per Amazon Linux 2. Se le tue istanze utilizzeranno un sistema operativo di base diverso, modifica i percorsi in modo appropriato.
+ Per acquisire altri registri, aggiungi altre voci in. `collect_list`
+ I valori in `{brackets}` sono variabili basate su modelli. Per l'elenco completo delle variabili supportate, consulta [Creare o modificare manualmente il file di configurazione dell' CloudWatch agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html) nella *Amazon CloudWatch User Guide*.
+ Puoi scegliere di omettere `logs` o `metrics` di non raccogliere questi tipi di informazioni.

```
{
    "agent": {
        "metrics_collection_interval": 60
    },
    "logs": {
        "logs_collected": {
            "files": {
                "collect_list": [
                    {
                        "file_path": "/var/log/cloud-init.log",
                        "log_group_class": "STANDARD",
                        "log_group_name": "/PCSLogs/instances",
                        "log_stream_name": "{instance_id}.cloud-init.log",
                        "retention_in_days": 30
                    },
                    {
                        "file_path": "/var/log/cloud-init-output.log",
                        "log_group_class": "STANDARD",
                        "log_stream_name": "{instance_id}.cloud-init-output.log",
                        "log_group_name": "/PCSLogs/instances",
                        "retention_in_days": 30
                    },
                    {
                        "file_path": "/var/log/amazon/pcs/bootstrap.log",
                        "log_group_class": "STANDARD",
                        "log_stream_name": "{instance_id}.bootstrap.log",
                        "log_group_name": "/PCSLogs/instances",
                        "retention_in_days": 30
                    },
                    {
                        "file_path": "/var/log/slurmd.log",
                        "log_group_class": "STANDARD",
                        "log_stream_name": "{instance_id}.slurmd.log",
                        "log_group_name": "/PCSLogs/instances",
                        "retention_in_days": 30
                    },
                    {
                        "file_path": "/var/log/messages",
                        "log_group_class": "STANDARD",
                        "log_stream_name": "{instance_id}.messages",
                        "log_group_name": "/PCSLogs/instances",
                        "retention_in_days": 30
                    },
                    {
                        "file_path": "/var/log/secure",
                        "log_group_class": "STANDARD",
                        "log_stream_name": "{instance_id}.secure",
                        "log_group_name": "/PCSLogs/instances",
                        "retention_in_days": 30
                    }
                ]
            }
        }
    },
    "metrics": {
        "aggregation_dimensions": [
            [
                "InstanceId"
            ]
        ],
        "append_dimensions": {
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
            "ImageId": "${aws:ImageId}",
            "InstanceId": "${aws:InstanceId}",
            "InstanceType": "${aws:InstanceType}"
        },
        "metrics_collected": {
            "cpu": {
                "measurement": [
                    "cpu_usage_idle",
                    "cpu_usage_iowait",
                    "cpu_usage_user",
                    "cpu_usage_system"
                ],
                "metrics_collection_interval": 60,
                "resources": [
                    "*"
                ],
                "totalcpu": false
            },
            "disk": {
                "measurement": [
                    "used_percent",
                    "inodes_free"
                ],
                "metrics_collection_interval": 60,
                "resources": [
                    "*"
                ]
            },
            "diskio": {
                "measurement": [
                    "io_time"
                ],
                "metrics_collection_interval": 60,
                "resources": [
                    "*"
                ]
            },
            "mem": {
                "measurement": [
                    "mem_used_percent"
                ],
                "metrics_collection_interval": 60
            },
            "swap": {
                "measurement": [
                    "swap_used_percent"
                ],
                "metrics_collection_interval": 60
            }
        }
    }
}
```

 Questo file indica all' CloudWatch agente di monitorare diversi file che possono essere utili per diagnosticare errori relativi, ad esempio, al bootstrap, all'autenticazione e all'accesso e ad altri domini di risoluzione dei problemi. Ciò include: 
+ `/var/log/cloud-init.log`— Output dalla fase iniziale della configurazione dell'istanza
+ `/var/log/cloud-init-output.log`— Output dei comandi eseguiti durante la configurazione dell'istanza
+ `/var/log/amazon/pcs/bootstrap.log`— Output da operazioni specifiche per PC eseguite durante la configurazione dell'istanza
+ `/var/log/slurmd.log`— Output dal demone slurmd del gestore del carico di lavoro Slurm
+ `/var/log/messages`— Messaggi di sistema dal kernel, dai servizi di sistema e dalle applicazioni
+ `/var/log/secure`— Registri relativi ai tentativi di autenticazione, come SSH, sudo e altri eventi di sicurezza

 I file di registro vengono inviati a un gruppo di CloudWatch log denominato. `/PCSLogs/instances` I flussi di registro sono una combinazione dell'ID dell'istanza e del nome di base del file di registro. Il gruppo di log ha un tempo di conservazione di 30 giorni. 

 Inoltre, il file indica all' CloudWatch agente di raccogliere diverse metriche comuni, aggregandole per ID di istanza. 

### Memorizza la configurazione
<a name="monitoring-cloudwatch_instances_store-config"></a>

 Il file di configurazione dell' CloudWatch agente deve essere archiviato dove possono accedervi le istanze del nodo di calcolo PCS. Esistono due modi comuni per eseguire questa operazione. Puoi caricarlo in un bucket Amazon S3 a cui le tue istanze del gruppo di nodi di calcolo avranno accesso tramite il loro profilo di istanza. In alternativa, puoi archiviarlo come parametro SSM in Amazon Systems Manager Parameter Store. 

#### Carica in un bucket S3
<a name="monitoring-cloudwatch_instances_store-config_s3"></a>

 Per archiviare il file in S3, utilizza i comandi CLI di AWS riportati di seguito. Prima di eseguire il comando, effettua queste sostituzioni: 
+  *amzn-s3-demo-bucket*Sostituiscilo con il tuo nome di bucket S3 

 Innanzitutto, (questo è facoltativo se hai un bucket esistente), crea un bucket per contenere i tuoi file di configurazione. 

```
aws s3 mb s3://amzn-s3-demo-bucket
```

 Quindi, carica il file nel bucket. 

```
aws s3 cp ./config.json s3://amzn-s3-demo-bucket/
```

#### Archivia come parametro SSM
<a name="monitoring-cloudwatch_instances_store-config_ssm"></a>

Per memorizzare il file come parametro SSM, usa il comando che segue. Prima di eseguire il comando, effettuate le seguenti sostituzioni:
+ Sostituisci *region-code* con la regione AWS in cui lavori con AWS PCS.
+ (Facoltativo) Sostituisci il parametro *AmazonCloudWatch-PCS* con il tuo nome. Tieni presente che se modifichi il prefisso del nome da, `AmazonCloudWatch-` dovrai aggiungere specificamente l'accesso in lettura al parametro SSM nel profilo dell'istanza del gruppo di nodi.

```
aws ssm put-parameter \
   --region region-code \
   --name "AmazonCloudWatch-PCS" \
   --type String \
   --value file://config.json
```

### Scrivi un modello di lancio EC2
<a name="monitoring-cloudwatch_instances_lt"></a>

 I dettagli specifici del modello di lancio dipendono dal fatto che il file di configurazione sia archiviato in S3 o SSM. 

#### Usa una configurazione archiviata in S3
<a name="w2aac48c14c13b7c13b5"></a>

Questo script installa CloudWatch l'agente, importa un file di configurazione da un bucket S3 e avvia l'agente con esso. CloudWatch Sostituisci i seguenti valori in questo script con i tuoi dati:
+  *amzn-s3-demo-bucket*— Il nome di un bucket S3 da cui il tuo account può leggere 
+  */config.json*— Percorso relativo alla radice del bucket S3 in cui è archiviata la configurazione 

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-cloudwatch-agent

runcmd:
- aws s3 cp s3://amzn-s3-demo-bucket/config.json /etc/s3-cw-config.json
- /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file://etc/s3-cw-config.json

--==MYBOUNDARY==--
```

 Il profilo di istanza IAM per il gruppo di nodi deve avere accesso al bucket. Ecco un esempio di policy IAM per il bucket nello script di dati utente riportato sopra. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

 Tieni inoltre presente che le istanze devono consentire il traffico in uscita verso S3 e gli endpoint. CloudWatch Ciò può essere ottenuto utilizzando gruppi di sicurezza o endpoint VPC, a seconda dell'architettura del cluster. 

#### Utilizza una configurazione archiviata in SSM
<a name="monitoring-cloudwatch_instances_use-ssm"></a>

Questo script installa CloudWatch l'agente, importa un file di configurazione da un parametro SSM e avvia l' CloudWatch agente con esso. Sostituisci i seguenti valori in questo script con i tuoi dati:
+ (Facoltativo) Sostituire il parametro *AmazonCloudWatch-PCS* con il proprio nome. 

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-cloudwatch-agent

runcmd:
- /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:AmazonCloudWatch-PCS

--==MYBOUNDARY==--
```

 La policy dell'istanza IAM per il gruppo di nodi deve avere il codice **CloudWatchAgentServerPolicy**allegato. 

 Se il nome del parametro non inizia con, `AmazonCloudWatch-` dovrai aggiungere specificamente l'accesso in lettura al parametro SSM nel profilo dell'istanza del gruppo di nodi. Ecco un esempio di policy IAM che illustra questo principio per il prefisso. *DOC-EXAMPLE-PREFIX* 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Sid" : "CustomCwSsmMParamReadOnly",
      "Effect" : "Allow",
      "Action" : [
        "ssm:GetParameter"
      ],
      "Resource" : "arn:aws:ssm:*:*:parameter/DOC-EXAMPLE-PREFIX*"
    }
  ]
}
```

------

 Tieni inoltre presente che le istanze devono consentire il traffico in uscita verso l'SSM e gli endpoint. CloudWatch Ciò può essere ottenuto utilizzando gruppi di sicurezza o endpoint VPC, a seconda dell'architettura del cluster. 

# Registrazione delle chiamate API di AWS Parallel Computing Service utilizzando AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

AWS PCS è integrato con AWS CloudTrail, un servizio che fornisce una registrazione delle azioni intraprese da un utente, ruolo o AWS servizio in AWS PCS. CloudTrail acquisisce tutte le chiamate API per AWS PCS come eventi. Le chiamate acquisite includono chiamate dalla console AWS PCS e chiamate di codice alle operazioni dell'API AWS PCS. Se crei un trail, puoi abilitare la distribuzione continua di CloudTrail eventi a un bucket Amazon S3, inclusi gli eventi per PCS. AWS Se non configuri un percorso, puoi comunque visualizzare gli eventi più recenti nella CloudTrail console nella cronologia degli **eventi**. Utilizzando le informazioni raccolte da CloudTrail, è possibile determinare la richiesta effettuata a AWS PCS, l'indirizzo IP da cui è stata effettuata la richiesta, chi ha effettuato la richiesta, quando è stata effettuata e ulteriori dettagli.

Per ulteriori informazioni CloudTrail, consulta la [Guida AWS CloudTrail per l'utente](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html).

## AWS Informazioni PCS in CloudTrail
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail è abilitato sul tuo account al Account AWS momento della creazione dell'account. Quando si verifica un'attività in AWS PCS, tale attività viene registrata in un CloudTrail evento insieme ad altri eventi AWS di servizio nella **cronologia degli eventi**. Puoi visualizzare, cercare e scaricare eventi recenti nel tuo Account AWS. Per ulteriori informazioni, consulta [Visualizzazione degli eventi con la cronologia degli CloudTrail eventi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html).

Per una registrazione continua degli eventi del tuo Account AWS, inclusi gli eventi per AWS PCS, crea un percorso. Un *trail* consente di CloudTrail inviare file di log a un bucket Amazon S3. Per impostazione predefinita, quando si crea un percorso nella console, questo sarà valido in tutte le Regioni AWS. Il trail registra gli eventi di tutte le regioni della AWS partizione e consegna i file di log al bucket Amazon S3 specificato. Inoltre, puoi configurare altri AWS servizi per analizzare ulteriormente e agire in base ai dati sugli eventi raccolti nei log. CloudTrail Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [Panoramica della creazione di un percorso](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail servizi e integrazioni supportati](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [Configurazione delle notifiche Amazon SNS per CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [Ricezione di file di CloudTrail registro da più regioni](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) e [ricezione di file di CloudTrail registro da](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html) più account

Tutte le azioni AWS PCS vengono registrate CloudTrail e documentate nel [AWS Parallel Computing Service API](https://docs.aws.amazon.com/pcs/latest/APIReference/) Reference. Ad esempio, le chiamate alle `CreateComputeNodeGroup` `DeleteCluster` azioni e generano voci nei file di CloudTrail registro. `UpdateQueue`

Ogni evento o voce di log contiene informazioni sull'utente che ha generato la richiesta. Le informazioni di identità consentono di determinare quanto segue:
+ Se la richiesta è stata effettuata con credenziali utente root o AWS Identity and Access Management (IAM).
+ Se la richiesta è stata effettuata con le credenziali di sicurezza temporanee per un ruolo o un utente federato.
+ Se la richiesta è stata effettuata da un altro AWS servizio.

Per ulteriori informazioni, consulta [Elemento CloudTrail userIdentity](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Comprensione delle voci dei file di CloudTrail registro da AWS PCS
<a name="understanding-service-name-entries"></a>

Un trail è una configurazione che consente la consegna di eventi come file di registro a un bucket S3 specificato dall'utente. CloudTrail i file di registro contengono una o più voci di registro. Un evento rappresenta una singola richiesta proveniente da qualsiasi fonte e include informazioni sull'azione richiesta, la data e l'ora dell'azione, i parametri della richiesta e così via. CloudTrail i file di registro non sono una traccia ordinata dello stack delle chiamate API pubbliche, quindi non vengono visualizzati in un ordine specifico. 

L'esempio seguente mostra una voce di CloudTrail registro per un'`CreateQueue`azione.

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:admin",
        "arn": "arn:aws:sts::012345678910:assumed-role/Admin/admin",
        "accountId": "012345678910",
        "accessKeyId": "ASIAY36PTPIEXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAY36PTPIEEXAMPLE",
                "arn": "arn:aws:iam::012345678910:role/Admin",
                "accountId": "012345678910",
                "userName": "Admin"
            },
            "attributes": {
                "creationDate": "2024-07-16T17:05:51Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2024-07-16T17:13:09Z",
    "eventSource": "pcs.amazonaws.com",
    "eventName": "CreateQueue",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "127.0.0.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
    "requestParameters": {
        "clientToken": "c13b7baf-2894-42e8-acec-example",
        "clusterIdentifier": "abcdef0123",
        "computeNodeGroupConfigurations": [
            {
                "computeNodeGroupId": "abcdef0123"
            }
        ],
        "queueName": "all"
    },
    "responseElements": {
        "queue": {
            "arn": "arn:aws:pcs:us-east-1:609783872011:cluster/abcdef0123/queue/abcdef0123",
            "clusterId": "abcdef0123",
            "computeNodeGroupConfigurations": [
                {
                    "computeNodeGroupId": "abcdef0123"
                }
            ],
            "createdAt": "2024-07-16T17:13:09.276069393Z",
            "id": "abcdef0123",
            "modifiedAt": "2024-07-16T17:13:09.276069393Z",
            "name": "all",
            "status": "CREATING"
        }
    },
    "requestID": "a9df46d7-3f6d-43a0-9e3f-example",
    "eventID": "7ab18f88-0040-47f5-8388-example",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "012345678910",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "pcs.us-east-1.amazonaws.com"
    },
    "sessionCredentialFromConsole": "true"
}
```