Log di connessione per l'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 connessione per l'Application Load Balancer

Elastic Load Balancing fornisce log di connessione che raccolgono informazioni dettagliate sulle richieste inviate al sistema di bilanciamento del carico. Ogni registro contiene informazioni come l'indirizzo IP e la porta del client, la porta del listener, il codice TLS e il protocollo utilizzati, la latenza dell'handshake TLS, lo stato della connessione e i dettagli del certificato del client. È possibile utilizzare questi log di connessione per analizzare i modelli di richiesta e risolvere i problemi.

I log di connessione sono una funzionalità opzionale di Elastic Load Balancing che è disabilitata per impostazione predefinita. Dopo aver abilitato i log di connessione 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 connessione 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 registro delle connessioni

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 dei registri delle connessioni utilizzano il seguente formato:

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/conn_log.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/conn_log.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/conn_log.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 di log del registro di connessione

Ogni tentativo di connessione ha una voce in un file di registro della connessione. Il modo in cui vengono inviate le richieste dei client è determinato dal fatto che la connessione sia persistente o non persistente. Le connessioni non persistenti hanno un'unica richiesta, che crea una singola voce nel registro degli accessi e nel registro delle connessioni. Le connessioni persistenti hanno più richieste, il che crea più voci nel registro degli accessi e una singola voce nel registro delle connessioni.

Sintassi

Le voci del registro di connessione utilizzano il seguente formato:

[timestamp] [client_ip] [client_port] [listener_port] [tls_protocol] [tls_cipher] [tls_handshake_latency] [leaf_client_cert_subject] [leaf_client_cert_validity] [leaf_client_cert_serial_number] [tls_verify_status]

La tabella seguente descrive i campi di una voce del registro di connessione, in ordine. 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

timestamp

L'ora, in formato ISO 8601, in cui il sistema di bilanciamento del carico ha stabilito o non è riuscito a stabilire una connessione.

client_ip

L'indirizzo IP del client richiedente.

client_port

La porta del client richiedente.

listener_port

La porta del listener del load balancer che riceve la richiesta del client.

tls_protocol

[HTTPS listener] Il protocollo SSL/TLS utilizzato durante le strette di mano. Questo campo è impostato per le richieste non SSL/TLS. -

tls_cipher

[Listener HTTPS] Il protocollo SSL/TLS utilizzato durante le strette di mano. Questo campo è impostato per le richieste non SSL/TLS. -

tls_handshake_latency

[HTTPS listener] Il tempo totale in secondi, con una precisione di millisecondi, è trascorso durante la creazione di una stretta di mano riuscita. Questo campo è impostato su quando: -

  • La richiesta in entrata non è una richiesta SSL/TLS.

  • L'handshake non è stato stabilito correttamente.

leaf_client_cert_subject

[HTTPS listener] Il nome dell'oggetto del certificato del client leaf. Questo campo è impostato su - quando:

  • La richiesta in entrata non è una richiesta SSL/TLS.

  • Il listener di load balancer non è configurato con MTLS abilitato.

  • Il server non è in grado di caricare/analizzare il certificato del client leaf.

leaf_client_cert_idity

[HTTPS listener] La validità, con not-before e not-after in formato ISO 8601, del certificato del client leaf. Questo campo è impostato su quando: -

  • La richiesta in entrata non è una richiesta SSL/TLS.

  • Il listener di load balancer non è configurato con MTLS abilitato.

  • Il server non è in grado di caricare/analizzare il certificato del client leaf.

leaf_client_cert_serial_number

[HTTPS listener] Il numero di serie del certificato del client leaf. Questo campo è impostato su - quando:

  • La richiesta in entrata non è una richiesta SSL/TLS.

  • Il listener di load balancer non è configurato con MTLS abilitato.

  • Il server non è in grado di caricare/analizzare il certificato del client leaf.

tls_verify_status

[HTTPS listener] Lo stato della richiesta di connessione. Questo valore è Success se la connessione è stata stabilita correttamente. In caso di connessione non riuscita, il valore èFailed:$error_code.

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.

Codici dei motivi degli errori

Se il sistema di bilanciamento del carico non è in grado di stabilire una connessione, memorizza uno dei seguenti codici motivo nel registro delle connessioni.

Codice Descrizione

ClientCertMaxChainDepthExceeded

La profondità massima della catena di certificati del client è stata superata

ClientCertMaxSizeExceeded

La dimensione massima del certificato client è stata superata

ClientCertCrlHit

Il certificato client è stato revocato dalla CA

ClientCertCrlProcessingError

Errore di elaborazione CRL

ClientCertUntrusted

Il certificato client non è attendibile

ClientCertNotYetValid

Il certificato client non è ancora valido

ClientCertExpired

Il certificato client è scaduto

ClientCertTypeUnsupported

Il tipo di certificato client non è supportato

ClientCertInvalid

Il certificato client non è valido

ClientCertRejected

Il certificato client viene rifiutato dalla convalida personalizzata del server

UnmappedConnectionError

Errore di connessione in runtime non mappato

Voci di log di esempio

Di seguito sono riportati alcuni esempi di voci del registro di connessione.

Di seguito è riportato un esempio di voce di registro per una connessione riuscita con un listener HTTPS con la modalità di verifica TLS reciproca abilitata sulla porta 443:

2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 4.036 "CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z FEF257372D5C14D4 Success

Di seguito è riportato un esempio di voce di registro relativa a una connessione non riuscita con un listener HTTPS con la modalità di verifica TLS reciproca abilitata sulla porta 443. :

2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 - "CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z FEF257372D5C14D4 Failed:ClientCertUntrusted

Elaborazione dei file di registro delle connessioni

I file di registro delle connessioni 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, è possibile utilizzare i seguenti strumenti analitici per analizzare ed elaborare i registri di connessione:

  • Amazon Athena è un servizio di query interattivo che semplifica l'analisi dei dati in Amazon S3 con SQL standard.

  • Loggly

  • Splunk

  • Sumo logic