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:
Teraz przejdź do procesu Create Custom 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.
Teraz kliknij przycisk Continue to summary; podsumowanie powinno wyglądać tak:
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
- W Ahrefs przejdź do Ustawienia Projektu → Bot Analytics.
- Wybierz Cloudflare Logpush jako metodę.
- Wklej Token API Cloudflare i kliknij Połącz.
Ahrefs użyje Tokena, aby:
- Znaleźć strefę pasującą do domeny Twojego projektu.
- Sprawdź istniejące zadania Logpush.
- Utworzyć nowe zadanie przesyłania logów do Ahrefs.
- Dodaj do strefy regułę niestandardowego pola logów, aby nagłówki weryfikacji botów (
signature,signature-inputisignature-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
-
Przejdź do swojego Dashboard w Cloudflare i wybierz domenę swojej witryny.
-
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.