Configurazione di Amazon CloudWatch Logs per Run Command - AWS Systems Manager

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

Configurazione di Amazon CloudWatch Logs per Run Command

Quando invii un comando utilizzandoRun Command, una funzionalità di AWS Systems Manager, puoi specificare dove vuoi inviare l'output del comando. Per impostazione predefinita, Systems Manager restituisce solo i primi 24.000 caratteri dell'output del comando. Se si desidera visualizzare i dettagli completi del risultato del comando, è possibile specificare un bucket Amazon Simple Storage Service (Amazon S3). Oppure puoi specificare Amazon CloudWatch Logs. Se CloudWatch specifichi Logs, invia Run Command periodicamente tutti gli output dei comandi e i log degli errori a Logs. CloudWatch È possibile monitorare i log di output in tempo quasi reale, cercare locuzioni, valori o modelli specifici e creare allarmi in base alla ricerca.

Se hai configurato il nodo gestito per utilizzare le policy gestite AWS Identity and Access Management (IAM) AmazonSSMManagedInstanceCore e CloudWatchAgentServerPolicy il nodo non richiede alcuna configurazione aggiuntiva per inviare l'output ai registri. CloudWatch Scegli questa opzione se invii comandi dalla console o aggiungi la cloud-watch-output-config sezione e il CloudWatchOutputEnabled parametro se usi AWS Command Line Interface (AWS CLI) o un'operazione API. AWS Tools for Windows PowerShell La sezione cloud-watch-output-config e il parametro CloudWatchOutputEnabled sono descritti in dettaglio più avanti in questo argomento.

Per informazioni sull'aggiunta di policy a un profilo di istanza per le istanze EC2, consulta Configurare le autorizzazioni delle istanze richieste per Systems Manager. Per informazioni sull'aggiunta di policy a un ruolo di servizio per server e macchine virtuali locali che intendi utilizzare come nodi gestiti, consulta Creare il ruolo di servizio IAM richiesto per Systems Manager in ambienti ibridi e multicloud.

Se utilizzi una policy personalizzata sui tuoi nodi, aggiorna la policy su ogni nodo per consentire a Systems Manager di inviare output e log a CloudWatch Logs. Aggiungere i seguenti oggetti di policy alla policy personalizzata. Per informazioni sull'aggiornamento di una policy IAM, si veda Editing IAM policies (Modifica di policy IAM) nella Guida per l'utente di IAM.

{ "Effect": "Allow", "Action": "logs:DescribeLogGroups", "Resource": "*" }, { "Effect":"Allow", "Action":[ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource":"arn:aws:logs:*:*:log-group:/aws/ssm/*" },

Specificare i CloudWatch log quando si inviano i comandi

Per specificare CloudWatch Logs come output quando inviate un comando da AWS Management Console, scegliete CloudWatch Output nella sezione Opzioni di output. Facoltativamente, è possibile specificare il nome del gruppo CloudWatch Logs a cui si desidera inviare l'output del comando. Se non si specifica il nome di un gruppo, Systems Manager crea automaticamente un gruppo di log. Il gruppo di log utilizza il seguente formato di nomi: /aws/ssm/SystemsManagerDocumentName

Se esegui comandi utilizzando il AWS CLI, specifica la cloud-watch-output-config sezione nel comando. Questa sezione consente di specificare il parametro CloudWatchOutputEnabled e, facoltativamente, il parametro CloudWatchLogGroupName. Ecco un esempio.

Linux & macOS
aws ssm send-command \ --instance-ids "instance ID" \ --document-name "AWS-RunShellScript" \ --parameters "commands=echo helloWorld" \ --cloud-watch-output-config "CloudWatchOutputEnabled=true,CloudWatchLogGroupName=log group name"
Windows
aws ssm send-command ^ --document-name "AWS-RunPowerShellScript" ^ --parameters commands=["echo helloWorld"] ^ --targets "Key=instanceids,Values=an instance ID” ^ --cloud-watch-output-config '{"CloudWatchLogGroupName":"log group name","CloudWatchOutputEnabled":true}'

Visualizzazione dell'output del comando nei CloudWatch registri

Non appena il comando inizia a essere eseguito, Systems Manager invia l'output a CloudWatch Logs in tempo quasi reale. L'output in CloudWatch Logs utilizza il seguente formato:

CommandID/InstanceID/PluginID/stdout

CommandID/InstanceID/PluginID/stderr

Il risultato dell'esecuzione viene caricato ogni 30 secondi o quando il buffer supera i 200 KB, a seconda di quale condizione si verifica prima.

Nota

I flussi di log vengono creati solo quando sono disponibili dati di output. Per esempio, se per un'esecuzione non sono presenti dati con errori, il flusso stderr non viene creato.

Di seguito è riportato un esempio dell'output del comando visualizzato nei CloudWatch registri.

Group - /aws/ssm/AWS-RunShellScript
Streams – 
1234-567-8910/i-abcd-efg-hijk/AWS-RunPowerShellScript/stdout
24/1234-567-8910/i-abcd-efg-hijk/AWS-RunPowerShellScript/stderr