Interrogazione dei log di Amazon CloudFront - Amazon Athena

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

Interrogazione dei log di Amazon CloudFront

Puoi configurare Amazon CloudFront CDN per esportare i log di accesso alla distribuzione Web su Amazon Simple Storage Service. Usa questi log per esplorare i modelli di navigazione degli utenti tra le proprietà web servite da. CloudFront

Prima di iniziare a interrogare i log, abilita il registro di accesso alle distribuzioni Web sulla tua distribuzione preferita. CloudFront Per informazioni, consulta i log di accesso nella Amazon CloudFront Developer Guide. Prendi nota del bucket Amazon S3 in cui salvi questi log.

Creazione di una tabella per i log standard CloudFront

Nota

Questa procedura funziona per i log di accesso alla distribuzione Web. CloudFront Non si applica ai log di streaming delle distribuzioni RTMP.

Per creare una tabella per i campi CloudFront standard dei file di log

  1. Copia e incolla la seguente istruzione DDL di esempio nell'Editor di query della console Athena. L'istruzione di esempio utilizza i campi del file di registro documentati nella sezione Campi dei file di log standard della Amazon CloudFront Developer Guide. Modifica il parametro LOCATION per il bucket Amazon S3 in cui sono archiviati i log. Per ulteriori informazioni sull'utilizzo dell'editor di query, consulta Nozioni di base.

    Questa query specifica ROW FORMAT DELIMITED e indica che FIELDS TERMINATED BY '\t' i campi sono delimitati da caratteri di tabulazione. PerROW FORMAT DELIMITED, Athena utilizza per impostazione LazySimpleSerDepredefinita. Nella colonna date viene inserito il carattere escape con l'apice inverso (`) perché è una parola riservata in Athena. Per informazioni, consulta Parole chiave riservate.

    CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_standard_logs ( `date` DATE, time STRING, x_edge_location STRING, sc_bytes BIGINT, c_ip STRING, cs_method STRING, cs_host STRING, cs_uri_stem STRING, sc_status INT, cs_referrer STRING, cs_user_agent STRING, cs_uri_query STRING, cs_cookie STRING, x_edge_result_type STRING, x_edge_request_id STRING, x_host_header STRING, cs_protocol STRING, cs_bytes BIGINT, time_taken FLOAT, x_forwarded_for STRING, ssl_protocol STRING, ssl_cipher STRING, x_edge_response_result_type STRING, cs_protocol_version STRING, fle_status STRING, fle_encrypted_fields INT, c_port INT, time_to_first_byte FLOAT, x_edge_detailed_result_type STRING, sc_content_type STRING, sc_content_len BIGINT, sc_range_start BIGINT, sc_range_end BIGINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://DOC-EXAMPLE-BUCKET/' TBLPROPERTIES ( 'skip.header.line.count'='2' )
  2. Eseguire la query nella console Athena. Una volta completata la query, Athena registra la tabella cloudfront_standard_logs, rendendo i dati in essa contenuti pronti per l'esecuzione di query.

Creazione di una tabella per i log CloudFront in tempo reale

Per creare una tabella per i campi dei file di registro CloudFront in tempo reale

  1. Copia e incolla la seguente istruzione DDL di esempio nell'Editor di query della console Athena. L'istruzione di esempio utilizza i campi del file di registro documentati nella sezione Real-time logs della Amazon CloudFront Developer Guide. Modifica il parametro LOCATION per il bucket Amazon S3 in cui sono archiviati i log. Per ulteriori informazioni sull'utilizzo dell'editor di query, consulta Nozioni di base.

    Questa query specifica ROW FORMAT DELIMITED e indica che FIELDS TERMINATED BY '\t' i campi sono delimitati da caratteri di tabulazione. PerROW FORMAT DELIMITED, Athena utilizza per impostazione LazySimpleSerDepredefinita. Nella colonna timestamp viene inserito il carattere escape con l'apice inverso (`) perché è una parola riservata in Athena. Per informazioni, consulta Parole chiave riservate.

    L'esempio seguente contiene tutti i campi disponibili. Puoi aggiungere commenti o rimuovere campi che non ti servono.

    CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_real_time_logs ( `timestamp` STRING, c_ip STRING, time_to_first_byte BIGINT, sc_status BIGINT, sc_bytes BIGINT, cs_method STRING, cs_protocol STRING, cs_host STRING, cs_uri_stem STRING, cs_bytes BIGINT, x_edge_location STRING, x_edge_request_id STRING, x_host_header STRING, time_taken BIGINT, cs_protocol_version STRING, c_ip_version STRING, cs_user_agent STRING, cs_referer STRING, cs_cookie STRING, cs_uri_query STRING, x_edge_response_result_type STRING, x_forwarded_for STRING, ssl_protocol STRING, ssl_cipher STRING, x_edge_result_type STRING, fle_encrypted_fields STRING, fle_status STRING, sc_content_type STRING, sc_content_len BIGINT, sc_range_start STRING, sc_range_end STRING, c_port BIGINT, x_edge_detailed_result_type STRING, c_country STRING, cs_accept_encoding STRING, cs_accept STRING, cache_behavior_path_pattern STRING, cs_headers STRING, cs_header_names STRING, cs_headers_count BIGINT, primary_distribution_id STRING, primary_distribution_dns_name STRING, origin_fbl STRING, origin_lbl STRING, asn STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://DOC-EXAMPLE-BUCKET/' TBLPROPERTIES ( 'skip.header.line.count'='2' )
  2. Eseguire la query nella console Athena. Una volta completata la query, Athena registra la tabella cloudfront_real_time_logs, rendendo i dati in essa contenuti pronti per l'esecuzione di query.

Interrogazioni di esempio per log standard CloudFront

La seguente query somma il numero di byte serviti CloudFront tra il 9 giugno e l'11 giugno 2018. Racchiudi fra virgolette doppie il nome della colonna della data perché è una parola riservata.

SELECT SUM(bytes) AS total_bytes FROM cloudfront_standard_logs WHERE "date" BETWEEN DATE '2018-06-09' AND DATE '2018-06-11' LIMIT 100;

Per eliminare righe duplicate (ad esempio, righe vuote duplicate) dai risultati della query, è possibile utilizzare l'istruzione SELECT DISTINCT, come nell'esempio seguente.

SELECT DISTINCT * FROM cloudfront_standard_logs LIMIT 10;

Risorse aggiuntive

Per ulteriori informazioni sull'utilizzo di Athena per interrogare CloudFront i log, consulta i seguenti post del blog sui AWS big data.

Interroga facilmente Servizio AWS i log con Amazon Athena (29 maggio 2019).

Analizza i log di CloudFront accesso di Amazon su larga scala (21 dicembre 2018).

Crea un'architettura serverless per analizzare i log di CloudFront accesso di Amazon utilizzando AWS Lambda Amazon Athena e Amazon Managed Service for Apache Flink (26 maggio 2017).