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à.
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 per impostazione predefinita è disabilitata. Dopo aver abilitato i log di accesso per il load balancer, Elastic Load Balancing acquisisce i log e li archivia nel bucket Amazon S3 specificato. Puoi disabilitare la registrazione degli accessi in qualsiasi momento.
Ogni file di log di accesso viene crittografato automaticamente utilizzando SSE-S3 prima di essere archiviato nel bucket S3 e decrittografato quando vi accedi. Non sono necessari interventi; la crittografia e decrittografia vengono eseguite in modo trasparente. Ogni file di registro è crittografato con una chiave univoca, a sua volta crittografata con una chiave KMS che viene ruotata regolarmente. Per ulteriori informazioni, consulta Protezione dei dati utilizzando la crittografia lato server con chiavi di crittografia gestite da Amazon S3 (SSE-S3) nella Guida per l'utente di Amazon S3.
Non sono previsti costi aggiuntivi per i log di accesso. Verranno addebitati i costi di storage 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, consultare Prezzi di Amazon S3
Indice
File di log di accesso
Elastic Load Balancing pubblica un file di log per ogni nodo del load balancer all'intervallo specificato. Puoi specificare un intervallo di pubblicazione di 5 o 60 minuti quando abiliti il log di accesso per il load balancer. Per impostazione predefinita, Elastic Load Balancing pubblica log a intervalli di 60 minuti. Se l'intervallo è impostato su 5 minuti, i log vengono pubblicati all'1:05, 1:10, 1:15 e così via. L'avvio della distribuzione dei log viene ritardato fino a 5 minuti se l'intervallo è impostato su 5 minuti e fino a 15 minuti se l'intervallo è impostato su 60 minuti. Puoi modificare l'intervallo di pubblicazione in qualsiasi momento.
Il load balancer è in grado di consegnare più log per lo stesso periodo. In genere questo accade se il sito presenta un traffico elevato, più nodi del load balancer e un breve intervallo di pubblicazione dei log.
I nomi dei file di log di accesso utilizzano il formato seguente:
amzn-s3-demo-loadbalancer-logs
[/logging-prefix
]/AWSLogs/aws-account-id
/elasticloadbalancing/region
/yyyy
/mm
/dd
/aws-account-id
_elasticloadbalancing_region
_load-balancer-name
_end-time
_ip-address
_random-string
.log
- amzn-s3- demo-loadbalancer-logs
-
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 dell' AWS 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-name
-
Il nome del load balancer.
- end-time
-
La data e l'ora di fine dell'intervallo dei log. Ad esempio, l'ora di fine 20140215T2340Z contiene voci per le richieste effettuate tra le 23:35 e le 23:40 se l'intervallo di pubblicazione è di 5 minuti.
- 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 registro con il prefisso»my-app":
s3://amzn-s3-demo-loadbalancer-logs/my-app/AWSLogs/123456789012/elasticloadbalancing/us-west-2/2018/02/15/123456789012_elasticloadbalancing_us-west-2_my-loadbalancer_20180215T2340Z_172.160.001.192_20sg8hgm.log
Di seguito è riportato un esempio di nome di file di log senza un prefisso:
s3://amzn-s3-demo-loadbalancer-logs/AWSLogs/123456789012/elasticloadbalancing/us-west-2/2018/02/15/123456789012_elasticloadbalancing_us-west-2_my-loadbalancer_20180215T2340Z_172.160.001.192_20sg8hgm.log
È 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 la gestione del ciclo di vita degli oggetti nella Guida per l'utente di Amazon S3.
Voci dei log di accesso
Elastic Load Balancing registra le richieste inviate al load balancer, incluse le richieste mai effettuate alle istanze di back-end. Ad esempio, se un client invia una richiesta errata o se non sono presenti istanze integre per rispondere alle richieste, queste vengono comunque registrate.
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
Ogni voce di log contiene i dettagli di una singola richiesta inviata al load balancer. Tutti i campi nella voce di log sono delimitati da spazi. Ogni voce del file di log ha il formato seguente:
timestamp elb client:port backend:port request_processing_time backend_processing_time response_processing_time elb_status_code backend_status_code received_bytes sent_bytes "request" "user_agent" ssl_cipher ssl_protocol
La seguente tabella descrive i campi di una voce di un log di accesso.
Campo | Descrizione |
---|---|
time |
L'ora in cui il load balancer ha ricevuto la richiesta dal client, nel formato ISO 8601. |
elb |
Il nome del load balancer |
client:port |
L'indirizzo IP e la porta del client che esegue la richiesta. |
backend:port |
L'indirizzo IP e la porta dell'istanza registrata che ha elaborato la richiesta. Se il load balancer non può inviare la richiesta a un'istanza registrata oppure se l'istanza chiude la connessione prima che possa essere inviata una risposta, questo valore è impostato su Questo valore può anche essere impostato su |
request_processing_time |
[Listener HTTP] Il tempo totale trascorso, in secondi, dal momento in cui il load balancer ha ricevuto la richiesta al momento in cui l'ha inviata a un'istanza registrata. [Listener TCP] Il tempo totale trascorso, in secondi, dal momento in cui il load balancer ha accettato una connessione TCP/SSL da un client al momento in cui il load balancer invia il primo byte di dati a un'istanza registrata. Questo valore è impostato su Questo valore può anche essere impostato su |
backend_processing_time |
[Listener HTTP] Il tempo totale trascorso, in secondi, dal momento in cui il load balancer ha inviato la richiesta a un'istanza registrata fino a quando l'istanza ha iniziato a inviare le intestazioni di risposta. [Listener TCP] Il tempo totale trascorso, in secondi, affinché il load balancer stabilisca una connessione con un'istanza registrata. Questo valore è impostato su Questo valore può anche essere impostato su |
response_processing_time |
[Listener HTTP] Il tempo totale trascorso, in secondi, dal momento in cui il load balancer ha ricevuto l'intestazione della risposta dall'istanza registrata al momento in cui 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. [Listener TCP] Il tempo totale trascorso, in secondi, dal momento in cui il load balancer ha ricevuto il primo byte dall'istanza registrata al momento in cui ha iniziato a inviare la risposta al client. Questo valore è impostato su Questo valore può anche essere impostato su |
elb_status_code |
[Listener HTTP] Il codice di stato della risposta ricevuta dal load balancer. |
backend_status_code |
[Listener HTTP] Il codice di stato della risposta ricevuta dall'istanza registrata. |
received_bytes |
Le dimensioni della richiesta, in byte, ricevuta dal client (richiedente). [Listener HTTP] Il valore include il corpo della richiesta ma non le intestazioni. [Listener TCP] Il valore include il corpo della richiesta e le intestazioni. |
sent_bytes |
Le dimensioni della risposta, in byte, inviata al client (richiedente). [Listener HTTP] Il valore include il corpo della risposta ma non le intestazioni. [Listener TCP] Il valore include il corpo della richiesta e le intestazioni. |
richiesta |
La riga della richiesta ricevuta dal client, tra virgolette doppie e registrata nel seguente formato: metodo HTTP + Protocollo://Intestazione host:porta + Percorso + 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. [Listener TCP] L'URL è costituito da tre trattini, ciascuno separato da uno spazio, con uno spazio finale ("- - -"). |
user_agent |
[]. HTTP/HTTPS listener] A User-Agent string that identifies the client that originated the request. The string consists of one or more product identifiers, product[/version Se la stringa è più lunga di 8 KB, viene troncata. |
ssl_cipher |
[HTTPS/SSL listener] The SSL cipher. This value is recorded only if the incoming SSL/TLSla connessione è stata stabilita dopo una negoziazione riuscita. In caso contrario, il valore è impostato su |
ssl_protocol |
[HTTPS/SSL listener] The SSL protocol. This value is recorded only if the incoming SSL/TLSla connessione è stata stabilita dopo una negoziazione riuscita. In caso contrario, il valore è impostato su |
Esempi
Esempio di voce HTTP
Nell'esempio seguente viene mostrata una voce di log di un listener HTTP (da porta 80 a porta 80):
2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.000073 0.001048 0.000057 200 200 0 29 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.38.0" - -
Esempio di voce HTTPS
Nell'esempio seguente viene mostrata una voce di log di un listener HTTPS (da porta 443 a porta 80):
2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.000086 0.001048 0.001337 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.38.0" DHE-RSA-AES128-SHA TLSv1.2
Esempio di voce TCP
Nell'esempio seguente viene mostrata una voce di log di un listener TCP (da porta 8080 a porta 80):
2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.001069 0.000028 0.000041 - - 82 305 "- - - " "-" - -
Esempio di voce SSL
Nell'esempio seguente viene mostrata una voce di log di un listener SSL (da porta 8443 a porta 80):
2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.001065 0.000015 0.000023 - - 57 502 "- - - " "-" ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2
Elaborazione dei log di accesso
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-lineelaborazione. 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:
-
Amazon Athena è un servizio di query interattivo che semplifica l'analisi dei dati in Amazon S3 con SQL standard. Per ulteriori informazioni, consulta la sezione relativa all'Esecuzione di query sui log Classic Load Balancer nella Guida per l'utente di Amazon Athena.