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 si invia un comando utilizzando Run Command, una funzionalità di AWS Systems Manager, è possibile specificare dove si desidera 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 specifichi CloudWatch Logs, Run Command invia periodicamente tutti gli output dei comandi e i log degli errori a CloudWatch Logs. È 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 politiche gestite AWS Identity and Access Management (IAM) AmazonSSMManagedInstanceCore e CloudWatchAgentServerPolicy il nodo non richiede alcuna configurazione aggiuntiva per inviare l'output a CloudWatch Logs. 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'APIoperazione. 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 EC2 le istanze, vedere Configurare le autorizzazioni di istanza richieste per Systems Manager. Per informazioni sull'aggiunta di policy a un ruolo di servizio per server locali e macchine virtuali che intendi utilizzare come nodi gestiti, consulta Creare il ruolo di IAM servizio 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 ulteriori informazioni sull'aggiornamento di una IAM politica, vedere Modifica delle IAM politiche nella Guida per l'IAMutente.

{ "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 CloudWatch i log quando si inviano 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