Cloudflare Logpush
Cloudflare Logpush secara otomatis mengirim log permintaan HTTP ke Ahrefs. Ini adalah metode yang direkomendasikan untuk situs dengan trafik tinggi, tetapi memerlukan paket Cloudflare Enterprise.
Prasyarat
- Paket Cloudflare Enterprise pada zona yang ingin Anda pantau.
- Token API Cloudflare dengan izin berikut:
- Zona → Zona → Baca
- Zone → Logs → Edit
- Hanya untuk penyiapan manual:
jqterinstal secara lokal, yang digunakan oleh perintah penyiapan untuk membaca dan memperbarui konfigurasi Cloudflare Anda.
Mendapatkan token API Cloudflare
Pastikan Anda masuk ke Dashboard Cloudflare dengan akun yang benar. Lalu buka halaman https://dash.cloudflare.com/profile/api-tokens, temukan dan klik tombol Create Token di kanan atas:
Sekarang lanjutkan dengan alur Buat Token Kustom:
Isi informasi berikut:
- Nama token API: ahrefs-bot-analytics
- Berikan izin berikut:
- Zona / Log / Edit agar kami dapat mengonfigurasi pekerjaan Logpush untuk mengirim log ke Ahrefs Bot Analytics
- Zone / Zone / Read agar kami dapat menemukan zone yang akan dikonfigurasi
- Zone Resources dapat diatur ke Include / All Zones; sebagai alternatif, pilih Zone yang sesuai dengan domain situs web Anda.
Sekarang klik tombol Continue to summary; ringkasannya seharusnya terlihat seperti ini:
Sekarang klik tombol Create Token dan salin token yang dihasilkan ke clipboard untuk digunakan pada langkah-langkah berikutnya.
Lihat dokumentasi Cloudflare tentang cara membuat token API untuk informasi tambahan.
Penyiapan otomatis
- Di Ahrefs, buka Pengaturan Proyek → Bot Analytics.
- Pilih Cloudflare Logpush sebagai metodenya.
- Tempel Token API Cloudflare Anda lalu klik Connect.
Ahrefs akan menggunakan token Anda untuk:
- Menemukan zona yang sesuai dengan domain Proyek Anda.
- Periksa Logpush job yang sudah ada.
- Membuat job baru untuk mengirim log ke Ahrefs.
- Tambahkan aturan bidang log khusus ke zona, sehingga header verifikasi bot (
signature,signature-input, dansignature-agent) disertakan dalam log. Aturan yang sudah ada di zona Anda akan tetap dipertahankan.
info
Token Anda digunakan sekali dan tidak disimpan.
Penyiapan manual
Jika Anda memilih untuk tidak memberikan Token API, Anda dapat menyiapkan job Logpush secara manual menggunakan API Cloudflare.
Langkah 1 — Dapatkan token API Anda
-
Buka Dashboard Cloudflare Anda dan pilih domain situs web Anda.
-
Klik "Dapatkan token API Anda" dan buat token baru dengan izin berikut:
- Zona → Zona → Baca
- Zone → Logs → Edit
Lihat Mendapatkan token API untuk petunjuk terperinci.
info
Anda tidak perlu mencari ID zona Anda. Perintah tersebut mencari zona dari domain Anda menggunakan izin Zona → Zona → Baca.
Langkah 2 — Buat job Logpush
Masukkan token API Anda ke blok pertama, lalu jalankan setiap blok di bawah ini satu per satu di terminal Anda, dan pastikan masing-masing selesai tanpa kesalahan. Bersama-sama, perintah-perintah tersebut menemukan zona Anda, membuat tugas Logpush, dan menambahkan aturan bidang log kustom yang dijelaskan di Penyiapan otomatis. Anda dapat menemukan perintah yang sudah diisi dengan detail Proyek Anda di Pengaturan Proyek → Bot Analytics → Siapkan secara manual.
export CF_TOKEN="<your Cloudflare API token>"
BASE="https://api.cloudflare.com/client/v4"
Find the Cloudflare zone for yourwebsite.com
ZONE_ID=$(curl -s --fail-with-body "$BASE/zones?name=yourwebsite.com&status=active&match=all" \
-H "Authorization: Bearer $CF_TOKEN" | jq -r '.result[0].id // error("no active Cloudflare zone found for yourwebsite.com")')
echo "ZONE_ID=$ZONE_ID"
Remove the existing Logpush job if present
OLD_JOB_ID=$(curl -s --fail-with-body "$BASE/zones/$ZONE_ID/logpush/jobs" \
-H "Authorization: Bearer $CF_TOKEN" | jq -r '([(.result // [])[] | select(.name == "ahrefs-web-analytics-http-requests")])[0].id // ""')
echo "OLD_JOB_ID=$OLD_JOB_ID"
if [ -n "$OLD_JOB_ID" ]; then
curl -s --fail-with-body "$BASE/zones/$ZONE_ID/logpush/jobs/$OLD_JOB_ID" -X DELETE \
-H "Authorization: Bearer $CF_TOKEN"
fi
Create the Logpush job
curl -s --fail-with-body "$BASE/zones/$ZONE_ID/logpush/jobs" -X POST \
-H "Authorization: Bearer $CF_TOKEN" \
-H "Content-Type: application/json" \
--data-binary '{"name":"ahrefs-web-analytics-http-requests","destination_conf":"https://analytics.ahrefs.com/api/cf_logpush/http_requests?header_x-ahrefs-web-analytics-property=YOUR_PROPERTY_KEY","dataset":"http_requests","frequency":"high","filter":"{\"where\":{\"or\":[{\"key\":\"ClientRequestHost\",\"operator\":\"eq\",\"value\":\"yourwebsite.com\"},{\"key\":\"ClientRequestHost\",\"operator\":\"endsWith\",\"value\":\".yourwebsite.com\"}]}}","output_options":{"field_names":["ClientIP","ClientRequestMethod","ClientRequestHost","ClientRequestProtocol","ClientRequestScheme","ClientRequestURI","ClientRequestPath","ClientRequestUserAgent","ClientRequestReferer","EdgeStartTimestamp","EdgeEndTimestamp","EdgeResponseStatus","EdgeResponseBytes","EdgeResponseContentType","EdgeTimeToFirstByteMs","ClientCountry","ClientCity","ClientASN","ClientDeviceType","ClientRegionCode","BotScore","BotScoreSrc","BotTags","VerifiedBotCategory","RayID","RequestHeaders"],"timestamp_format":"unixnano"},"enabled":true}'
Add the custom log fields rule
RULES=$(curl -s --fail-with-body "$BASE/zones/$ZONE_ID/rulesets/phases/http_log_custom_fields/entrypoint" \
-H "Authorization: Bearer $CF_TOKEN" | jq -c '.result.rules // []')
echo "RULES=$RULES"
BODY=$(jq -nc --argjson rules "$RULES" \
'{rules: ([$rules[] | select(.description != "ahrefs-web-analytics-web-bot-auth-signature")] + [{"action":"log_custom_field","expression":"true","description":"ahrefs-web-analytics-web-bot-auth-signature","action_parameters":{"request_fields":[{"name":"signature"},{"name":"signature-input"},{"name":"signature-agent"}]}}])}')
curl -s --fail-with-body "$BASE/zones/$ZONE_ID/rulesets/phases/http_log_custom_fields/entrypoint" -X PUT \
-H "Authorization: Bearer $CF_TOKEN" \
-H "Content-Type: application/json" \
--data-binary "$BODY"
warning
URL destination_conf dan key properti bersifat unik untuk Proyek Anda. Salin perintah yang tepat dari halaman Pengaturan Proyek → Bot Analytics untuk memastikan nilainya benar.
Langkah 3 — Verifikasi koneksi
Setelah membuat job, kembali ke Setelan Proyek → Bot Analytics di Ahrefs dan klik Periksa status untuk memverifikasi bahwa data sudah diterima.