Docs
Szukaj w dokumentacji...⌘K

Cloudflare Logpush

Cloudflare Logpush automatycznie wysyła logi żądań HTTP do Ahrefs. To zalecana metoda dla witryn o dużym ruchu, ale wymaga planu Cloudflare Enterprise.

Wymagania wstępne

  • Plan Cloudflare Enterprise dla strefy, którą chcesz monitorować.
  • Token API Cloudflare z następującymi uprawnieniami:
    • Strefa → Strefa → Odczyt
    • Zone → Logs → Edit
  • Tylko w przypadku konfiguracji ręcznej: lokalnie zainstalowane narzędzie jq, którego polecenia konfiguracyjne używają do odczytywania i aktualizowania konfiguracji Cloudflare.

Uzyskiwanie tokenu API Cloudflare

Upewnij się, że jesteś zalogowany(-a) do panelu Cloudflare Dashboard na właściwym koncie. Następnie przejdź na stronę https://dash.cloudflare.com/profile/api-tokens, znajdź i kliknij przycisk Utwórz token w prawym górnym rogu:

Utwórz token

Teraz przejdź do procesu Create Custom Token:

Utwórz niestandardowy Token

Wypełnij poniższe informacje:

  • Nazwa tokena API: ahrefs-bot-analytics
  • Przyznaj następujące uprawnienia:
    • Strefa / Dzienniki / Edytuj, abyśmy mogli skonfigurować zadanie Logpush wysyłające dzienniki do Ahrefs Bot Analytics
    • Zone / Zone / Read — abyśmy mogli odnaleźć strefę do skonfigurowania
  • W polu Zone Resources możesz ustawić Include / All Zones; ewentualnie wybierz strefę odpowiadającą domenie Twojej witryny.
Konfiguracja tokena

Teraz kliknij przycisk Continue to summary; podsumowanie powinno wyglądać tak:

Podsumowanie tokena

Teraz kliknij przycisk Create Token i skopiuj wygenerowany token do schowka, aby użyć go w kolejnych krokach.

Więcej informacji znajdziesz w dokumentacji Cloudflare: jak utworzyć token API.

Automatyczna konfiguracja

  1. W Ahrefs przejdź do Ustawienia Projektu → Bot Analytics.
  2. Wybierz Cloudflare Logpush jako metodę.
  3. Wklej Token API Cloudflare i kliknij Połącz.

Ahrefs użyje Tokena, aby:

  1. Znaleźć strefę pasującą do domeny Twojego projektu.
  2. Sprawdź istniejące zadania Logpush.
  3. Utworzyć nowe zadanie przesyłania logów do Ahrefs.
  4. Dodaj do strefy regułę niestandardowego pola logów, aby nagłówki weryfikacji botów (signature, signature-input i signature-agent) były uwzględniane w logach. Istniejące reguły w twojej strefie zostaną zachowane.

info

Twój token zostanie użyty tylko raz i nie będzie przechowywany.

Konfiguracja ręczna

Jeśli wolisz nie podawać tokena, możesz skonfigurować zadanie Logpush ręcznie za pomocą API Cloudflare.

Krok 1 — uzyskaj swój token API

  1. Przejdź do swojego Dashboard w Cloudflare i wybierz domenę swojej witryny.

  2. Kliknij opcję „Uzyskaj swój token API” i utwórz nowy token z następującymi uprawnieniami:

    • Strefa → Strefa → Odczyt
    • Zone → Logs → Edit

    Szczegółowe instrukcje znajdziesz w sekcji Obtaining API token.

info

Nie musisz sprawdzać swojego identyfikatora strefy. Polecenia znajdują strefę na podstawie twojej domeny przy użyciu uprawnienia Zone → Zone → Read.

Krok 2 — Utwórz zadanie Logpush

Wklej swój token API do pierwszego bloku, a następnie uruchamiaj w terminalu każdy z poniższych bloków po kolei, sprawdzając, czy każdy z nich kończy się bez błędu. Razem znajdują twoją strefę, tworzą zadanie Logpush i dodają regułę niestandardowego pola dziennika opisaną w sekcji Automatyczna konfiguracja. Dokładne polecenia, wstępnie uzupełnione danymi Twojego projektu, znajdziesz w Ustawienia projektu → Bot Analytics → Skonfiguruj ręcznie.

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

Pola BotScore, BotScoreSrc i BotTags są dostępne tylko w ramach subskrypcji Cloudflare Bot Management. Bot Analytics działa jednak bez nich, choć ich uwzględnienie poprawia klasyfikację botów. Jeśli w Twojej strefie nie ma usługi Bot Management, usuń te trzy pola z field_names przed utworzeniem zadania.

warning

Adres URL destination_conf oraz klucz właściwości są unikalne dla Twojego projektu. Aby mieć pewność, że wartości są poprawne, skopiuj dokładne polecenia ze strony Ustawienia projektu → Bot Analytics.

Krok 3 — Sprawdź połączenie

Po utworzeniu zadania wróć do Ustawienia projektu → Analityka bota w Ahrefs i kliknij Sprawdź status, aby upewnić się, że dane są odbierane.