Monitoraggio delle AWS PCS istanze tramite Amazon CloudWatch - AWS PCS

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

Monitoraggio delle AWS PCS istanze tramite Amazon CloudWatch

AWSPCSavvia EC2 le istanze Amazon in base alle esigenze per soddisfare i requisiti di scalabilità definiti nei gruppi di nodi di PCS calcolo. 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 che supportano l'istanza. EBS Per conservare le metriche o i dati di registrazione delle istanze avviate PCS dopo la loro chiusura, puoi configurare l' CloudWatch agente sulle 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

Ricerca di istanze AWS PCS

Per monitorare le istanze avviate daPCS, trova le istanze in esecuzione associate a un cluster o a un gruppo di nodi di calcolo. Quindi, nella EC2 console di una determinata istanza, controlla 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, consulta. PCS Ricerca di istanze di gruppi di nodi di calcolo in AWS PCS

Abilitazione di metriche dettagliate

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.

Configurazione di metriche e log persistenti delle istanze

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.

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

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

Per ulteriori informazioni, consulta Raccogli metriche, log e tracce con l' CloudWatch agente nella Amazon CloudWatch User Guide e. Utilizzo dei modelli di EC2 lancio di Amazon con AWS PCS

Crea una configurazione dell'agente CloudWatch

Prima di distribuire l' CloudWatch agente sulle istanze, è necessario generare un file di JSON configurazione 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.

Sul computer in cui è AWS CLI installato, crea un file di CloudWatch configurazione denominato config.json con il contenuto che segue. È inoltre possibile utilizzare quanto segue 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 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 PCS specifiche 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 autenticazioneSSH, come 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

Il file di configurazione dell' CloudWatch agente deve essere archiviato dove possono accedervi le istanze del nodo di PCS calcolo. 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 in SSM Amazon Systems Manager Parameter Store.

Carica in un bucket S3

Per archiviare il file in S3, usa i AWS CLI comandi che seguono. Prima di eseguire il comando, effettua le seguenti sostituzioni:

  • Replace (Sostituisci) DOC-EXAMPLE-BUCKET 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://DOC-EXAMPLE-BUCKET

Quindi, carica il file nel bucket.

aws s3 cp ./config.json s3://DOC-EXAMPLE-BUCKET/

Memorizza come parametro SSM

Per memorizzare il file come SSM parametro, utilizzate il comando che segue. Prima di eseguire il comando, effettuate le seguenti sostituzioni:

  • Replace (Sostituisci) region-code con la AWS regione in cui lavori. AWS PCS

  • (Facoltativo) Sostituisci AmazonCloudWatch-PCS con il tuo nome per il parametro. Tieni presente che se modifichi il prefisso del nome da, AmazonCloudWatch- dovrai aggiungere specificamente l'accesso in lettura al SSM parametro 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 EC2 lancio

I dettagli specifici per il modello di lancio dipendono dal fatto che il file di configurazione sia archiviato in S3 oSSM.

Usa una configurazione archiviata in S3

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:

  • DOC-EXAMPLE-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://DOC-EXAMPLE-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 IAM istanza per il gruppo di nodi deve avere accesso al bucket. Ecco un esempio di IAM policy per il bucket nello script di dati utente riportato sopra.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-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 o VPC endpoint di sicurezza, a seconda dell'architettura del cluster.

Utilizza una configurazione memorizzata in SSM

Questo script installa CloudWatch l'agente, importa un file di configurazione da un SSM parametro e avvia l' CloudWatch agente con esso. Sostituisci i seguenti valori in questo script con i tuoi dati:

  • (Facoltativo) Sostituisci AmazonCloudWatch-PCS con il tuo nome per il parametro.

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 politica di IAM istanza per il gruppo di nodi deve avere il codice CloudWatchAgentServerPolicyallegato.

Se il nome del parametro non inizia con, sarà AmazonCloudWatch- necessario aggiungere specificamente l'accesso in lettura al SSM parametro nel profilo dell'istanza del gruppo di nodi. Ecco un esempio di IAM policy che lo illustra per prefix DOC-EXAMPLE-PREFIX.

{ "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 gli endpoint e. SSM CloudWatch Ciò può essere ottenuto utilizzando gruppi o VPC endpoint di sicurezza, a seconda dell'architettura del cluster.