Konfigurasikan logging standar (v2) - Amazon CloudFront

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

Konfigurasikan logging standar (v2)

Anda dapat mengaktifkan pencatatan standar saat membuat atau memperbarui distribusi. Pencatatan standar (v2) mencakup fitur-fitur berikut:

  • Kirim log akses ke Amazon CloudWatch Logs, Amazon Data Firehose, dan Amazon Simple Storage Service (Amazon S3).

  • Pilih bidang log yang Anda inginkan. Anda juga dapat memilih subset bidang log real-time.

  • Pilih format file log keluaran tambahan.

Jika Anda menggunakan Amazon S3, Anda memiliki fitur opsional berikut:

  • Kirim log ke opt-in Wilayah AWS.

  • Atur log Anda dengan partisi.

  • Aktifkan nama file yang kompatibel dengan HIVE.

Untuk informasi selengkapnya, lihat Kirim log ke Amazon S3.

Untuk memulai dengan pencatatan standar, selesaikan langkah-langkah berikut:

  1. Siapkan izin yang diperlukan untuk yang ditentukan Layanan AWS yang akan menerima log Anda.

  2. Konfigurasikan logging standar dari CloudFront konsol atau CloudWatch API.

  3. Lihat log akses Anda.

catatan
  • Jika Anda mengaktifkan logging standar (v2), ini tidak memengaruhi atau mengubah logging standar (lama). Anda dapat terus menggunakan logging standar (legacy) untuk distribusi Anda, selain menggunakan logging standar (v2). Untuk informasi selengkapnya, lihat Konfigurasikan logging standar (warisan).

  • Jika Anda sudah mengaktifkan pencatatan standar (lama) dan ingin mengaktifkan pencatatan standar (v2) ke Amazon S3, sebaiknya tentukan bucket Amazon S3 yang berbeda atau gunakan jalur terpisah di bucket yang sama (misalnya, gunakan awalan log atau partisi). Ini membantu Anda melacak file log mana yang terkait dengan distribusi mana dan mencegah file log saling menimpa.

Izin

CloudFront menggunakan log CloudWatch vended untuk mengirimkan log akses. Untuk melakukannya, Anda memerlukan izin untuk yang ditentukan Layanan AWS sehingga Anda dapat mengaktifkan pengiriman logging.

Untuk melihat izin yang diperlukan untuk setiap tujuan pencatatan, pilih dari topik berikut di Panduan Pengguna Amazon CloudWatch Logs.

Setelah menyiapkan izin ke tujuan pencatatan, Anda dapat mengaktifkan pencatatan standar untuk distribusi Anda.

catatan

CloudFront mendukung pengiriman log akses ke yang berbeda Akun AWS (lintas akun). Untuk mengaktifkan pengiriman lintas akun, kedua akun (akun Anda dan akun penerima) harus memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat Aktifkan pencatatan standar untuk pengiriman lintas akun bagian atau contoh pengiriman lintas akun di Panduan Pengguna CloudWatch Log Amazon.

Aktifkan pencatatan standar

Untuk mengaktifkan logging standar, Anda dapat menggunakan CloudFront konsol atau CloudWatch API.

Aktifkan logging standar (CloudFrontkonsol)

Untuk mengaktifkan pencatatan standar untuk CloudFront distribusi (konsol)
  1. Gunakan CloudFront konsol untuk memperbarui distribusi yang ada.

  2. Pilih tab Logging.

  3. Pilih Tambah, lalu pilih layanan untuk menerima log Anda:

    • CloudWatch Log

    • Firehose

    • Amazon S3

  4. Untuk Tujuan, pilih sumber daya untuk layanan Anda. Jika Anda belum membuat sumber daya, Anda dapat memilih Buat atau melihat dokumentasi berikut.

    • Untuk CloudWatch Log, masukkan nama grup Log.

    • Untuk Firehose, masuk ke aliran pengiriman Firehose.

    • Untuk Amazon S3, masukkan nama Bucket.

      Tip

      Untuk menentukan awalan, masukkan awalan setelah nama bucket, seperti. amzn-s3-demo-bucket.s3.amazonaws.com/MyLogPrefix Jika Anda tidak menentukan awalan, secara otomatis CloudFront akan menambahkan satu untuk Anda. Untuk informasi selengkapnya, lihat Kirim log ke Amazon S3.

  5. Untuk Pengaturan tambahan - opsional, Anda dapat menentukan opsi berikut:

    1. Untuk pemilihan Bidang, pilih nama bidang log yang ingin Anda kirimkan ke tujuan Anda. Anda dapat memilih bidang log akses dan subset bidang log waktu nyata.

    2. (Hanya Amazon S3) Untuk Partisi, tentukan jalur untuk mempartisi data file log Anda.

    3. (Hanya Amazon S3) Untuk format file yang kompatibel dengan HIVE, Anda dapat memilih kotak centang untuk menggunakan jalur S3 yang kompatibel dengan HIVE. Ini membantu menyederhanakan pemuatan data baru ke alat yang kompatibel dengan HIVE Anda.

    4. Untuk format Output, tentukan format pilihan Anda.

      catatan

      Jika Anda memilih Parket, opsi ini CloudWatch dikenakan biaya untuk mengonversi log akses Anda ke Apache Parquet. Untuk informasi selengkapnya, lihat bagian Log Penjual untuk CloudWatch harga.

    5. Untuk pembatas bidang, tentukan cara memisahkan bidang log.

  6. Selesaikan langkah-langkah untuk memperbarui atau membuat distribusi Anda.

  7. Untuk menambahkan tujuan lain, ulangi langkah 3—6.

  8. Dari halaman Log, verifikasi bahwa status log standar Diaktifkan di sebelah distribusi.

  9. (Opsional) Untuk mengaktifkan pencatatan cookie, pilih Kelola, Pengaturan, dan aktifkan Pencatatan cookie, lalu pilih Simpan perubahan.

    Tip

    Cookie logging adalah pengaturan global yang berlaku untuk semua pencatatan standar untuk distribusi Anda. Anda tidak dapat mengganti pengaturan ini untuk tujuan pengiriman terpisah.

Untuk informasi selengkapnya tentang pengiriman logging standar dan bidang log, lihatReferensi logging standar.

Aktifkan logging standar (CloudWatchAPI)

Anda juga dapat menggunakan CloudWatch API untuk mengaktifkan logging standar untuk distribusi Anda.

Catatan
  • Saat memanggil CloudWatch API untuk mengaktifkan pencatatan standar, Anda harus menentukan Wilayah AS Timur (Virginia Utara) (us-east-1), meskipun Anda ingin mengaktifkan pengiriman lintas Wilayah ke tujuan lain. Misalnya, jika Anda ingin mengirim log akses ke bucket S3 di Wilayah Eropa (Irlandia) (eu-west-1), gunakan CloudWatch API di us-east-1 Wilayah.

  • Ada opsi tambahan untuk memasukkan cookie dalam pencatatan standar. Di CloudFront API, ini adalah IncludeCookies parameternya. Jika Anda mengonfigurasi pencatatan akses dengan menggunakan CloudWatch API dan Anda menentukan bahwa Anda ingin menyertakan cookie, Anda harus menggunakan CloudFront konsol atau CloudFront API untuk memperbarui distribusi Anda untuk menyertakan cookie. Jika tidak, tidak CloudFront dapat mengirim cookie ke tujuan log Anda. Untuk informasi selengkapnya, lihat Pencatatan cookie.

Untuk mengaktifkan logging standar untuk distribusi (CloudWatch API)
  1. Setelah Anda membuat distribusi, dapatkan Amazon Resource Name (ARN).

    Anda dapat menemukan ARN dari halaman Distribusi di CloudFront konsol atau Anda dapat menggunakan operasi GetDistributionAPI. Sebuah distribusi ARN mengikuti format: arn:aws:cloudfront::123456789012:distribution/d111111abcdef8

  2. Selanjutnya, gunakan operasi CloudWatch PutDeliverySourceAPI untuk membuat sumber pengiriman untuk distribusi.

    1. Masukkan nama untuk sumber pengiriman.

    2. resourceArnLewati distribusi.

    3. UntuklogType, tentukan ACCESS_LOGS sebagai jenis log yang dikumpulkan.

    4. contoh Contoh AWS CLI put-delivery-source perintah

      Berikut ini adalah contoh konfigurasi sumber pengiriman untuk distribusi.

      aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGS

      Keluaran

      { "deliverySource": { "name": "S3-delivery", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-source:S3-delivery", "resourceArns": [ "arn:aws:cloudfront::123456789012:distribution/d111111abcdef8" ], "service": "cloudfront", "logType": "ACCESS_LOGS" } }
  3. Gunakan operasi PutDeliveryDestinationAPI untuk mengonfigurasi tempat menyimpan log Anda.

    1. UntukdestinationResourceArn, tentukan ARN tujuan. Ini bisa berupa grup CloudWatch log Log, aliran pengiriman Firehose, atau bucket Amazon S3.

    2. UntukoutputFormat, tentukan format output untuk log Anda.

    3. contoh Contoh AWS CLI put-delivery-destination perintah

      Berikut ini adalah contoh mengonfigurasi tujuan pengiriman ke bucket Amazon S3.

      aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket

      Keluaran

      { "name": "S3-destination", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } }
    catatan

    Jika mengirimkan log lintas akun, Anda harus menggunakan operasi PutDeliveryDestinationPolicyAPI untuk menetapkan kebijakan AWS Identity and Access Management (IAM) ke akun tujuan. Kebijakan IAM memungkinkan pengiriman dari satu akun ke akun lain.

  4. Gunakan operasi CreateDeliveryAPI untuk menautkan sumber pengiriman ke tujuan yang Anda buat di langkah sebelumnya. Operasi API ini mengaitkan sumber pengiriman dengan tujuan akhir.

    1. UntukdeliverySourceName, tentukan nama sumbernya.

    2. UntukdeliveryDestinationArn, tentukan ARN untuk tujuan pengiriman.

    3. UntukfieldDelimiter, tentukan string untuk memisahkan setiap bidang log.

    4. UntukrecordFields, tentukan bidang log yang Anda inginkan.

    5. Jika Anda menggunakan S3, tentukan apakah akan menggunakan enableHiveCompatiblePath dansuffixPath.

    contoh Contoh perintah AWS CLI buat-pengiriman

    Berikut ini adalah contoh pembuatan pengiriman.

    aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination

    Keluaran

    { "id": "abcNegnBoTR123", "arn": "arn:aws:logs:us-east-1:123456789012:delivery:abcNegnBoTR123", "deliverySourceName": "cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "recordFields": [ "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", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "" }
  5. Dari CloudFront konsol, pada halaman Log, verifikasi bahwa status log standar Diaktifkan di sebelah distribusi.

    Untuk informasi selengkapnya tentang pengiriman logging standar dan bidang log, lihatReferensi logging standar.

catatan

Untuk mengaktifkan logging standar (v2) CloudFront dengan menggunakan AWS CloudFormation, Anda dapat menggunakan properti CloudWatch Log berikut:

ResourceArnIni adalah CloudFront distribusi dan LogType harus ACCESS_LOGS sebagai jenis log yang didukung.

Aktifkan pencatatan standar untuk pengiriman lintas akun

Jika Anda mengaktifkan pencatatan standar untuk Anda Akun AWS dan Anda ingin mengirimkan log akses Anda ke akun lain, pastikan Anda mengonfigurasi akun sumber dan akun tujuan dengan benar. Akun sumber dengan CloudFront distribusi mengirimkan log aksesnya ke akun tujuan.

Dalam contoh prosedur ini, akun sumber111111111111) mengirimkan log aksesnya ke bucket Amazon S3 di akun tujuan ()222222222222. Untuk mengirim log akses ke bucket Amazon S3 di akun tujuan, gunakan file. AWS CLI

Konfigurasikan akun tujuan

Untuk akun tujuan, selesaikan prosedur berikut.

Untuk mengkonfigurasi akun tujuan
  1. Untuk membuat tujuan pengiriman log, Anda dapat memasukkan AWS CLI perintah berikut. Contoh ini menggunakan MyLogPrefix string untuk membuat awalan untuk log akses Anda.

    aws logs put-delivery-destination --name cloudfront-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"

    Keluaran

    { "deliveryDestination": { "name": "cloudfront-delivery-destination", "arn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": {"destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"} } }
    catatan

    Jika Anda menentukan bucket S3 tanpa awalan, secara otomatis CloudFront akan menambahkan AWSLogs/<account-ID>/CloudFront sebagai awalan yang muncul di tujuan pengiriman suffixPath S3. Untuk informasi lebih lanjut, lihat S3 DeliveryConfiguration.

  2. Tambahkan kebijakan sumber daya untuk tujuan pengiriman log agar akun sumber dapat membuat pengiriman log.

    Dalam kebijakan berikut, ganti 111111111111 dengan ID akun sumber dan tentukan ARN tujuan pengiriman dari output pada langkah 1.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": {"AWS": "111111111111"}, "Action": ["logs:CreateDelivery"], "Resource": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination" } ] }
  3. Simpan file, sepertideliverypolicy.json.

  4. Untuk melampirkan kebijakan sebelumnya ke tujuan pengiriman, masukkan AWS CLI perintah berikut.

    aws logs put-delivery-destination-policy --delivery-destination-name cloudfront-delivery-destination --delivery-destination-policy file://deliverypolicy.json
  5. Tambahkan pernyataan di bawah ini ke kebijakan bucket Amazon S3 tujuan, menggantikan ARN sumber daya dan ID akun sumber. Kebijakan ini memungkinkan kepala delivery.logs.amazonaws.com layanan untuk melakukan s3:PutObject tindakan.

    { "Sid": "AWSLogsDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "111111111111" }, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } }
  6. Jika Anda menggunakan AWS KMS bucket, tambahkan pernyataan berikut ke kebijakan kunci KMS untuk memberikan izin kepada prinsipal delivery.logs.amazonaws.com layanan.

    { "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": {"aws:SourceAccount": "111111111111"}, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } }

Konfigurasikan akun sumber

Setelah Anda mengonfigurasi akun tujuan, ikuti prosedur ini untuk membuat sumber pengiriman dan mengaktifkan pencatatan untuk distribusi di akun sumber.

Untuk mengkonfigurasi akun sumber
  1. Buat sumber pengiriman untuk pencatatan CloudFront standar sehingga Anda dapat mengirim file log ke CloudWatch Log.

    Anda dapat memasukkan AWS CLI perintah berikut, mengganti nama dan ARN distribusi Anda.

    aws logs put-delivery-source --name s3-cf-delivery --resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC --log-type ACCESS_LOGS

    Keluaran

    { "deliverySource": { "name": "s3-cf-delivery", "arn": "arn:aws:logs:us-east-1:111111111111:delivery-source:s3-cf-delivery", "resourceArns": ["arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC"], "service": "cloudfront", "logType": "ACCESS_LOGS" } }
  2. Buat pengiriman untuk memetakan sumber pengiriman log akun sumber dan tujuan pengiriman log akun tujuan.

    Dalam AWS CLI perintah berikut, tentukan ARN tujuan pengiriman dari output di Langkah 1: Konfigurasikan akun tujuan.

    aws logs create-delivery --delivery-source-name s3-cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination

    Keluaran

    { "delivery": { "id": "OPmOpLahVzhx1234", "arn": "arn:aws:logs:us-east-1:111111111111:delivery:OPmOpLahVzhx1234", "deliverySourceName": "s3-cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "recordFields": [ "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", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "\t" } }
  3. Pastikan pengiriman lintas akun Anda berhasil.

    1. Dari source akun, masuk ke CloudFront konsol dan pilih distribusi Anda. Pada tab Logging, di bawah Type, Anda akan melihat entri yang dibuat untuk pengiriman log lintas akun S3.

    2. Dari destination akun, masuk ke konsol Amazon S3 dan pilih bucket Amazon S3 Anda. Anda akan melihat awalan MyLogPrefix di nama bucket dan log akses apa pun yang dikirimkan ke folder itu.

Format berkas keluaran

Bergantung pada tujuan pengiriman yang Anda pilih, Anda dapat menentukan salah satu format berikut untuk file log:

  • JSON

  • Polos

  • w3c

  • Mentah

  • Parket (hanya Amazon S3)

catatan

Anda hanya dapat mengatur format output saat pertama kali membuat tujuan pengiriman. Ini tidak dapat diperbarui nanti. Untuk mengubah format output, hapus pengiriman dan buat yang lain.

Untuk informasi selengkapnya, lihat PutDeliveryDestinationdi Referensi API Amazon CloudWatch Logs.

Edit pengaturan logging standar

Anda dapat mengaktifkan atau menonaktifkan logging dan memperbarui pengaturan log lainnya dengan menggunakan CloudFront konsol atau CloudWatch API. Perubahan Anda pada pengaturan log mulai berlaku dalam 12 jam.

Untuk informasi selengkapnya, lihat topik berikut:

Akses bidang log

Anda dapat memilih bidang log yang sama yang didukung oleh pencatatan standar (lama). Untuk informasi selengkapnya, lihat bidang file log.

Selain itu, Anda dapat memilih bidang log real-time berikut.

  1. timestamp(ms)— Timestamp dalam milidetik.

  2. origin-fbl— Jumlah detik latensi byte pertama antara CloudFront dan asal Anda.

  3. origin-lbl— Jumlah detik latensi byte terakhir antara CloudFront dan asal Anda.

  4. asn— Nomor sistem otonom (ASN) dari pemirsa.

  5. c-country— Kode negara yang mewakili lokasi geografis pemirsa, sebagaimana ditentukan oleh alamat IP pemirsa. Untuk daftar kode negara, lihat ISO 3166-1 alpha-2.

  6. cache-behavior-path-pattern— Pola jalur yang mengidentifikasi perilaku cache yang cocok dengan permintaan penampil.

Kirim log ke CloudWatch Log

Untuk mengirim CloudWatch log ke Log, buat atau gunakan grup CloudWatch log Log yang ada. Untuk informasi selengkapnya tentang mengonfigurasi grup CloudWatch log Log, lihat Bekerja dengan Grup Log dan Aliran Log.

Setelah membuat grup log, Anda harus memiliki izin yang diperlukan untuk mengizinkan pencatatan standar. Untuk informasi selengkapnya tentang izin yang diperlukan, lihat Log yang dikirim ke CloudWatch Log di Panduan Pengguna CloudWatch Log Amazon.

Catatan

Contoh log akses dikirim ke CloudWatch Log

{ "date": "2024-11-14", "time": "21:34:06", "x-edge-location": "SOF50-P2", "asn": "16509", "timestamp(ms)": "1731620046814", "origin-fbl": "0.251", "origin-lbl": "0.251", "x-host-header": "d111111abcdef8.cloudfront.net", "cs(Cookie)": "examplecookie=value" }

Kirim log ke Firehose

Untuk mengirim log ke Firehose, buat atau gunakan aliran pengiriman Firehose yang ada.

Untuk informasi tentang membuat aliran pengiriman, lihat Membuat aliran pengiriman Amazon Data Firehose.

Setelah membuat aliran pengiriman, Anda harus memiliki izin yang diperlukan untuk mengizinkan pencatatan standar. Untuk informasi selengkapnya, lihat Log yang dikirim ke Firehose di Panduan Pengguna Amazon CloudWatch Logs.

catatan

Saat Anda menentukan nama aliran Firehose, hanya gunakan pola regex. [\w-] Untuk informasi selengkapnya, lihat operasi PutDeliveryDestinationAPI di Referensi API Amazon CloudWatch Logs.

Contoh log akses dikirim ke Firehose

{"date":"2024-11-15","time":"19:45:51","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699951183","origin-fbl":"0.254","origin-lbl":"0.254","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"} {"date":"2024-11-15","time":"19:45:52","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699952950","origin-fbl":"0.125","origin-lbl":"0.125","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}

Kirim log ke Amazon S3

Untuk mengirim log akses ke Amazon S3, buat atau gunakan bucket S3 yang sudah ada. Saat Anda mengaktifkan login CloudFront, tentukan nama bucket. Untuk informasi tentang membuat bucket, lihat Membuat bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Setelah membuat bucket, Anda harus memiliki izin yang diperlukan untuk mengizinkan pencatatan standar. Untuk informasi selengkapnya, lihat Log yang dikirim ke Amazon S3 di Panduan Pengguna Amazon CloudWatch Logs.

catatan

Jika Anda sudah mengaktifkan pencatatan standar (lama) dan ingin mengaktifkan pencatatan standar (v2) ke Amazon S3, sebaiknya tentukan bucket Amazon S3 yang berbeda atau gunakan jalur terpisah di bucket yang sama (misalnya, gunakan awalan log atau partisi). Ini membantu Anda melacak file log mana yang terkait dengan distribusi mana dan mencegah file log saling menimpa.

Tentukan ember S3

Saat Anda menentukan bucket S3 sebagai tujuan pengiriman, perhatikan hal berikut.

Nama bucket S3 hanya dapat menggunakan pola regex. [\w-] Untuk informasi selengkapnya, lihat operasi PutDeliveryDestinationAPI di Referensi API Amazon CloudWatch Logs.

Jika Anda menetapkan awalan untuk bucket S3 Anda, log Anda akan muncul di bawah jalur itu. Jika Anda tidak menentukan awalan, secara otomatis CloudFront akan menambahkan AWSLogs/{account-id}/CloudFront awalan untuk Anda.

Untuk informasi selengkapnya, lihat Contoh jalur untuk mengakses log.

Partisi

Anda dapat menggunakan partisi untuk mengatur log akses Anda saat CloudFront mengirimkannya ke bucket S3 Anda. Ini membantu Anda mengatur dan menemukan log akses Anda berdasarkan jalur yang Anda inginkan.

Anda dapat menggunakan variabel berikut untuk membuat jalur folder.

  • {DistributionId} atau {distributionid}

  • {yyyy}

  • {MM}

  • {dd}

  • {HH}

  • {accountid}

Anda dapat menggunakan sejumlah variabel dan menentukan nama folder di jalur Anda. CloudFrontkemudian gunakan jalur ini untuk membuat struktur folder untuk Anda di ember S3.

Contoh
  • my_distribution_log_data/{DistributionId}/logs

  • /cloudfront/{DistributionId}/my_distribution_log_data/{yyyy}/{MM}/{dd}/{HH}/logs

catatan

Anda dapat menggunakan salah satu variabel untuk ID distribusi di jalur sufiks. Namun, jika Anda mengirim log akses ke AWS Glue, Anda harus menggunakan {distributionid} variabel karena AWS Glue mengharapkan nama partisi berada dalam huruf kecil. Perbarui konfigurasi log Anda yang ada CloudFront untuk menggantikan {DistributionId} dengan{distributionid}.

Format nama file yang kompatibel dengan HIVE

Anda dapat menggunakan opsi ini sehingga objek S3 yang berisi log akses terkirim menggunakan struktur awalan yang memungkinkan integrasi dengan Apache Hive. Untuk informasi selengkapnya, lihat operasi API CreateDelivery.

contoh Contoh
/cloudfront/DistributionId={DistributionId}/my_distribution_log_data/year={yyyy}/month={MM}/day={dd}/hour={HH}/logs

Untuk informasi selengkapnya tentang partisi dan opsi yang kompatibel dengan HIVE, lihat elemen S3 DeliveryConfiguration di Referensi API Amazon Logs. CloudWatch

Contoh jalur untuk mengakses log

Saat menentukan bucket S3 sebagai tujuan, Anda dapat menggunakan opsi berikut untuk membuat jalur ke log akses Anda:

  • Bucket Amazon S3, dengan atau tanpa awalan

  • Partisi, dengan menggunakan variabel yang CloudFront disediakan atau memasukkan variabel Anda sendiri

  • Mengaktifkan opsi yang kompatibel dengan HIVE

Tabel berikut menunjukkan bagaimana log akses Anda muncul di bucket, tergantung pada opsi yang Anda pilih.

Bucket Amazon S3 dengan awalan

Nama ember Amazon S3 Partisi yang Anda tentukan di jalur sufiks Jalur sufiks yang diperbarui Kompatibel dengan HIVE diaktifkan? Log akses dikirim ke
amzn-s3-demo-bucket/MyLogPrefix Tidak ada Tidak ada Tidak amzn-s3-demo-bucket/MyLogPrefix/
amzn-s3-demo-bucket/MyLogPrefix myFolderA/ myFolderA/ Tidak amzn-s3-demo-bucket/MyLogPrefix/myFolderA/
amzn-s3-demo-bucket/MyLogPrefix myFolderA/{yyyy} myFolderA/{yyyy} Ya amzn-s3-demo-bucket/MyLogPrefix/myFolderA/year=2025

Bucket Amazon S3 tanpa awalan

Nama ember Amazon S3 Partisi yang Anda tentukan di jalur sufiks Jalur sufiks yang diperbarui Kompatibel dengan HIVE diaktifkan? Log akses dikirim ke
amzn-s3-demo-bucket Tidak ada AWSLogs/{account-id}/CloudFront/ Tidak amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ Tidak amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ Ya amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/{yyyy} AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} Ya amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/year=2025

Akun AWS ID sebagai partisi

Nama ember Amazon S3 Partisi yang Anda tentukan di jalur sufiks Jalur sufiks yang diperbarui Kompatibel dengan HIVE diaktifkan? Log akses dikirim ke
amzn-s3-demo-bucket Tidak ada AWSLogs/{account-id}/CloudFront/ Ya amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/{accountid} AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} Ya amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/accountid=<your-account-ID>
Catatan
  • {account-id}Variabel dicadangkan untuk CloudFront. CloudFrontsecara otomatis menambahkan variabel ini ke jalur sufiks jika Anda menentukan bucket Amazon S3 tanpa awalan. Jika log Anda kompatibel dengan HIVE, variabel ini muncul sebagai. aws-account-id

  • Anda dapat menggunakan {accountid} variabel sehingga CloudFront menambahkan ID akun Anda ke jalur akhiran. Jika log Anda kompatibel dengan HIVE, variabel ini muncul sebagai. accountid

  • Untuk informasi selengkapnya tentang jalur sufiks, lihat DeliveryConfigurationS3.

Contoh log akses dikirim ke Amazon S3

#Fields: date time x-edge-location asn timestamp(ms) x-host-header cs(Cookie) 2024-11-14 22:30:25 SOF50-P2 16509 1731623425421 d111111abcdef8.cloudfront.net examplecookie=value2

Nonaktifkan logging standar

Anda dapat menonaktifkan pencatatan standar untuk distribusi Anda jika Anda tidak lagi membutuhkannya.

Untuk menonaktifkan logging standar
  1. Masuk ke CloudFront konsol.

  2. Pilih Distribusi dan kemudian pilih ID distribusi Anda.

  3. Pilih Logging dan kemudian di bawah Tujuan log standar, pilih tujuan.

  4. Pilih Kelola dan kemudian pilih Hapus.

  5. Ulangi langkah sebelumnya jika Anda memiliki lebih dari satu logging standar.

catatan

Saat Anda menghapus logging standar dari CloudFront konsol, tindakan ini hanya menghapus pengiriman dan tujuan pengiriman. Itu tidak menghapus sumber pengiriman dari Anda Akun AWS. Untuk menghapus sumber pengiriman, tentukan nama sumber pengiriman dalam aws logs delete-delivery-source --name DeliverySourceName perintah. Untuk informasi selengkapnya, lihat DeleteDeliverySourcedi Referensi API Amazon CloudWatch Logs.

Pemecahan Masalah

Gunakan informasi berikut untuk memperbaiki masalah umum saat Anda bekerja dengan logging CloudFront standar (v2).

Sumber pengiriman sudah ada

Saat mengaktifkan pencatatan standar untuk distribusi, Anda membuat sumber pengiriman. Anda kemudian menggunakan sumber pengiriman tersebut untuk membuat pengiriman ke jenis tujuan yang Anda inginkan: CloudWatch Log, Firehose, Amazon S3. Saat ini, Anda hanya dapat memiliki satu sumber pengiriman per distribusi. Jika Anda mencoba membuat sumber pengiriman lain untuk distribusi yang sama, pesan galat berikut akan muncul.

This ResourceId has already been used in another Delivery Source in this account

Untuk membuat sumber pengiriman lain, hapus yang sudah ada terlebih dahulu. Untuk informasi selengkapnya, lihat DeleteDeliverySourcedi Referensi API Amazon CloudWatch Logs.

Saya mengubah jalur sufiks dan ember Amazon S3 tidak dapat menerima log saya

Jika Anda mengaktifkan pencatatan standar (v2) dan menentukan ARN bucket tanpa awalan, CloudFront akan menambahkan default berikut ke jalur sufiks:. AWSLogs/{account-id}/CloudFront Jika Anda menggunakan CloudFront konsol atau operasi UpdateDeliveryConfigurationAPI untuk menentukan jalur sufiks yang berbeda, Anda harus memperbarui kebijakan bucket Amazon S3 untuk menggunakan jalur yang sama.

contoh Contoh: Memperbarui jalur sufiks
  1. Jalur sufiks default Anda adalah AWSLogs/{account-id}/CloudFront dan Anda menggantinya denganmyFolderA.

  2. Karena jalur akhiran baru Anda berbeda dari jalur yang ditentukan dalam kebijakan bucket Amazon S3, log akses Anda tidak akan dikirimkan.

  3. Anda dapat melakukan salah satu langkah berikut:

    • Perbarui izin bucket Amazon S3 dari keamzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/*. amzn-s3-demo-bucket/myFolderA/*

    • Perbarui konfigurasi logging Anda untuk menggunakan akhiran default lagi: AWSLogs/{account-id}/CloudFront

Untuk informasi selengkapnya, lihat Izin.

Hapus file log

CloudFront tidak secara otomatis menghapus file log dari tujuan Anda. Untuk informasi tentang menghapus file log, lihat topik berikut:

Amazon S3
  • Menghapus objek di Panduan Pengguna Konsol Layanan Penyimpanan Sederhana Amazon

CloudWatch Log
Firehose

Harga

CloudFront tidak mengenakan biaya untuk mengaktifkan log standar. Namun, Anda dapat dikenakan biaya untuk pengiriman, konsumsi, penyimpanan, atau akses, tergantung pada tujuan pengiriman log yang Anda pilih. Untuk informasi selengkapnya, lihat Harga CloudWatch Log Amazon. Di bawah Tingkat Berbayar, pilih tab Log, lalu di bawah Log Terjual, lihat informasi untuk setiap tujuan pengiriman.

Untuk informasi selengkapnya tentang harga untuk masing-masing Layanan AWS, lihat topik berikut: