Docs
Pesquisar na documentação...⌘K

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: jq instalado 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:

Criar token

Agora prossiga com o fluxo de Criar token personalizado:

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.
Configuração do token

Agora clique no botão Continue to summary; o resumo deve ficar assim:

Resumo do token

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

  1. No Ahrefs, vá para Configurações do Projeto → Bot Analytics.
  2. Selecione Cloudflare Logpush como método.
  3. Cole seu Token de API do Cloudflare e clique em Conectar.

O Ahrefs vai usar seu token para:

  1. Encontrar a zona que corresponde ao domínio do seu projeto.
  2. Verifique se há jobs do Logpush existentes.
  3. Criar um novo job que envia logs para a Ahrefs.
  4. Adicione uma regra de campo de log personalizado à zona, para que os cabeçalhos de verificação de bot (signature, signature-input e signature-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

  1. Acesse seu Dashboard do Cloudflare e selecione o domínio do seu site.

  2. 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.