Docs
Dokümanlarda ara...⌘K

Cloudflare Logpush

Cloudflare Logpush, HTTP istek günlüklerini Ahrefs'e otomatik olarak gönderir. Yüksek trafikli siteler için önerilen yöntemdir, ancak Cloudflare Kurumsal planı gerektirir.

Ön koşullar

  • İzlemek istediğiniz zone için bir Cloudflare Kurumsal planı.
  • Aşağıdaki izinlere sahip bir Cloudflare API Belirteci:
    • Bölge → Bölge → Oku
    • Zone → Logs → Edit
  • Yalnızca manuel kurulum için: kurulum komutlarının Cloudflare yapılandırmanızı okumak ve güncellemek için kullandığı, yerel olarak yüklenmiş jq.

Cloudflare API belirteci alınıyor

Cloudflare Dashboard’da doğru hesapla oturum açtığınızdan emin olun. Ardından https://dash.cloudflare.com/profile/api-tokens sayfasına gidin, sağ üst köşedeki Belirteç Oluştur düğmesini bulun ve tıklayın:

Belirteç oluştur

Şimdi Özel belirteç oluştur akışıyla devam edin:

Özel belirteç oluştur

Aşağıdaki bilgileri girin:

  • API belirteci adı: ahrefs-bot-analytics
  • Aşağıdaki izinleri verin:
    • Ahrefs Bot Analytics'e günlük göndermek üzere bir Logpush işi yapılandırabilmemiz için Zone / Logs / Edit
    • Yapılandırılacak bölgeyi bulabilmemiz adına Bölge / Bölge / Oku
  • Bölge Kaynakları Dahil Et / Tüm Bölgeler olarak ayarlanabilir; alternatif olarak web sitenizin alan adıyla eşleşen bölgeyi seçin.
Belirteç yapılandırması

Şimdi Continue to summary düğmesine tıklayın; özet şu şekilde görünmelidir:

Belirteç özeti

Şimdi Belirteç oluştur düğmesine tıklayın ve sonraki adımlarda kullanmak üzere oluşturulan belirteci panoya kopyalayın.

Ek bilgi için API belirteci oluşturma hakkında Cloudflare dokümantasyonuna göz atın.

Otomatik kurulum

  1. Ahrefs'te Proje Ayarları → Bot Analytics bölümüne gidin.
  2. Yöntem olarak Cloudflare Logpush'ı seçin.
  3. Cloudflare API belirtecinizi yapıştırın ve Bağlan'a tıklayın.

Ahrefs, belirtecinizi şu amaçlarla kullanır:

  1. Projenizin alan adıyla eşleşen zone'u bulun.
  2. Mevcut Logpush işlerini kontrol edin.
  3. Ahrefs'e günlük gönderen yeni bir iş oluşturun.
  4. Bot doğrulama başlıklarının (signature, signature-input ve signature-agent) günlüklerde yer alması için bölgeye özel bir günlük alanı kuralı ekleyin. Bölgenizdeki mevcut kurallar korunur.

info

Belirteciniz bir kez kullanılır ve saklanmaz.

Manuel kurulum

Bir API belirteci paylaşmak istemiyorsanız, Logpush işini Cloudflare API'sini kullanarak manuel olarak kurabilirsiniz.

Adım 1 — API belirtecinizi alın

  1. Cloudflare Dashboard'unuza gidin ve web sitenizin alan adını seçin.

  2. "API belirtecinizi alın" seçeneğine tıklayın ve şu izinlerle yeni bir belirteç oluşturun:

    • Bölge → Bölge → Oku
    • Zone → Logs → Edit

    Ayrıntılı talimatlar için API belirteci edinme bölümüne bakın.

info

Bölge kimliğinizi bulmanız gerekmez. Komutlar, Bölge → Bölge → Okuma iznini kullanarak alan adınızdan bölgeyi bulur.

2. Adım — Logpush işini oluşturun

İlk bloğa API belirtecinizi girin, ardından aşağıdaki her bloğu terminalinizde teker teker çalıştırın ve her birinin hatasız tamamlandığını kontrol edin. Birlikte bölgenizi bulur, Logpush görevini oluşturur ve Otomatik kurulum bölümünde açıklanan özel günlük kaydı alanı kuralını ekler. Projenizin ayrıntılarıyla önceden doldurulmuş komutları Proje Ayarları → Bot Analytics → Manuel olarak ayarla bölümünde bulabilirsiniz.

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"

info

BotScore, BotScoreSrc ve BotTags alanları yalnızca bir Cloudflare Bot Management aboneliğiyle kullanılabilir. Yine de Bot Analytics bunlar olmadan da çalışır; ancak bunları dahil etmek bot sınıflandırmasını iyileştirir. Zonunuzda Bot Management yoksa, işi oluşturmadan önce field_names içinden bu üç alanı kaldırın.

warning

destination_conf URL'si ve özellik anahtarı projenize özeldir. Doğru değerleri kullandığınızdan emin olmak için, komutların aynısını Proje Ayarları → Bot Analytics sayfanızdan kopyalayın.

Adım 3 — Bağlantıyı doğrulayın

İşi oluşturduktan sonra Ahrefs'te Proje Ayarları → Bot Analizleri bölümüne geri dönün ve verilerin alındığını doğrulamak için Durumu kontrol et seçeneğine tıklayın.