Log di accesso dell'Application Load Balancer - Sistema di bilanciamento del carico elastico

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

Log di accesso dell'Application Load Balancer

Elastic Load Balancing fornisce log di accesso che acquisiscono informazioni dettagliate sulle richieste inviate al tuo load balancer. Ogni log contiene informazioni come l'ora in cui è stata ricevuta la richiesta, l'indirizzo IP del client, le latenze, i percorsi delle richieste e le risposte del server. Puoi utilizzare questi log per analizzare i modelli di traffico e risolvere i problemi che potresti incontrare.

I log di accesso sono una funzionalità facoltativa di Elastic Load Balancing che viene disabilitata per impostazione predefinita. Dopo aver abilitato i log di accesso per il sistema di bilanciamento del carico, Elastic Load Balancing acquisisce i log e li archivia nel bucket Amazon S3 specificato come file compressi. Puoi disabilitare i log di accesso in qualsiasi momento.

Vengono addebitati i costi di archiviazione per Amazon S3, ma non per la larghezza di banda utilizzata da Elastic Load Balancing per inviare i file di log ad Amazon S3. Per ulteriori informazioni sui costi di storage, consulta Prezzi di Amazon S3.

File di log di accesso

Elastic Load Balancing pubblica un file di log per ciascun nodo del sistema di bilanciamento del carico ogni 5 minuti. La consegna dei log è caratterizzata da consistenza finale. Il load balancer è in grado di consegnare più log per lo stesso periodo. In genere questo accade se il sito è a traffico elevato.

I nomi dei file di log di accesso utilizzano il formato seguente:

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_app.load-balancer-id_end-time_ip-address_random-string.log.gz
bucket

Nome del bucket S3.

prefisso

(Facoltativo) Il prefisso (gerarchia logica) per il bucket. Il prefisso specificato non deve includere la stringa AWSLogs. Per ulteriori informazioni, consulta Organizzazione degli oggetti utilizzando i prefissi.

AWSLogs

Aggiungiamo la parte del nome del file che inizia con AWSLogs dopo il nome del bucket e il prefisso facoltativo specificato.

aws-account-id

L'ID AWS dell'account del proprietario.

Regione

La regione del load balancer e del bucket S3.

yyyy/mm/dd

La data in cui il log è stato consegnato.

load-balancer-id

L'ID risorsa del sistema di bilanciamento del carico. Se l'ID risorsa contiene barre (/), queste sono sostituite da punti (.).

end-time

La data e l'ora di fine dell'intervallo dei log. Ad esempio, l'ora di fine 20140215T2340Z contiene le voci delle richieste effettuate tra le 23:35 e le 23:40 UTC o GMT.

ip-address

L'indirizzo IP del nodo del load balancer che ha gestito la richiesta. Per un load balancer interno, si tratta di un indirizzo IP privato.

random-string

Una stringa casuale generata dal sistema.

Di seguito è riportato un esempio di nome di file di log con un prefisso:

s3://my-bucket/my-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

Di seguito è riportato un esempio di nome di file di log senza un prefisso:

s3://my-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

È possibile archiviare i file di log nel bucket per un periodo di tempo indeterminato, ma è anche possibile definire regole per il ciclo di vita di Amazon S3 per archiviare o eliminare automaticamente i file di log. Per ulteriori informazioni, consulta Gestione del ciclo di vita degli oggetti nella Guida per l'utente di Amazon Simple Storage Service.

Voci dei log di accesso

Elastic Load Balancing registra le richieste inviate al sistema di bilanciamento del carico, incluse le richieste mai arrivate alla destinazione. Ad esempio, se un client invia una richiesta errata o se non sono presenti destinazioni integre a rispondere alla richiesta, questa viene comunque registrata. Elastic Load Balancing non registra le richieste di controllo dell'integrità.

Ogni voce di registro contiene i dettagli di una singola richiesta (o connessione nel caso di WebSockets) effettuata al sistema di bilanciamento del carico. Infatti WebSockets, una voce viene scritta solo dopo la chiusura della connessione. Se non è possibile stabilire la connessione aggiornata, la voce è la medesima di una richiesta HTTP o HTTPS.

Importante

Elastic Load Balancing registra le richieste nel miglior modo possibile. Ti consigliamo di utilizzare i log di accesso per comprendere la natura delle richieste e non come resoconto completo di tutte le richieste.

Sintassi

La seguente tabella descrive, in ordine, i campi di una voce di un log di accesso. Tutti i campi sono delimitati da spazi. Quando ne vengono introdotti di nuovi, i campi vengono aggiunti alla fine della voce del log. Ti consigliamo di ignorare i campi inattesi alla fine della voce di log.

Campo Descrizione

tipo

Il tipo di richiesta o di connessione. I valori possibili sono i seguenti (ignora eventuali altri valori):

  • http: HTTP

  • https: HTTP su TLS

  • h2: HTTP/2 su TLS

  • grpcs: gRPC su TLS

  • ws — WebSockets

  • wss— WebSockets tramite TLS

time

L'ora in cui il sistema di bilanciamento del carico ha generato una risposta al client, nel formato ISO 8601. Perché WebSockets, questo è il momento in cui la connessione viene chiusa.

elb

L'ID risorsa del sistema di bilanciamento del carico. Se stai analizzando le voci del log di accesso, tieni presente che gli ID risorsa possono contenere barre (/).

client:port

L'indirizzo IP e la porta del client che esegue la richiesta. Se il sistema di bilanciamento del carico ha un proxy, questo campo contiene l'indirizzo IP del proxy.

target:port

L'indirizzo IP e la porta della destinazione che ha elaborato la richiesta.

Se il client non ha inviato una richiesta completa, il sistema di bilanciamento del carico non è in grado di inviare la richiesta a una destinazione e questo valore è impostato su -.

Se la destinazione è una funzione Lambda, questo valore è impostato su -.

Se la richiesta è bloccata da AWS WAF, questo valore è impostato su - e il valore di elb_status_code è impostato su 403.

request_processing_time

Il tempo totale trascorso (in secondi, con precisione al millisecondo) dal momento in cui il sistema di bilanciamento del carico ha ricevuto la richiesta al momento in cui l'ha inviata a una destinazione.

Questo valore è impostato su -1 se il sistema di bilanciamento del carico non è in grado di inviare la richiesta a una destinazione. Questo può accadere se la destinazione chiude la connessione prima del timeout di inattività o se il client invia una richiesta errata.

Questo valore può anche essere impostata su -1 se la destinazione registrata non risponde prima del timeout di inattività.

Se AWS WAF è abilitato per l'Application Load Balancer o il tipo di destinazione è una funzione Lambda, viene conteggiato il tempo impiegato dal client per inviare i dati richiesti per le richieste POST. request_processing_time

target_processing_time

Il tempo totale trascorso (in secondi, con precisione al millisecondo) dal momento in cui il sistema di bilanciamento del carico ha inviato la richiesta a una destinazione fino a quando la destinazione non ha iniziato a inviare le intestazioni di risposta.

Questo valore è impostato su -1 se il sistema di bilanciamento del carico non è in grado di inviare la richiesta a una destinazione. Questo può accadere se la destinazione chiude la connessione prima del timeout di inattività o se il client invia una richiesta errata.

Questo valore può anche essere impostata su -1 se la destinazione registrata non risponde prima del timeout di inattività.

Se non AWS WAF è abilitato per l'Application Load Balancer, viene conteggiato il tempo impiegato dal client per inviare i dati richiesti per le richieste POST. target_processing_time

response_processing_time

Il tempo totale trascorso (in secondi, con precisione al millisecondo) dal momento in cui il sistema di bilanciamento del carico ha ricevuto l'intestazione di risposta dalla destinazione finché non ha iniziato a inviare la risposta al client. Sono inclusi sia il tempo di inserimento nella coda del load balancer che il tempo di acquisizione della connessione dal load balancer al client.

Questo valore è impostato su -1 se il sistema di bilanciamento del carico non riceve una risposta da una destinazione. Questo può accadere se la destinazione chiude la connessione prima del timeout di inattività o se il client invia una richiesta errata.

elb_status_code

Il codice di stato della risposta dal sistema di bilanciamento del carico.

target_status_code

Il codice di stato della risposta dalla destinazione. Questo valore viene registrato solo se è stata stabilita una connessione con la destinazione e quest'ultima ha inviato una risposta. Altrimenti il valore è impostato su -.

received_bytes

Le dimensioni della richiesta, in byte, ricevuta dal client (richiedente). Per le richieste HTTP, sono incluse le intestazioni. Infatti WebSockets, questo è il numero totale di byte ricevuti dal client sulla connessione.

sent_bytes

Le dimensioni della risposta, in byte, inviata al client (richiedente). Per le richieste HTTP, sono incluse le intestazioni. Infatti WebSockets, questo è il numero totale di byte inviati al client durante la connessione.

"request"

La richiesta di riga dal client, tra virgolette doppie e registrata utilizzando il formato: metodo HTTP + protocollo://host:port/uri + versione HTTP. Il load balancer conserva l'URL inviato dal client così com'è quando registra l'URI della richiesta. Non imposta il tipo di contenuto per il file di log di accesso. Quando elabori questo campo, considera in che modo il client ha inviato l'URL.

"user_agent"

Una stringa utente-agente che identifica il client che ha originato la richiesta, racchiusa tra virgolette doppie. La stringa è composta da uno o più identificatori di prodotto, prodotto[/versione]. Se la stringa è più lunga di 8 KB viene troncata.

ssl_cipher

[Listener HTTPS] La crittografia SSL. Questo valore è impostato su - se il listener non è un listener HTTPS.

ssl_protocol

[Listener HTTPS] Il protocollo SSL. Questo valore è impostato su - se il listener non è un listener HTTPS.

target_group_arn

L'Amazon Resource Name (ARN) del gruppo di destinazioni.

"trace_id"

Il contenuto dell'intestazione X-Amzn-Trace-Id, racchiuso tra virgolette doppie.

"domain_name"

[Listener HTTPS] Il dominio SNI fornito dal client durante l'handshake TLS, racchiuso tra virgolette doppie. Questo valore viene impostato su - se il client non supporta SNI o il dominio non corrisponde a un certificato e il certificato predefinito viene presentato al client.

"chosen_cert_arn"

[Listener HTTPS] L'ARN del certificato presentato al client, racchiuso tra virgolette doppie. Questo valore è impostato su session-reused se la sessione è riutilizzata. Questo valore è impostato su - se il listener non è un listener HTTPS.

matched_rule_priority

Il valore di priorità della regola che corrisponde alla richiesta. Se era presente una regola corrispondente, si tratta di un valore da 1 a 50.000. Se non erano presenti regole corrispondenti ed è stata effettuata l'operazione predefinita, il valore è impostato su 0. Se si verifica un errore durante la valutazione delle regole, il valore è impostato su -1; per qualsiasi altro errore, è impostato su -.

request_creation_time

L'ora in cui il sistema di bilanciamento del carico ha ricevuto la richiesta dal client, nel formato ISO 8601.

"actions_executed"

Le operazioni effettuate durante l'elaborazione della richiesta, racchiuse tra virgolette doppie. Questo valore è un elenco separato da virgole che può includere i valori descritti in Operazioni intraprese. Se non è stata effettuata alcuna operazione, come per una richiesta errata, il valore è impostato su -.

"redirect_url"

L'URL della destinazione di reindirizzamento per l'intestazione Location della risposta HTTP, racchiuso tra virgolette doppie. Se non è stata effettuata alcuna operazione di reindirizzamento, il valore è impostato su -.

"error_reason"

Il codice di motivo errore, racchiuso tra virgolette doppie. Se la richiesta non è riuscita, si tratta di uno dei codici di errore descritti in Codici dei motivi degli errori. Se le azioni intraprese non includono un’operazione di autenticazione o il target non è una funzione Lambda, questo valore è impostato su - .

"target:port_list"

Un elenco delimitato da spazi di indirizzi IP e porte per le destinazioni che hanno elaborato questa richiesta, racchiuse tra virgolette doppie. Attualmente, questo elenco può contenere un elemento e corrisponde al campo target:port.

Se il client non ha inviato una richiesta completa, il sistema di bilanciamento del carico non è in grado di inviare la richiesta a una destinazione e questo valore è impostato su -.

Se la destinazione è una funzione Lambda, questo valore è impostato su -.

Se la richiesta è bloccata da AWS WAF, questo valore è impostato su - e il valore di elb_status_code è impostato su 403.

"target_status_code_list"

Un elenco delimitato da spazi di codici di stato dalle risposte delle destinazioni, racchiuse tra virgolette doppie. Attualmente, questo elenco può contenere un elemento e corrisponde al campo target_status_code.

Questo valore viene registrato solo se è stata stabilita una connessione con la destinazione e quest'ultima ha inviato una risposta. Altrimenti il valore è impostato su -.

"classification"

La classificazione della mitigazione della desincronizzazione, racchiusa tra virgolette doppie. Se la richiesta non è conforme a RFC 7230, i valori possibili sono Accettabile, Ambiguo e Grave.

Se la richiesta è conforme a RFC 7230, questo valore è impostato su -.

"classification_reason"

Il codice del motivo della classificazione, racchiuso tra virgolette doppie. Se la richiesta non è conforme a RFC 7230, si tratta di uno dei codici di classificazione descritti in Motivi della classificazione. Se la richiesta è conforme a RFC 7230, questo valore è impostato su -.

conn_trace_id

L'ID di tracciabilità della connessione è un ID opaco univoco utilizzato per identificare ogni connessione. Dopo aver stabilito una connessione con un client, le richieste successive di questo client conterranno questo ID nelle rispettive voci del registro di accesso. Questo ID funge da chiave esterna per creare un collegamento tra la connessione e i log di accesso.

Operazioni intraprese

Il sistema di bilanciamento del carico archivia le operazioni intraprese nel campo actions_executed del log di accesso.

  • authenticate: il sistema di bilanciamento del carico ha convalidato la sessione, autenticato l'utente e aggiunto le informazioni dell'utente alle intestazioni della richiesta, come specificato dalla configurazione della regola.

  • fixed-response: il sistema di bilanciamento del carico ha generato una risposta fissa, come specificato dalla configurazione della regola.

  • forward: il sistema di bilanciamento del carico ha inoltrato la richiesta a una destinazione, come specificato dalla configurazione della regola.

  • redirect: il sistema di bilanciamento del carico ha reindirizzato la richiesta a un altro URL, come specificato dalla configurazione della regola.

  • waf: il sistema di bilanciamento del carico ha inoltrato la richiesta a AWS WAF per determinare se la richiesta deve essere inoltrata alla destinazione. Se questa è l'azione finale, AWS WAF stabilisce che la richiesta deve essere rifiutata.

  • waf-failed— Il sistema di bilanciamento del carico ha tentato di inoltrare la richiesta a AWS WAF, ma il processo non è riuscito.

Motivi della classificazione

Se una richiesta non è conforme a RFC 7230, il sistema di bilanciamento del carico archivia uno dei seguenti codici nel campo classification_reason del log di accesso. Per ulteriori informazioni, consulta Modalità di mitigazione della desincronizzazione.

Codice Descrizione Classificazione

AmbiguousUri

L'URI della richiesta contiene caratteri di controllo.

Ambiguo

BadContentLength

L'intestazione Content-Length contiene un valore che non può essere analizzato o non è un numero valido.

Grave

BadHeader

Un'intestazione contiene un carattere nullo o un'andata a capo.

Grave

BadTransferEncoding

L'intestazione Transfer-Encoding contiene un valore non valido.

Grave

BadUri

L'URI della richiesta contiene un carattere nullo o un'andata a capo.

Grave

BadMethod

Il formato del metodo di richiesta è errato.

Grave

BadVersion

Il formato della versione della richiesta è errato.

Grave

BothTeClPresent

La richiesta contiene sia un'intestazione Transfer-Encoding che un'intestazione Content-Length.

Ambiguo

DuplicateContentLength

Esistono più intestazioni Content-Length con lo stesso valore.

Ambiguo

EmptyHeader

Un'intestazione è vuota o c'è una riga con solo spazi.

Ambiguo

GetHeadZeroContentLength

Esiste un'intestazione Content-Length con un valore pari a 0 per una richiesta GET o HEAD.

Accettabile

MultipleContentLength

Esistono più intestazioni Content-Length con valori diversi.

Grave

MultipleTransferEncodingChunked

Esistono più Transfer-Encoding: intestazioni a blocchi.

Grave

NonCompliantHeader

Un'intestazione contiene un carattere non ASCII o di controllo.

Accettabile

NonCompliantVersion

La versione della richiesta contiene un valore non valido.

Accettabile

SpaceInUri

L'URI della richiesta contiene uno spazio che non ha codifica URL.

Accettabile

SuspiciousHeader

C'è un'intestazione che può essere normalizzata per Transfer-Encoding o Content-Length utilizzando tecniche comuni di normalizzazione del testo.

Ambiguo

UndefinedContentLengthSemantics

Esiste un'intestazione Content-Length definita per una richiesta GET o HEAD.

Ambiguo

UndefinedTransferEncodingSemantics

Esiste un'intestazione Transfer-Encoding definita per una richiesta GET o HEAD.

Ambiguo

Codici dei motivi degli errori

Se il sistema di bilanciamento del carico non può completare un’operazione di autenticazione, il sistema di bilanciamento del carico archivia uno dei seguenti codici di motivo nel campo error_reason del log di accesso. Il load balancer incrementa inoltre la metrica corrispondente. CloudWatch Per ulteriori informazioni, consulta Autenticazione degli utenti tramite Application Load Balancer.

Codice Descrizione Parametro

AuthInvalidCookie

Il cookie di autenticazione non è valido.

ELBAuthFailure

AuthInvalidGrantError

Il codice per la concessione delle autorizzazioni dall’endpoint del token non è valido.

ELBAuthFailure

AuthInvalidIdToken

Il token dell’ID non è valido.

ELBAuthFailure

AuthInvalidStateParam

Il parametro dello stato non è valido.

ELBAuthFailure

AuthInvalidTokenResponse

La risposta dall’endpoint del token non è valida.

ELBAuthFailure

AuthInvalidUserinfoResponse

La risposta dall’endpoint di informazione dell’utente non è valida.

ELBAuthFailure

AuthMissingCodeParam

La risposta di autenticazione dall’endpoint di autorizzazione non ha un parametro di query denominato “codice”.

ELBAuthFailure

AuthMissingHostHeader

La risposta di autenticazione dall’endpoint di autorizzazione non ha un campo di intestazione host.

ELBAuthError

AuthMissingStateParam

La risposta di autenticazione dall’endpoint di autorizzazione non ha un campo di intestazione host.

ELBAuthFailure

AuthTokenEpRequestFailed

C’è una risposta di errore (non-2XX) dall’endpoint del token.

ELBAuthError

AuthTokenEpRequestTimeout

C’è una risposta di errore (non-2XX) dall’endpoint del token.

ELBAuthError

AuthUnhandledException

Il sistema di bilanciamento del carico ha incontrato un’eccezione non gestita.

ELBAuthError

AuthUserinfoEpRequestFailed

C’è una risposta di errore (non 2XX) dall’endpoint di informazione dell’utente IdP

ELBAuthError

AuthUserinfoEpRequestTimeout

Il sistema di bilanciamento del carico non è in grado di comunicare con l’endpoint di informazione dell’utente IdP

ELBAuthError

AuthUserinfoResponseSizeExceeded

La dimensione delle richieste restituite dall’IdP supera i 11K byte.

ELBAuthUserClaimsSizeExceeded

Se una richiesta a un gruppo di destinazioni ponderato ha esito negativo, il sistema di bilanciamento del carico archivia uno dei seguenti codici di errore nel campo error_reason del log di accesso.

Codice Descrizione

AWSALBTGCookieInvalid

Il AWSALBTG cookie, utilizzato con gruppi target ponderati, non è valido. Ad esempio, il bilanciamento del carico restituisce questo errore quando i valori dei cookie sono URL codificati.

WeightedTargetGroupsUnhandledException

Il sistema di bilanciamento del carico ha incontrato un’eccezione non gestita.

Se una richiesta a una funzione Lambda ha esito negativo, il sistema di bilanciamento del carico archivia uno dei seguenti codici di motivo nel campo error_reason del log di accesso. Il load balancer incrementa anche la metrica corrispondente. CloudWatch Per ulteriori informazioni, consultare l'operazione Lambda Invoke.

Codice Descrizione Parametro

LambdaAccessDenied

Il sistema di bilanciamento del carico non aveva l'autorizzazione a chiamare la funzione Lambda.

LambdaUserError

LambdaBadRequest

Invocazione Lambda non riuscita perché le intestazioni o il corpo della richiesta client non contenevano solo caratteri UTF-8.

LambdaUserError

LambdaConnectionError

Il sistema di bilanciamento del carico non è in grado di connettersi a Lambda.

LambdaInternalError

LambdaConnectionTimeout

Un tentativo di connessione a Lambda è scaduto.

LambdaInternalError

LambdaEC2AccessDeniedException

Amazon EC2 ha negato l'accesso a Lambda durante l'inizializzazione della funzione.

LambdaUserError

LambdaEC2ThrottledException

Amazon EC2 ha sottoposto a Lambda a limitazione durante l'inizializzazione della funzione.

LambdaUserError

LambdaEC2UnexpectedException

Amazon EC2 ha riscontrato un'eccezione inattesa durante l'inizializzazione della funzione.

LambdaUserError

LambdaENILimitReachedException

Lambda non è stato in grado di creare un'interfaccia di rete nel VPC specificato nella configurazione della funzione Lambda poiché è stato superato il limite di interfacce di rete.

LambdaUserError

LambdaInvalidResponse

La risposta dalla funzione Lambda è errata o non sono presenti i campi obbligatori.

LambdaUserError

LambdaInvalidRuntimeException

La versione specificata del runtime di Lambda non è supportata.

LambdaUserError

LambdaInvalidSecurityGroupIDException

L'ID del gruppo di sicurezza specificato nella configurazione della funzione Lambda non è valido.

LambdaUserError

LambdaInvalidSubnetIDException

L'ID della sottorete specificato nella configurazione della funzione Lambda non è valido.

LambdaUserError

LambdaInvalidZipFileException

Lambda non è stato in grado di decomprimere il file zip della funzione specificato.

LambdaUserError

LambdaKMSAccessDeniedException

Lambda non è stato in grado di decrittare le variabili di ambiente poiché è stato rifiutato l'accesso alla chiave KMS. Verifica le autorizzazioni KMS della funzione Lambda.

LambdaUserError

LambdaKMSDisabledException

Lambda non è stato in grado di decrittare le variabili di ambiente poiché la chiave KMS specificata è disabilitata. Verifica le autorizzazioni della chiave KMS della funzione Lambda.

LambdaUserError

LambdaKMSInvalidStateException

Lambda non è stato in grado di decrittare le variabili di ambiente poiché lo stato della chiave KMS non è valido. Verifica le autorizzazioni della chiave KMS della funzione Lambda.

LambdaUserError

LambdaKMSNotFoundException

Lambda non è stato in grado di decrittare le variabili di ambiente poiché non è stata trovata la KMS. Verifica le autorizzazioni della chiave KMS della funzione Lambda.

LambdaUserError

LambdaRequestTooLarge

Le dimensioni del corpo della richiesta hanno superato 1 MB.

LambdaUserError

LambdaResourceNotFound

La funzione Lambda non è stata trovata.

LambdaUserError

LambdaResponseTooLarge

Le dimensioni della risposta hanno superato 1 MB.

LambdaUserError

LambdaServiceException

Lambda ha riscontrato un errore interno.

LambdaInternalError

LambdaSubnetIPAddressLimitReachedException

Lambda non è stato in grado di configurare l'accesso VPC per la funzione Lambda poiché una o più sottoreti non hanno indirizzi IP disponibili.

LambdaUserError

LambdaThrottling

La funzione Lambda è stata sottoposta a throttling a causa di troppe richieste.

LambdaUserError

LambdaUnhandled

La funzione Lambda ha riscontrato un'eccezione non gestita.

LambdaUserError

LambdaUnhandledException

Il sistema di bilanciamento del carico ha incontrato un’eccezione non gestita.

LambdaInternalError

LambdaWebsocketNotSupported

WebSockets non sono supportati con Lambda.

LambdaUserError

Se il load balancer rileva un errore durante l'inoltro delle richieste a AWS WAF, memorizza uno dei seguenti codici di errore nel campo error_reason del log di accesso.

Codice Descrizione

WAFConnectionError

Il sistema AWS WAF di bilanciamento del carico non può connettersi a.

WAFConnectionTimeout

La connessione a è AWS WAF scaduta.

WAFResponseReadTimeout

Una richiesta da AWS WAF scadere.

WAFServiceError

AWS WAF ha restituito un errore 5XX.

WAFUnhandledException

Il sistema di bilanciamento del carico ha incontrato un’eccezione non gestita.

Voci di log di esempio

Di seguito sono riportati esempi di voci di log; Tieni presente che il testo appare su più linee solo per semplificarne la lettura.

Esempio di voce HTTP

Nell'esempio seguente viene mostrata una voce di log di un listener HTTP (da porta 80 a porta 80):

http 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337262-36d228ad5d99923122bbe354" "-" "-" 0 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.1:80" "200" "-" "-"
Esempio di voce HTTPS

Nell'esempio seguente viene mostrata una voce di log di un listener HTTPS (da porta 443 a porta 80):

https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012" 1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-" "10.0.0.1:80" "200" "-" "-" TID_123456
Esempio di voce HTTP/2

Nell'esempio seguente viene mostrata una voce di log di un flusso HTTP/2

h2 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.1.252:48160 10.0.0.66:9000 0.000 0.002 0.000 200 200 5 257 "GET https://10.0.2.105:773/ HTTP/2.0" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337327-72bd00b0343d75b906739c42" "-" "-" 1 2018-07-02T22:22:48.364000Z "redirect" "https://example.com:80/" "-" "10.0.0.66:9000" "200" "-" "-"
Esempio WebSockets di inserimento

Di seguito è riportato un esempio di voce di registro per una WebSockets connessione.

ws 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:40914 10.0.1.192:8010 0.001 0.003 0.000 101 101 218 587 "GET http://10.0.0.30:80/ HTTP/1.1" "-" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.1.192:8010" "101" "-" "-"
Esempio di immissione protetta WebSockets

Di seguito è riportato un esempio di voce di registro per una connessione protetta WebSockets.

wss 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:44244 10.0.0.171:8010 0.000 0.001 0.000 101 101 218 786 "GET https://10.0.0.30:443/ HTTP/1.1" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.171:8010" "101" "-" "-"
Esempio di voci delle funzioni Lambda

Nell'esempio seguente viene mostrata una voce di log di una richiesta a una funzione Lambda che ha avuto esito positivo:

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "-" "-" "-" "-" "-"

Nell'esempio seguente viene mostrata una voce di log di una richiesta a una funzione Lambda che ha avuto esito negativo:

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 502 - 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "LambdaInvalidResponse" "-" "-" "-" "-"

Elaborazione dei file di log di accesso

I file di log di accesso sono compressi. Se li apri tramite la console Amazon S3, i file vengono decompressi e le informazioni visualizzate. Se scarichi i file, li devi decomprimere per visualizzare le informazioni.

Se il sito Web ha notevole quantità di domanda, il tuo load balancer può generare i file di log con i gigabyte di dati. Potresti non essere in grado di elaborare una quantità così grande di dati utilizzando l' line-by-line elaborazione. Pertanto, potresti dover utilizzare gli strumenti di analisi che offrono soluzioni di elaborazione parallela. Ad esempio, puoi utilizzare i seguenti strumenti per analizzare ed elaborare i log di accesso: