Menanyakan log Amazon CloudFront - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menanyakan log Amazon CloudFront

Anda dapat mengonfigurasi Amazon CloudFront CDN untuk mengekspor log akses distribusi Web ke Amazon Simple Storage Service. Gunakan log ini untuk menjelajahi pola selancar pengguna di seluruh properti web Anda yang dilayani oleh. CloudFront

Sebelum Anda mulai menanyakan log, aktifkan log akses distribusi Web pada distribusi pilihan CloudFront Anda. Untuk selengkapnya, lihat Akses log di Panduan CloudFront Pengembang Amazon. Catat bucket Amazon S3 tempat Anda menyimpan log ini.

Membuat tabel untuk log CloudFront standar

catatan

Prosedur ini berfungsi untuk log akses distribusi Web CloudFront. Ini tidak sahih untuk streaming log dari RTMP distribusi.

Untuk membuat tabel untuk bidang file log CloudFront standar

  1. Salin dan tempel contoh pernyataan DDL berikut ke Editor Kueri di konsol Athena. Pernyataan contoh menggunakan bidang file log yang didokumentasikan di bagian bidang file log Standar dari Panduan CloudFront Pengembang Amazon. MemodifikasiLOCATIONuntuk bucket Amazon S3 yang menyimpan log Anda. Untuk informasi selengkapnya, lihat Memulai Penggunaan editor kueri untuk

    Kueri ini menentukan ROW FORMAT DELIMITED dan FIELDS TERMINATED BY '\t' untuk menunjukkan bahwa bidang dibatasi oleh karakter tab. UntukROW FORMAT DELIMITED, Athena menggunakan secara LazySimpleSerDedefault. Kolomdatemelarikan diri menggunakan backticks (`) karena itu adalah kata reserved di Athena. Untuk informasi, lihat Kata kunci terpesan.

    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. Jalankan kueri di konsol Athena. Setelah kueri selesai, Athena registercloudfront_standard_logstabel, membuat data di dalamnya siap bagi Anda untuk mengeluarkan kueri.

Membuat tabel untuk log CloudFront waktu nyata

Untuk membuat tabel untuk bidang file log CloudFront real-time

  1. Salin dan tempel contoh pernyataan DDL berikut ke Editor Kueri di konsol Athena. Pernyataan contoh menggunakan bidang file log yang didokumentasikan di bagian log Real-time dari Panduan CloudFront Pengembang Amazon. MemodifikasiLOCATIONuntuk bucket Amazon S3 yang menyimpan log Anda. Untuk informasi selengkapnya, lihat Memulai Penggunaan editor kueri untuk

    Kueri ini menentukan ROW FORMAT DELIMITED dan FIELDS TERMINATED BY '\t' untuk menunjukkan bahwa bidang dibatasi oleh karakter tab. UntukROW FORMAT DELIMITED, Athena menggunakan secara LazySimpleSerDedefault. Kolomtimestampmelarikan diri menggunakan backticks (`) karena itu adalah kata reserved di Athena. Untuk informasi, lihat Kata kunci terpesan.

    Contoh berikut berisi semua bidang yang tersedia. Anda dapat mengomentari atau menghapus bidang yang tidak Anda perlukan.

    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. Jalankan kueri di konsol Athena. Setelah kueri selesai, Athena registercloudfront_real_time_logstabel, membuat data di dalamnya siap bagi Anda untuk mengeluarkan kueri.

Contoh kueri untuk log standar CloudFront

Kueri berikut menambahkan jumlah byte yang dilayani CloudFront antara 9 Juni dan 11 Juni 2018. Mengelilingi nama kolom tanggal dengan tanda kutip ganda karena merupakan kata reserved.

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

Untuk menghilangkan duplikat baris (misalnya, duplikat baris kosong) dari hasil kueri, Anda dapat menggunakanSELECT DISTINCTpernyataan, seperti dalam contoh berikut.

SELECT DISTINCT * FROM cloudfront_standard_logs LIMIT 10;

Sumber daya tambahan

Untuk informasi lebih lanjut tentang menggunakan Athena untuk menanyakan CloudFront log, lihat posting berikut dari blog data AWS besar.

Kueri AWS layanan log dengan mudah menggunakan Amazon Athena (29 Mei 2019).

Analisis log CloudFront akses Amazon Anda dalam skala besar (21 Desember 2018).

Bangun arsitektur tanpa server untuk menganalisis log CloudFront akses Amazon menggunakan AWS Lambda, Amazon Athena, dan Amazon Managed Service untuk Apache Flink (26 Mei 2017).