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à.
Riferimento di registrazione standard
Le seguenti sezioni si applicano sia alla registrazione standard (v2) che alla registrazione standard (legacy).
Argomenti
Tempi di consegna dei file di registro
CloudFront consegna i log per una distribuzione fino a diverse volte all'ora. In generale, un file di registro contiene informazioni sulle richieste CloudFront ricevute in un determinato periodo di tempo. CloudFront in genere consegna il file di registro per quel periodo di tempo a destinazione entro un'ora dagli eventi visualizzati nel registro. Nota, tuttavia, che alcune o tutte le voci di file di log relative a un periodo di tempo possono talvolta essere ritardate fino a 24 ore. Quando le voci di registro vengono ritardate, le CloudFront salva in un file di registro il cui nome del file include la data e l'ora del periodo in cui sono avvenute le richieste, non la data e l'ora di consegna del file.
Quando si crea un file di registro, CloudFront consolida le informazioni per la distribuzione da tutte le edge location che hanno ricevuto le richieste relative agli oggetti durante il periodo di tempo coperto dal file di registro.
CloudFront può salvare più di un file per un periodo di tempo a seconda del numero di richieste CloudFront ricevute per gli oggetti associati a una distribuzione.
CloudFront inizia a fornire in modo affidabile i log di accesso circa quattro ore dopo l'attivazione della registrazione. È possibile che tu ottenga alcuni log di accesso prima di quel momento.
Nota
Se nessun utente richiede i tuoi oggetti durante il periodo di tempo, non riceverai alcun file di log per quel periodo.
Modalità di registrazione delle richieste quando l'URL o le intestazioni di richiesta superano la dimensione massima.
Se la dimensione totale di tutte le intestazioni di richiesta, inclusi i cookie, supera i 20 KB o se l'URL supera 8192 byte, CloudFront non può analizzare completamente la richiesta e non è in grado di registrare la richiesta. Poiché la richiesta non viene registrata, nei file di log non sarà possibile visualizzare il codice di stato dell'errore HTTP restituito.
Se il corpo della richiesta supera la dimensione massima, la richiesta viene registrata, incluso il codice di stato dell'errore HTTP.
campi del file di registro
Il file di registro di una distribuzione contiene 33 campi. L'elenco seguente contiene ogni nome di campo, in ordine, insieme a una descrizione delle informazioni contenute in tale campo.
-
date
La data in cui si è verificato l'evento nel formato
YYYY-MM-DD
. Ad esempio2019-06-30
. La data e l'ora sono in formato UTC. Per WebSocket le connessioni, questa è la data di chiusura della connessione. -
time
L'ora in cui il CloudFront server ha finito di rispondere alla richiesta (in UTC), ad esempio,.
01:42:39
Per WebSocket le connessioni, questa è l'ora in cui la connessione viene chiusa. -
x-edge-location
La edge location che ha servito la richiesta. Ogni posizione del bordo è identificata da un codice di tre lettere e da un numero assegnato arbitrariamente (ad esempio, DFW3). Il codice di tre lettere di solito corrisponde al codice aeroportuale della IATA (International Air Transport Association) per l'aeroporto vicino alla posizione geografica della posizione edge. (Queste abbreviazioni potrebbero cambiare in futuro).
-
sc-bytes
Il numero totale di byte che il server ha inviato al visualizzatore in risposta alla richiesta, incluse le intestazioni. Per le connessioni WebSocket e gRPC, questo è il numero totale di byte inviati dal server al client tramite la connessione.
-
c-ip
L'indirizzo IP del visualizzatore che ha effettuato la richiesta, ad esempio,
192.0.2.183
o2001:0db8:85a3::8a2e:0370:7334
. Se il visualizzatore ha utilizzato un proxy HTTP o un sistema di bilanciamento del carico (load balancer) per inviare la richiesta, il valore di questo campo è l'indirizzo IP del proxy o del sistema di bilanciamento (load balancer) del carico. Vedere anche il campox-forwarded-for
. -
cs-method
Il metodo di richiesta HTTP ricevuto dal visualizzatore.
-
cs(Host)
Il nome di dominio della CloudFront distribuzione (ad esempio, d111111abcdef8.cloudfront.net).
-
cs-uri-stem
La parte dell'URL della richiesta che identifica il percorso e l'oggetto (ad esempio,
/images/cat.jpg
). Punti interrogativi (?) le stringhe in URLs e di query non sono incluse nel registro. -
sc-status
Contiene uno dei seguenti valori:
-
Il codice di stato HTTP della risposta del server (ad esempio,
200
). -
000
, che indica che il visualizzatore ha chiuso la connessione prima che il server potesse rispondere alla richiesta. Se il visualizzatore chiude la connessione dopo che il server inizia a inviare la risposta, questo campo contiene il codice di stato HTTP della risposta che il server ha iniziato a inviare.
-
-
cs(Referer)
Il valore dell'intestazione
Referer
nella richiesta. Questo è il nome del dominio all'origine della richiesta. I referrer comuni includono motori di ricerca, altri siti Web con collegamenti diretti ai tuoi oggetti e il tuo sito Web. -
cs(User-Agent)
Il valore dell'intestazione
User-Agent
nella richiesta. L'intestazioneUser-Agent
identifica l'origine della richiesta, ad esempio il tipo di dispositivo e browser che ha inviato la richiesta e, se la richiesta proveniva da un motore di ricerca, il motore di ricerca. -
cs-uri-query
L'eventuale parte della stringa di query nell'URL.
Quando un URL non contiene una stringa di query, il valore di questo campo è un trattino (-). Per ulteriori informazioni, consulta Contenuto della cache in base ai parametri della stringa di query.
-
cs(Cookie)
L'intestazione
Cookie
nella richiesta, incluse le coppie nome-valore e gli attributi associati.Se abiliti la registrazione dei cookie, CloudFront registra i cookie in tutte le richieste indipendentemente dai cookie che scegli di inoltrare all'origine. Quando una richiesta non include un'intestazione di cookie, il valore di questo campo è un trattino (-). Per ulteriori informazioni sui cookie, consulta Contenuto della cache basato sui cookie.
-
x-edge-result-type
Come il server ha classificato la risposta dopo che l'ultimo byte ha lasciato il server. In alcuni casi, il tipo di risultato può variare tra il momento in cui il server è pronto a inviare la risposta e il momento in cui ha finito di inviare la risposta. Vedere anche il campo
x-edge-response-result-type
.Ad esempio, in streaming HTTP, si supponga che il server trovi un segmento del flusso nella cache. In questo scenario, il valore di questo campo sarebbe normalmente
Hit
. Tuttavia, se il visualizzatore chiude la connessione prima che il server abbia distribuito l'intero segmento, il tipo di risultato finale, e quindi il valore di questo campo, èError
.WebSocket e le connessioni gRPC avranno un valore
Miss
per questo campo perché il contenuto non è memorizzabile nella cache e viene inviato tramite proxy direttamente all'origine.I valori possibili includono:
-
Hit
– Il server ha servito l'oggetto al visualizzatore dalla cache. -
RefreshHit
– Il server ha trovato l'oggetto nella cache, ma l'oggetto era scaduto, pertanto il server ha contattato l'origine per verificare che la cache disponesse della versione più recente dell'oggetto. -
Miss
– La richiesta non è stata soddisfatta da un oggetto nella cache, per cui il server ha inoltrato la richiesta all’origine e ha restituito il risultato al visualizzatore. -
LimitExceeded
— La richiesta è stata rifiutata perché è stata superata una CloudFront quota (precedentemente denominata limite). -
CapacityExceeded
: il server ha restituito un codice di stato HTTP 503 in quanto non disponeva di capacità sufficiente al momento della richiesta per servire l'oggetto. -
Error
– In genere, ciò significa che la richiesta ha provocato un errore client (il valore del camposc-status
è compreso nell'intervallo4xx
) o un errore del server (il valore del camposc-status
è nell'intervallo5xx
). Se il valore del camposc-status
è200
, o se il valore di questo campo èError
e il valore del campox-edge-response-result-type
non èError
, significa che la richiesta HTTP ha avuto esito positivo, ma il client si è disconnesso prima di ricevere tutti i byte. -
Redirect
– Il server ha reindirizzato il visualizzatore da HTTP a HTTPS in base alle impostazioni di distribuzione.
-
-
x-edge-request-id
Una stringa opaca che identifica in modo univoco una richiesta. CloudFront invia anche questa stringa nell'intestazione della
x-amz-cf-id
risposta. -
x-host-header
Il valore che il visualizzatore ha incluso nell'intestazione
Host
per questa richiesta. Se utilizzi il nome di CloudFront dominio nel tuo oggetto URLs (ad esempio d111111abcdef8.cloudfront.net), questo campo contiene quel nome di dominio. Se utilizzi nomi di dominio alternativi () nell'oggetto (come www.example.comCNAMEs), questo campo contiene il nome di dominio URLs alternativo.Se utilizzi i nomi di dominio alternativi, consulta
cs(Host)
nel campo 7 per il nome di dominio associato alla distribuzione. -
cs-protocol
Protocollo della richiesta del visualizzatore (
http
,https
,grpcs
,ws
owss
). -
cs-bytes
Numero totale di byte di dati che il visualizzatore ha incluso nella richiesta, incluse le intestazioni. Per le connessioni WebSocket e gRPC, questo è il numero totale di byte inviati dal client al server sulla connessione.
-
time-taken
Il numero di secondi (al millesimo di secondo, ad esempio 0,082) da quando il server riceve la richiesta del visualizzatore a quando il server scrive l'ultimo byte della risposta alla coda di output, misurato sul server. Dal punto di vista del visualizzatore, il tempo totale per ottenere l'oggetto sarà maggiore di questo valore a causa della latenza di rete e del buffering TCP.
-
x-forwarded-for
Se il visualizzatore ha utilizzato un proxy HTTP o un sistema di bilanciamento del carico (load balancer) per inviare la richiesta, il valore di questo campo
c-ip
è l'indirizzo IP del proxy o del sistema di bilanciamento (load balancer) del carico. In tal caso, questo campo è l'indirizzo IP del visualizzatore all'origine della richiesta. Questo campo può contenere più indirizzi IP separati da virgole. Ogni indirizzo IP può essere un IPv4 indirizzo (ad esempio,192.0.2.183
) o un IPv6 indirizzo (ad esempio,).2001:0db8:85a3::8a2e:0370:7334
Se il visualizzatore non ha utilizzato un proxy HTTP o un sistema di bilanciamento del carico (load balancer), questo valore è un trattino (-).
-
ssl-protocol
Quando la richiesta utilizza HTTPS, questo campo contiene i SSL/TLS protocol that the viewer and server negotiated for transmitting the request and response. For a list of possible values, see the supported SSL/TLS protocolli inProtocolli e cifrari supportati tra visualizzatori e CloudFront.
Quando
cs-protocol
nel campo 17 èhttp
, il valore per questo campo è un trattino (-). -
ssl-cipher
Quando la richiesta utilizzava HTTPS, questo campo contiene i SSL/TLS cipher that the viewer and server negotiated for encrypting the request and response. For a list of possible values, see the supported SSL/TLS codici in. Protocolli e cifrari supportati tra visualizzatori e CloudFront
Quando
cs-protocol
nel campo 17 èhttp
, il valore per questo campo è un trattino (-). -
x-edge-response-result-type
Il modo in cui il server edge ha classificato la risposta appena prima di restituire la risposta al visualizzatore. Vedere anche il campo
x-edge-result-type
. I valori possibili includono:-
Hit
– Il server ha servito l'oggetto al visualizzatore dalla cache. -
RefreshHit
– Il server ha trovato l'oggetto nella cache, ma l'oggetto era scaduto, pertanto il server ha contattato l'origine per verificare che la cache disponesse della versione più recente dell'oggetto. -
Miss
– La richiesta non poteva essere soddisfatta da un oggetto nella cache, per cui il server ha inoltrato la richiesta al server di origine e ha restituito il risultato al visualizzatore. -
LimitExceeded
— La richiesta è stata rifiutata perché è stata superata una CloudFront quota (precedentemente denominata limite). -
CapacityExceeded
: il server ha restituito un errore 503 in quanto non disponeva di capacità sufficiente al momento della richiesta per servire l'oggetto. -
Error
– In genere, ciò significa che la richiesta ha provocato un errore client (il valore del camposc-status
è compreso nell'intervallo4xx
) o un errore del server (il valore del camposc-status
è nell'intervallo5xx
).Se il valore del campo
x-edge-result-type
èError
e il valore di questo campo non èError
, il client è stato disconnesso prima del completamento del download. -
Redirect
– Il server ha reindirizzato il visualizzatore da HTTP a HTTPS in base alle impostazioni di distribuzione.
-
-
cs-protocol-version
La versione HTTP che il visualizzatore ha specificato nella richiesta. I valori possibili sono
HTTP/0.9
,HTTP/1.0
,HTTP/1.1
,HTTP/2.0
eHTTP/3.0
. -
fle-status
Quando la crittografia a livello di campo è configurata per una distribuzione, questo campo contiene un codice che indica se il corpo della richiesta è stato elaborato correttamente. Quando il server elabora il corpo della richiesta, crittografa valori nei campi specificati e inoltra la richiesta all'origine, il valore di questo campo è
Processed
. Il valore dix-edge-result-type
in questo caso può ancora indicare un errore lato client o lato server.I valori possibili per questo campo sono:
-
ForwardedByContentType
– Il server ha inoltrato la richiesta all'origine senza analisi o crittografia poiché non è stato configurato alcun tipo di contenuto. -
ForwardedByQueryArgs
: il server ha inoltrato la richiesta all'origine senza analisi o crittografia in quanto la richiesta contiene un argomento di query che non era nella configurazione per la crittografia a livello di campo. -
ForwardedDueToNoProfile
– Il server ha inoltrato la richiesta all'origine senza analisi o crittografia in quanto nessun profilo è stato specificato nella configurazione per la crittografia a livello di campo. -
MalformedContentTypeClientError
– Il server ha rifiutato la richiesta e ha restituito un codice di stato HTTP 400 al visualizzatore perché il valore dell'intestazioneContent-Type
era in un formato non valido. -
MalformedInputClientError
– Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché il corpo della richiesta non era in un formato valido. -
MalformedQueryArgsClientError
– Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché un argomento di query era vuoto o non era in un formato valido. -
RejectedByContentType
– Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché nessun tipo di contenuto è stato specificato nella configurazione per la crittografia a livello di campo. -
RejectedByQueryArgs
– Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché nessun argomento di query è stato specificato nella configurazione per la crittografia a livello di campo. -
ServerError
– Il server di origine ha restituito un errore.
Se la richiesta supera una quota di crittografia a livello di campo (in precedenza definita limite), questo campo contiene uno dei seguenti codici di errore e il server restituisce il codice di stato HTTP 400 al visualizzatore. Per un elenco delle quote correnti della crittografia a livello di campo, consulta Quote della crittografia a livello di campo.
-
FieldLengthLimitClientError
– Un campo configurato per essere crittografato quando viene superata la massima lunghezza. -
FieldNumberLimitClientError
– Una richiesta che la distribuzione è configurata per crittografare contiene più campi di quelli consentiti. -
RequestLengthLimitClientError
– La lunghezza del corpo della richiesta supera la lunghezza massima consentita quando è configurata la crittografia a livello di campo.
Se la crittografia a livello di campo non è configurata per la distribuzione, il valore di questo campo è un trattino (-).
-
-
fle-encrypted-fields
Il numero di campi di crittografia a livello di campo che il server ha crittografato e inoltrato all'origine. CloudFront i server trasmettono la richiesta elaborata all'origine mentre crittografano i dati, quindi questo campo può avere un valore anche se il valore di è un errore.
fle-status
Se la crittografia a livello di campo non è configurata per la distribuzione, il valore di questo campo è un trattino (-).
-
c-port
Il numero di porta della richiesta del visualizzatore.
-
time-to-first-byte
Il numero di secondi tra la ricezione della richiesta e la scrittura del primo byte della risposta, misurato sul server.
-
x-edge-detailed-result-type
Questo campo contiene lo stesso valore del campo
x-edge-result-type
, tranne nei seguenti casi:-
Quando l'oggetto è stato servito al visualizzatore dal livello Origin Shield, questo campo contiene
OriginShieldHit
. -
Quando l'oggetto non era nella CloudFront cache e la risposta è stata generata da una funzione Lambda @Edge di richiesta di origine, questo campo contiene.
MissGeneratedResponse
-
Quando il valore del campo
x-edge-result-type
èError
, questo campo contiene uno dei seguenti valori con ulteriori informazioni sull'errore:-
AbortedOrigin
– Il server ha riscontrato un problema con l'origine. -
ClientCommError
– La risposta al visualizzatore è stata interrotta a causa di un problema di comunicazione tra il server edge e il visualizzatore. -
ClientGeoBlocked
: la distribuzione è configurata per rifiutare le richieste dalla posizione geografica del visualizzatore. -
ClientHungUpRequest
— Il visualizzatore si è arrestato prematuramente durante l'invio della richiesta. -
Error
: si è verificato un errore per il quale il tipo di errore non si adatta a nessuna delle altre categorie. Questo tipo di errore può verificarsi quando il server edge serve una risposta di errore dalla cache. -
InvalidRequest
– Il server ha ricevuto una richiesta non valida dal visualizzatore. -
InvalidRequestBlocked
— L'accesso alla risorsa richiesta è bloccato. -
InvalidRequestCertificate
: la distribuzione non corrisponde al certificato SSL/TLS in base al quale è stata stabilita la connessione HTTPS. -
InvalidRequestHeader
—-La richiesta conteneva un'intestazione non valida. -
InvalidRequestMethod
— La distribuzione non è configurata per gestire il metodo di richiesta HTTP utilizzato. Questo può accadere quando la distribuzione supporta solo le richieste memorizzabili nella cache. -
OriginCommError
- La richiesta è scaduta durante la connessione a un'origine o durante la lettura di dati da un'origine. -
OriginConnectError
: il server non è riuscito a connettersi all'origine. -
OriginContentRangeLengthError
: l'intestazioneContent-Length
nella risposta dell'origine non corrisponde alla lunghezza dell'intestazioneContent-Range
. -
OriginDnsError
: il server non è riuscito a risolvere il nome di dominio dell'origine. -
OriginError
— L'origine ha restituito una risposta errata. -
OriginHeaderTooBigError
- Un'intestazione restituita dall'origine è troppo grande per essere elaborata dal server edge. -
OriginInvalidResponseError
— L'origine ha restituito una risposta non valida. -
OriginReadError
: il server non è in grado di leggere dall'origine. -
OriginWriteError
: il server non è in grado di scrivere sull'origine. -
OriginZeroSizeObjectError
— Un oggetto di dimensione zero inviato dall'origine ha generato un errore. -
SlowReaderOriginError
— Il visualizzatore ha letto lentamente il messaggio che ha causato l'errore di origine.
-
-
-
sc-content-type
Il valore dell'intestazione HTTP
Content-Type
della risposta. -
sc-content-len
Il valore dell'intestazione HTTP
Content-Length
della risposta. -
sc-range-start
Quando la risposta contiene l'intestazione HTTP
Content-Range
, questo campo contiene il valore iniziale dell'intervallo. -
sc-range-end
Quando la risposta contiene l'intestazione HTTP
Content-Range
, questo campo contiene il valore finale dell'intervallo.
Di seguito è riportato un esempio di file di registro per una distribuzione.
#Version: 1.0 #Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time-taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type cs-protocol-version fle-status fle-encrypted-fields c-port time-to-first-byte x-edge-detailed-result-type sc-content-type sc-content-len sc-range-start sc-range-end 2019-12-04 21:02:31 LAX1 392 192.0.2.100 GET d111111abcdef8.cloudfront.net /index.html 200 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Hit SOX4xwn4XV6Q4rgb7XiVGOHms_BGlTAC4KyHmureZmBNrjGdRLiNIQ== d111111abcdef8.cloudfront.net https 23 0.001 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Hit HTTP/2.0 - - 11040 0.001 Hit text/html 78 - - 2019-12-04 21:02:31 LAX1 392 192.0.2.100 GET d111111abcdef8.cloudfront.net /index.html 200 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Hit k6WGMNkEzR5BEM_SaF47gjtX9zBDO2m349OY2an0QPEaUum1ZOLrow== d111111abcdef8.cloudfront.net https 23 0.000 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Hit HTTP/2.0 - - 11040 0.000 Hit text/html 78 - - 2019-12-04 21:02:31 LAX1 392 192.0.2.100 GET d111111abcdef8.cloudfront.net /index.html 200 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Hit f37nTMVvnKvV2ZSvEsivup_c2kZ7VXzYdjC-GUQZ5qNs-89BlWazbw== d111111abcdef8.cloudfront.net https 23 0.001 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Hit HTTP/2.0 - - 11040 0.001 Hit text/html 78 - - 2019-12-13 22:36:27 SEA19-C1 900 192.0.2.200 GET d111111abcdef8.cloudfront.net /favicon.ico 502 http://www.example.com/ Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Error 1pkpNfBQ39sYMnjjUQjmH2w1wdJnbHYTbag21o_3OfcQgPzdL2RSSQ== www.example.com http 675 0.102 - - - Error HTTP/1.1 - - 25260 0.102 OriginDnsError text/html 507 - - 2019-12-13 22:36:26 SEA19-C1 900 192.0.2.200 GET d111111abcdef8.cloudfront.net / 502 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Error 3AqrZGCnF_g0-5KOvfA7c9XLcf4YGvMFSeFdIetR1N_2y8jSis8Zxg== www.example.com http 735 0.107 - - - Error HTTP/1.1 - - 3802 0.107 OriginDnsError text/html 507 - - 2019-12-13 22:37:02 SEA19-C2 900 192.0.2.200 GET d111111abcdef8.cloudfront.net / 502 - curl/7.55.1 - - Error kBkDzGnceVtWHqSCqBUqtA_cEs2T3tFUBbnBNkB9El_uVRhHgcZfcw== www.example.com http 387 0.103 - - - Error HTTP/1.1 - - 12644 0.103 OriginDnsError text/html 507 - -
Analizza i log
Poiché puoi ricevere più log di accesso all'ora, ti consigliamo di riunire tutti i file di log che ricevi per un determinato periodo di tempo in un unico file. Ciò ti consente di analizzare i dati per quel periodo in modo più accurato e completo.
Per analizzare i log di accesso puoi utilizzare Amazon Athena
Inoltre, i seguenti post del AWS blog illustrano alcuni modi per analizzare i log di accesso.
-
Amazon CloudFront Request Logging
(per contenuti forniti tramite HTTP)