View a markdown version of this page

AWSSupport-TroubleshootALB5XXErrors - AWS Systems Manager Riferimento al runbook dell’automazione

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

AWSSupport-TroubleshootALB5XXErrors

Description

Il AWSSupport-TroubleshootALB5XXErrors runbook diagnostica e risolve gli errori HTTP 5XX su un Application Load Balancer. Analizza le metriche di Amazon CloudWatch (CloudWatch) e i log di accesso di Application Load Balancer per identificare le cause principali e fornire consigli pratici. Il runbook include le seguenti funzionalità:

  • Analisi del modello di traffico: identifica gli hotspotting e le anomalie delle singole zone di disponibilità utilizzando CloudWatch metriche per rilevare la distribuzione non uniforme del traffico tra le zone di disponibilità.

  • Diagnosi dei log di accesso: elabora i log di accesso di Application Load Balancer recuperando i file di log dal bucket Amazon S3 configurato per estrarre modelli di errore specifici, motivi di errore e informazioni diagnostiche dettagliate per una risoluzione granulare dei problemi.

  • Error-specific analisi: fornisce una diagnosi mirata per ogni tipo di errore HTTP 5XX:

    • HTTP 500: errori di autenticazione, problemi di connettività WAF e problemi relativi agli endpoint IDP.

    • HTTP 502: problemi di connessione a Target, errori di funzione AWS Lambda (Lambda), errori di negoziazione TLS e scenari di cancellazione del target.

    • HTTP 503: gruppi target vuoti e problemi di registrazione dei target.

    • HTTP 504: timeout di connessione, anomalie del tempo di risposta previsto con confronto storico delle baseline e valutazione completa della connettività di rete.

    • Altri errori 5XX: analisi completa di codici di stato 5XX non comuni e casi limite che non sono coperti dalle categorie di errore standard.

  • Approfondimento sulla connettività di rete: per gli errori HTTP 504, valuta le regole dei gruppi di sicurezza, gli ACL di rete e le configurazioni della tabella di routing tra Application Load Balancer e le relative destinazioni nella stessa regione e nello stesso account. AWS

  • Selezione adattiva dell'origine dati: dà la priorità all'analisi dei log di accesso quando disponibile per una diagnosi dettagliata degli errori e ricorre automaticamente alle metriche quando i log non sono disponibili o sono incompleti. CloudWatch

Limitazioni

Questo runbook presenta le seguenti limitazioni:

  • Limitazioni al controllo della connettività: le valutazioni della connettività di rete vengono eseguite solo per destinazioni nella stessa AWS regione e nello stesso account dell'Application Load Balancer. Cross-account o gli obiettivi locali ricevono indicazioni generali sulla connettività.

  • Limiti di tempo per l'elaborazione dei log di accesso: l'analisi dei log di accesso è limitata a una finestra di elaborazione di 9 minuti. Se superati, l'analisi si interrompe e fornisce risultati basati sui log elaborati finora. Riduci il lasso di tempo necessario per l'analisi completa dei log.

  • Requisiti di sicurezza e posizione del bucket Amazon S3: l'elaborazione dei log di accesso richiede che il bucket Amazon S3 soddisfi i criteri di sicurezza e localizzazione. Il runbook salta l'elaborazione dei log di accesso quando il bucket Amazon S3 è accessibile pubblicamente. Lo stato del bucket pubblico è determinato dalla policy del bucket o dalla configurazione del blocco di accesso pubblico. Il runbook salta l'elaborazione anche quando il bucket Amazon S3 non si trova nello stesso AWS account e nella stessa regione dell'Application Load Balancer. Quando questi controlli falliscono, il runbook torna automaticamente all'analisi basata su metriche. CloudWatch

  • Metriche come alternativa: quando i log di accesso non sono abilitati o l'elaborazione dei log fallisce o è incompleta, il runbook torna automaticamente all'analisi basata su CloudWatch metriche con informazioni diagnostiche meno granulari. La mancanza di registri di accesso potrebbe influire sulla precisione del rilevamento della causa principale.

  • Dipendenza dai dati storici: il rilevamento delle anomalie nel tempo di risposta HTTP 504 richiede 7 giorni di dati storici per il confronto delle previsioni. I dati storici limitati potrebbero influire sulla precisione del rilevamento.

Costi aggiuntivi

L'esecuzione di questo runbook richiede i parametri di Amazon CloudWatch e, quando i log di accesso sono abilitati, recupera gli oggetti da Amazon S3. Al tuo AWS account potrebbero essere applicati costi standard CloudWatch e Amazon S3 per i dati richiesti durante l'analisi. Per ulteriori informazioni sui prezzi, consulta i prezzi di Amazon e CloudWatch i prezzi di Amazon Simple Storage Service.

Come funziona

Il runbook esegue le seguenti fasi di convalida e analisi:

  • Verifica che l'Application Load Balancer specificato esista e raccoglie gli attributi dell'Application Load Balancer come il timeout di inattività e la configurazione del log di accesso.

  • Rileva l'hotspotting e le anomalie di errore di una singola zona di disponibilità utilizzando le metriche. CloudWatch

  • Recupera ed elabora i log di accesso di Application Load Balancer dal bucket Amazon S3 configurato quando i log di accesso sono abilitati e il bucket soddisfa i requisiti di sicurezza e posizione.

  • Diagnostica ogni codice di errore HTTP 5XX (500, 502, 503, 504 e altro) utilizzando le voci del log di accesso, se disponibili, o utilizzando le metriche come riserva. CloudWatch

  • Per gli errori HTTP 504, valuta le regole dei gruppi di sicurezza, gli ACL di rete e le configurazioni della tabella di routing tra Application Load Balancer e le relative destinazioni.

  • Consolida i risultati in un rapporto con raccomandazioni e riferimenti pertinenti.

Esegui questa automazione (console)

Tipo di documento

Automazione

Proprietario

Amazon

Piattaforme

/

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il runbook.

  • s3:ListBucket

  • s3:GetObject

  • s3:GetBucketPolicyStatus

  • s3:GetBucketPublicAccessBlock

  • s3:ListAllMyBuckets

  • elasticloadbalancing:DescribeTargetGroups

  • elasticloadbalancing:DescribeTargetHealth

  • elasticloadbalancing:DescribeLoadBalancers

  • elasticloadbalancing:DescribeTargetGroupAttributes

  • elasticloadbalancing:DescribeLoadBalancerAttributes

  • elasticloadbalancing:DescribeListeners

  • elasticloadbalancing:DescribeRules

  • ec2:DescribeSubnets

  • ec2:DescribeInstances

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • cloudwatch:GetMetricData

  • cloudtrail:LookupEvents

  • wafv2:ListWebACLs

  • wafv2:ListResourcesForWebACL

  • lambda:GetFunctionConfiguration

Policy IAM di esempio:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ReadAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "ELBReadAccess", "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroupAttributes", "elasticloadbalancing:DescribeLoadBalancerAttributes", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeRules" ], "Resource": "*" }, { "Sid": "EC2ReadAccess", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkAcls", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Sid": "MonitoringReadAccess", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "cloudtrail:LookupEvents" ], "Resource": "*" }, { "Sid": "WAFReadAccess", "Effect": "Allow", "Action": [ "wafv2:ListWebACLs", "wafv2:ListResourcesForWebACL" ], "Resource": "*" }, { "Sid": "LambdaReadAccess", "Effect": "Allow", "Action": [ "lambda:GetFunctionConfiguration" ], "Resource": "*" } ] }
Istruzioni

Segui questi passaggi per configurare l'automazione:

  1. Apri AWSSupport-TroubleshootALB5XXErrors in Systems Manager sotto Documenti.

  2. Scegli Esegui automazione.

  3. Per i parametri di input, inserisci quanto segue:

    • AutomationAssumeRole (Obbligatorio):

      L'Amazon Resource Name (ARN) del ruolo AWS Identity and Access Management (IAM) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.

    • AlBarn (obbligatorio):

      L'ARN dell'Application Load Balancer da esaminare. Ad esempio, arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-alb/50dc6c495c0c9188.

    • IssueStartTime (Obbligatorio):

      L'ora di inizio del problema in UTC. Usa il formato di timestamp ISO 8601 (). YYYY-MM-DDTHH:MM:SSZ Ad esempio, 1970-01-01T00:00:00Z.

    • IssueEndTime (Obbligatorio):

      L'ora di fine del problema in UTC. Usa il formato di timestamp ISO 8601 (). YYYY-MM-DDTHH:MM:SSZ Ad esempio, 1970-01-01T00:00:00Z.

  4. Scegli Esegui.

  5. L'automazione viene avviata.

  6. Il documento esegue i seguenti passaggi:

    • RunInitialChecks:

      Esegue i controlli iniziali sull'Application Load Balancer. I controlli iniziali includono la verifica dell'esistenza dell'Application Load Balancer, il rilevamento di hotspot e degli errori relativi a singole zone di disponibilità, la raccolta dei dettagli degli errori HTTP e il controllo della configurazione del log di accesso.

    • ProcessAccessLogs:

      Recupera i file di log di accesso di Application Load Balancer pertinenti dal bucket Amazon S3 e li elabora per identificare i motivi e i codici di errore univoci. Solo un sottoinsieme di file di log degli accessi viene elaborato per l'intervallo di tempo identificato. Se il tempo di elaborazione supera il limite di 9 minuti, i log rimanenti non vengono elaborati.

    • HTTP500ErrorIdentification:

      Identifica il motivo degli errori Balancer-generated HTTP 500 di Application Load utilizzando le CloudWatch metriche o i log di accesso analizzati, se disponibili.

    • HTTP502ErrorIdentification:

      Identifica il motivo degli errori Balancer-generated HTTP 502 di Application Load utilizzando le CloudWatch metriche o i log di accesso analizzati, se disponibili.

    • HTTP503ErrorIdentification:

      Identifica il motivo degli errori Balancer-generated HTTP 503 di Application Load utilizzando le metriche. CloudWatch

    • HTTP504ErrorIdentification:

      Identifica il motivo degli errori Balancer-generated HTTP 504 di Application Load utilizzando le CloudWatch metriche o i log di accesso analizzati, se disponibili. Per gli errori HTTP 504, la fase valuta anche le regole dei gruppi di sicurezza, gli ACL di rete e le configurazioni delle tabelle di routing tra Application Load Balancer e le relative destinazioni.

    • OtherHTTPErrorIdentification:

      Identifica il motivo degli errori HTTP non classificati generati dall'Application Load Balancer utilizzando le CloudWatch metriche o i log di accesso analizzati, se disponibili.

    • GenerateReport:

      Genera un rapporto consolidato in base ai risultati dei passaggi precedenti, tra cui lo stato dell'hotspotting, le anomalie di una singola zona di disponibilità, le diagnosi degli errori e i consigli.

  7. Dopo il completamento, consulta la sezione Output per i risultati dettagliati dell'esecuzione.

Riferimenti

Systems Manager Automation