Logpush da Cloudflare
O Cloudflare Logpush envia logs de solicitações HTTP para a Ahrefs automaticamente. É o método recomendado para sites com alto tráfego, mas exige um plano Cloudflare Enterprise.
Pré-requisitos
- Um plano Cloudflare Enterprise na zona que você quer monitorar.
- Um Token de API da Cloudflare com as seguintes permissões:
- Zona → Zona → Leitura
- Zona → Logs → Editar
- Apenas para a configuração manual:
jqinstalado localmente, que os comandos de configuração usam para ler e atualizar sua configuração do Cloudflare.
Obtendo token de API do Cloudflare
Verifique se você está conectado ao Dashboard do Cloudflare com a conta correta. Em seguida, navegue até a página https://dash.cloudflare.com/profile/api-tokens, localize e clique no botão Criar Token no canto superior direito:
Agora prossiga com o fluxo de Criar token personalizado:
Preencha as seguintes informações:
- Nome do token de API: ahrefs-bot-analytics
- Conceda as seguintes permissões:
- Zona / Logs / Editar para que possamos configurar um job do Logpush para enviar os logs para o Ahrefs Bot Analytics
- Zona / Zona / Ler para que possamos localizar a zona a ser configurada
- Os recursos da zona podem ser definidos como Incluir / Todas as zonas; como alternativa, selecione a zona que corresponde ao domínio do seu site.
Agora clique no botão Continue to summary; o resumo deve ficar assim:
Agora clique no botão Criar token e copie o token gerado para a área de transferência para usar nas próximas etapas.
Consulte a documentação da Cloudflare sobre como criar um token de API para obter informações adicionais.
Configuração automática
- No Ahrefs, vá para Configurações do Projeto → Bot Analytics.
- Selecione Cloudflare Logpush como método.
- Cole seu Token de API do Cloudflare e clique em Conectar.
O Ahrefs vai usar seu token para:
- Encontrar a zona que corresponde ao domínio do seu projeto.
- Verifique se há jobs do Logpush existentes.
- Criar um novo job que envia logs para a Ahrefs.
- Adicione uma regra de campo de log personalizado à zona, para que os cabeçalhos de verificação de bot (
signature,signature-inputesignature-agent) sejam incluídos nos logs. As regras existentes na sua zona são preservadas.
info
Seu token é usado uma vez e não é armazenado.
Configuração manual
Se você preferir não fornecer um Token de API, pode configurar o job do Logpush manualmente usando a API do Cloudflare.
Etapa 1 — Obtenha seu token de API
-
Acesse seu Dashboard do Cloudflare e selecione o domínio do seu site.
-
Clique em "Obtenha seu token de API" e crie um novo token com as seguintes permissões:
- Zona → Zona → Leitura
- Zona → Logs → Editar
Consulte Como obter token de API para instruções detalhadas.
info
Você não precisa procurar o ID da sua zona. Os comandos encontram a zona a partir do seu domínio usando a permissão Zona → Zona → Leitura.
Etapa 2 — Crie o job do Logpush
Insira seu token de API no primeiro bloco e, em seguida, execute cada bloco abaixo, um de cada vez, no seu terminal, verificando se cada um é concluído sem erros. Juntos, eles encontram sua zona, criam a tarefa de Logpush e adicionam a regra de campo de log personalizado descrita em Configuração automática. Você pode encontrar os comandos exatos, já preenchidos com os detalhes do seu projeto, em Configurações do Projeto → Bot Analytics → Configurar manualmente.
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
Os campos BotScore, BotScoreSrc e BotTags estão disponíveis apenas com uma assinatura do Cloudflare Bot Management. O Bot Analytics funciona sem eles, mas incluí-los melhora a classificação de bots. Se a sua zona não tiver o Bot Management, remova esses três campos de field_names antes de criar a tarefa.
warning
A URL destination_conf e a chave da propriedade são exclusivas do seu projeto. Copie os comandos exatos da sua página Configurações do Projeto → Análises de bots para garantir os valores corretos.
Etapa 3 — Verificar a conexão
Depois de criar a tarefa, volte para Configurações do Projeto → Bot Analytics no Ahrefs e clique em Verificar status para confirmar se os dados estão sendo recebidos.