Amazon CloudFront
Amazon CloudFront dapat mengirimkan log aksesnya ke stream Amazon Data Firehose, dan Firehose dapat meneruskannya ke Ahrefs melalui HTTPS. Anda membuat stream dan mengaktifkan pengiriman log di akun AWS Anda sendiri melalui konsol AWS; Ahrefs tidak pernah memerlukan akses ke akun tersebut.
Prasyarat
- Distribusi CloudFront yang melayani domain proyek Ahrefs Anda.
- Izin di akun AWS tersebut untuk membuat stream Firehose, bucket S3, dan peran IAM, serta untuk mengedit pengaturan pencatatan log distribusi.
- Stream Firehose harus dibuat di wilayah US East (N. Virginia)
us-east-1. CloudFront hanya mengirimkan log standard ke stream Firehose di wilayah tersebut, di wilayah mana pun origin Anda berada.
Langkah 1 — Dapatkan URL titik akhir dan kunci akses Anda
- Di Ahrefs, buka Pengaturan Proyek → Bot Analytics untuk proyek Anda.
- Pilih Amazon CloudFront.
- Salin URL titik akhir HTTP dan kunci akses yang ditampilkan di halaman. Kunci akses mengidentifikasi proyek Anda; perlakukan seperti kata sandi.
URL titik akhir sama untuk semua orang:
https://analytics.ahrefs.com/api/aws_firehose/logs
Langkah 2 — Buat stream Firehose
Di konsol AWS, beralihlah ke wilayah US East (N. Virginia), buka Amazon Data Firehose lalu klik Buat stream Firehose.
Pilih sumber dan tujuan
Setel Sumber ke Direct PUT dan Tujuan ke Titik akhir HTTP, lalu beri nama stream, misalnya ahrefs-bot-analytics. Sumber dan tujuan tidak dapat diubah setelah stream dibuat. Biarkan bagian Transformasikan rekaman apa adanya.
Pengaturan tujuan
- Nama titik akhir HTTP:
Ahrefs Bot Analytics - URL titik akhir HTTP: URL dari Langkah 1
- Autentikasi: Gunakan kunci akses, lalu tempelkan kunci akses dari Langkah 1 ke Kunci akses
- Pengodean konten: GZIP
- Durasi percobaan ulang:
300detik - Parameter: biarkan kosong
- Petunjuk buffer: pertahankan nilai bawaan
warning
Kunci akses adalah satu-satunya hal yang menghubungkan stream dengan proyek Ahrefs Anda. Setiap proyek Ahrefs memerlukan stream Firehose sendiri dengan kunci aksesnya sendiri; beberapa distribusi yang melayani proyek yang sama dapat berbagi satu stream.
Pengaturan cadangan
Di bawah Pencadangan rekaman sumber di Amazon S3, pilih Hanya data yang gagal, lalu Telusuri ke bucket S3 yang sudah ada atau Buat yang baru. Firehose menuliskan setiap batch yang tidak dapat diterima Ahrefs ke sana, beserta alasannya, sehingga bucket ini adalah tempat pertama yang perlu diperiksa saat memecahkan masalah.
Pengaturan lanjutan
Perluas Pengaturan Advanced, setel Pencatatan kesalahan Amazon CloudWatch ke Diaktifkan, lalu di bawah Izin biarkan konsol membuat peran IAM baru. Klik Buat stream Firehose dan tunggu sampai status stream menjadi Aktif.
Langkah 3 — Kirim log CloudFront ke stream
- Di konsol CloudFront, buka Distribusi dan pilih distribusi Anda.
- Di tab Pencatatan log, di bawah Tujuan log standard, klik Tambah.
- Di halaman Tambahkan tujuan log akses, setel Kirimkan ke ke Amazon Kinesis Data Firehose dan pilih stream Anda di bawah Stream tujuan.
- Perluas Pengaturan tambahan:
- Pemilihan bidang: pilih bidang yang tercantum di Bidang log. Membiarkan semua 33 bidang tetap terpilih juga bisa.
- Format output: JSON. Format lain tidak diterima.
- Klik Kirim. CloudFront menerapkan perubahan pencatatan log dalam beberapa menit.
Bidang log
Ahrefs memerlukan stempel waktu, c-ip, x-host-header, cs-uri-stem, dan cs(User-Agent). Pilihan yang direkomendasikan adalah:
timestamp(ms) date time c-ip x-forwarded-for cs-method x-host-header cs-protocol
cs-protocol-version cs-uri-stem cs-uri-query cs(User-Agent) cs(Referer) sc-status sc-bytes
sc-content-type time-to-first-byte time-taken x-edge-result-type x-edge-request-id
x-edge-location c-country asn
timestamp(ms), c-country, dan asn ada dalam subset real-time pada pemilih bidang. Bidang tersebut opsional: tanpa timestamp(ms) Ahrefs menggunakan date dan time, dengan presisi satu detik.
Langkah 4 — Verifikasi
CloudFront mengirimkan log standard secara batch, biasanya dalam satu jam setelah permintaan dan secara andal sekitar empat jam setelah Anda mengaktifkan pencatatan log. Firehose kemudian meneruskan setiap batch dalam interval buffer-nya.
- Di konsol Firehose, tab Pemantauan pada stream menampilkan
IncomingRecordssetelah CloudFront mulai mengirimkan, danDeliveryToHttpEndpoint.Successsetelah Ahrefs menerima batch tersebut. - Di Ahrefs, laporan Bot Analytics akan terisi seiring bot mengunjungi situs Anda.
Pemecahan masalah
Jika pengiriman gagal, Firehose akan mencoba ulang selama durasi percobaan ulang, lalu menulis batch ke bucket cadangan Anda di bawah awalan http-endpoint-failed/, beserta pesan error yang dikembalikan oleh Ahrefs. Pesan yang sama muncul di tab Log kesalahan tujuan pada stream.
| Pesan error | Penyebab |
|---|---|
missing authentication header | Kolom kunci akses pada tujuan Firehose kosong. |
invalid authentication | Kunci akses tidak cocok dengan proyek Ahrefs. Salin lagi dari Langkah 1. |
records are not JSON: configure CloudFront standard logging (v2) with output format JSON | Format output pengiriman bukan JSON, atau stream menerima log real-time CloudFront. Hanya log standard dalam JSON yang didukung. |
Respons … harus berisi header “content-type: application/json” … 404 | URL titik akhir salah ketik. Bandingkan dengan URL pada Langkah 1. |
Menonaktifkan
- Di konsol CloudFront, pada tab Pencatatan log distribusi, pilih tujuan Firehose lalu hapus. Ini akan menghentikan pengiriman log.
- Hapus stream Firehose, dan bucket cadangan jika Anda tidak lagi memerlukannya.
- Di Ahrefs, nonaktifkan Amazon CloudFront di Pengaturan Proyek → Bot Analytics.
Menghapus tujuan akan mempertahankan sumber pengiriman distribusi di CloudWatch Logs. Hal ini tidak berbahaya dan akan digunakan kembali jika Anda mengaktifkan pencatatan log lagi.
info
CloudFront log real-time (dikirim melalui Kinesis Data Streams) tidak didukung. Gunakan pencatatan log standard (v2) dengan output JSON seperti yang dijelaskan di atas.