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à.
Risoluzione dei problemi con Amazon ECS Action Logs
Gli Action Logs ti aiutano a diagnosticare i problemi fornendo registrazioni dettagliate delle operazioni avviate dal servizio Amazon ECS. Ogni voce di registro contiene un timestamp, un livello di registro, un nome dell'evento e un payload dettagliato con il contesto di cosa è successo e perché. Questo argomento illustra gli scenari di risoluzione dei problemi più comuni e fornisce query Logs Insights pronte all'uso CloudWatch .
Comprensione dei livelli di log
Gli Action Log utilizzano tre livelli di registro per indicare la gravità di ciascun evento:
INFO-
Operazioni normali come l’avvio della distribuzione, l’avvio dell’attività o il provisioning delle risorse. Questi eventi indicano che Amazon ECS sta eseguendo le azioni previste.
WARN-
Non-fatal problemi che potrebbero richiedere attenzione, come tentativi di nuovo tentativo o limiti di capacità. Amazon ECS continua a fare progressi, ma l’operazione potrebbe richiedere più tempo del previsto.
ERROR-
Guasti che richiedono un’azione, ad esempio distribuzione non riuscita, errore di provisioning o avvio dell’attività compromesso. Esamina questi eventi per identificare la causa principale e intraprendere azioni correttive.
Suggerimento
Inizia filtrando i livelli ERROR o i livelli di WARN registro per identificare rapidamente i problemi. Puoi quindi espandere la ricerca agli INFO eventi per un contesto aggiuntivo.
Debug di una distribuzione del servizio non riuscita
Caratteristiche
Distribuzione bloccata in corso o ripristinata automaticamente.
Cosa cercare
Filtra i ERROR registri in cui eventName contieneDEPLOYMENT. Controlla nel detail payload l'ARN di distribuzione, il motivo dello stato e il numero di attività non riuscite.
L'esempio seguente mostra un errore di distribuzione in cui non era disponibile alcun candidato per il rollback:
{ "resourceArn": "arn:aws:ecs:us-east-1:111122223333:cluster/my-cluster", "actionSourceId": "service/my-cluster/my-service", "logLevel": "ERROR", "eventTimestamp": 1784573730986, "detail": { "statusReason": "No rollback candidate was found to run the rollback.", "serviceDeploymentArn": "arn:aws:ecs:us-east-1:111122223333:service-deployment/my-cluster/my-service/abc123def456", "status": "FAILED", "eventName": "SERVICE_DEPLOYMENT_ROLLBACK_FAILED" } }
Risoluzione
Controlla il detail.statusReason campo per identificare il motivo per cui le attività non sono riuscite. Utilizza la seguente query CloudWatch Logs Insights per trovare tutti gli errori di distribuzione:
fields @timestamp, detail.statusReason | filter logLevel = "ERROR" and detail.deploymentArn like /my-cluster\/my-service/ | sort @timestamp desc | limit 20
Diagnosi dei problemi relativi ai daemon gestiti
Caratteristiche
Il demone non si avvia sulle istanze o la distribuzione del daemon è bloccata.
Cosa cercare
Filtra i log in base al daemon ARN per trovare gli eventi relativi al tuo daemon. Puoi anche filtrare logLevel per restringere i risultati agli avvisi o agli errori.
L'esempio seguente mostra un'attività daemon che non è stata avviata a causa della memoria insufficiente sull'istanza di destinazione:
{ "timestamp": 1719500050000, "logLevel": "WARN", "account": "123456789012", "region": "us-east-1", "resourceArn": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster", "actionSourceId": "arn:aws:ecs:us-east-1:123456789012:daemon/my-cluster/my-logging-daemon", "eventName": "DAEMON_TASK_START_IMPAIRED", "detail": { "statusReason": "RESOURCE:MEMORY - Unable to place daemon task on container instance: insufficient memory", "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/my-cluster/a1b2c3d4" } }
Risoluzione
Verifica che le istanze di destinazione dispongano di risorse sufficienti per eseguire il daemon task. Se le istanze si stanno esaurendo, il demone potrebbe non avviarsi finché non saranno disponibili nuove istanze. Usa la seguente query per filtrare gli eventi per un demone specifico:
fields @timestamp, logLevel, detail.statusReason | filter actionSourceId like /my-logging-daemon/ | filter logLevel in ["ERROR", "WARN"] | sort @timestamp desc | limit 20
Comprendere i motivi di interruzione delle attività del daemon
Caratteristiche
Le attività daemon si interrompono in modo imprevisto.
Cosa cercare
Filtra WARN e ERROR registra i dettagli relativi agli errori delle attività daemon. I seguenti campi del detail payload forniscono informazioni sul motivo per cui un'attività daemon è stata interrotta:
detail.stopCode-
Un codice leggibile dal computer che classifica il motivo dell'interruzione dell'attività.
detail.statusReason-
Una descrizione leggibile dall'uomo del motivo per cui l'attività è stata interrotta. Questo campo non è presente in tutte le voci del registro.
detail.containerStoppedReason-
Contesto aggiuntivo sul contenitore specifico che ha causato l'interruzione dell'attività.
Per un elenco completo dei codici di arresto delle attività e delle relative descrizioni, vedereAmazon ECS ha interrotto i messaggi di errore relativi alle attività.
Nota
Le interruzioni previste delle attività daemon, ad esempioUserInitiated, vengono filtrate dai registri delle azioni. Vengono visualizzate solo le interruzioni delle attività daemon impreviste o correlate a un errore.
Domande utili CloudWatch su Logs Insights
Usa le seguenti query CloudWatch Logs Insights per analizzare i problemi più comuni con i tuoi servizi Amazon ECS.
Tutti gli errori dell'ultima ora
fields @timestamp, logLevel, eventName, detail.statusReason | filter logLevel = "ERROR" | sort @timestamp desc | limit 50
Nota
Il detail.statusReason campo non è presente in tutte le voci del registro. Se il campo è vuoto nei risultati, utilizza questi eventName e altri campi del detail payload come contesto.
Eventi per un servizio specifico
fields @timestamp, logLevel, detail.statusReason | filter @message like /my-service/ | sort @timestamp desc | limit 50
Cronologia di implementazione per una distribuzione specifica
fields @timestamp, logLevel, detail.statusReason | filter detail.deploymentArn like /my-cluster\/my-service\/abc123/ | sort @timestamp asc
Errori delle attività Daemon raggruppati per motivo
filter logLevel = "ERROR" and detail.stopCode != "" | stats count(*) as failureCount by detail.stopCode, detail.statusReason | sort failureCount desc | limit 20