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
    • Strefa → DNS → Odczyt (opcjonalnie, umożliwia Ahrefsowi sprawdzenie, czy twoje rekordy DNS są obsługiwane przez proxy)
  • Tylko w przypadku konfiguracji ręcznej: lokalnie zainstalowane narzędzie jq, którego polecenia konfiguracyjne używają do odczytywania i aktualizowania konfiguracji Cloudflare.

info

Logpush rejestruje tylko żądania, które przechodzą przez Cloudflare. Rekordy DNS ustawione na Tylko DNS (szara chmurka) kierują odwiedzających bezpośrednio do twojego serwera źródłowego, więc Bot Analytics nie otrzymuje dla nich żadnych danych. Upewnij się, że rekordy twojej domeny są ustawione jako Obsługiwane przez proxy (pomarańczowa chmurka); zobacz status proxy.

Limity i koszty

Zadanie Logpush wysyła wiersz logu dla każdego żądania skierowanego do twojej domeny i jej subdomen. Żądania z przeglądarek też są wysyłane; Ahrefs odrzuca wszystko, co nie jest botem.

warning

Cloudflare zezwala na maksymalnie 4 zadania Logpush na strefę. Jeśli w twojej strefie są już 4 takie zadania, konfiguracja nie powiedzie się, dopóki nie usuniesz jednego z nich.

Cloudflare mierzy użycie Logpush w nieskompresowanych bajtach dostarczonych danych. Sprawdź w swojej umowie Enterprise, jak jest to rozliczane, a szczegółowe informacje znajdziesz w Logpush.

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
    • Strefa / DNS / Odczyt (opcjonalnie), abyśmy mogli zweryfikować, czy dla Twoich rekordów DNS włączono proxy Cloudflare
  • 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. Sprawdzimy, czy dla Twoich rekordów DNS włączono proxy Cloudflare, i ostrzeżemy Cię, jeśli tak nie jest (wymaga opcjonalnego uprawnienia Strefa → DNS → Odczyt).
  3. Sprawdź istniejące zadania Logpush.
  4. Utworzyć nowe zadanie przesyłania logów do Ahrefs.
  5. Dodaj w strefie regułę niestandardowego pola dziennika, aby logi zawierały nagłówki żądania weryfikacji bota (signature, signature-input i signature-agent) oraz nagłówek odpowiedzi Location, który pokazuje, dokąd przekierowanie wysłało bota. Zadanie żąda pól RequestHeaders i ResponseHeaders, aby je otrzymać. Istniejące reguły w twojej strefie zostaną zachowane.

info

Zadanie utworzone przed dodaniem nagłówka Location nie wysyła go. Połącz ponownie lub uruchom ponownie konfigurację ręczną, aby zastąpić zadanie i regułę.

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","ResponseHeaders"],"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"}],"response_fields":[{"name":"location"}]}}])}')

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. Jeśli nie pojawią się żadne dane, sprawdź, czy dla Twoich rekordów DNS włączono proxy.