Docs
Buscar documentación...⌘K

Amazon CloudFront

Amazon CloudFront puede entregar sus registros de acceso a un flujo de Amazon Data Firehose, y Firehose puede reenviarlos a Ahrefs a través de HTTPS. Creas el flujo y habilitas la entrega de registros en tu propia cuenta de AWS desde la consola de AWS; Ahrefs nunca necesita acceder a ella.

Requisitos previos

  • Una distribución de CloudFront que sirve el dominio de tu proyecto de Ahrefs.
  • Permisos en esa cuenta de AWS para crear un flujo de Firehose, un bucket de S3 y un rol de IAM, y para editar la configuración de registro de la distribución.
  • El flujo de Firehose debe crearse en la región US East (N. Virginia) us-east-1. CloudFront solo entrega registros standard a flujos de Firehose en esa región, independientemente de la región en la que esté tu origen.

Paso 1 — Obtén la URL de tu punto de conexión y la clave de acceso

  1. En Ahrefs, ve a Configuración del proyecto → Bot Analytics de tu proyecto.
  2. Selecciona Amazon CloudFront.
  3. Copia la URL del punto de conexión HTTP y la clave de acceso que se muestran en la página. La clave de acceso identifica tu proyecto; trátala como si fuera una contraseña.

La URL del punto de conexión es la misma para todos:

https://analytics.ahrefs.com/api/aws_firehose/logs

Paso 2 — Crea el flujo de Firehose

En la consola de AWS, cambia a la región US East (N. Virginia), abre Amazon Data Firehose y haz clic en Crear flujo de Firehose.

Elige el origen y el destino

Configura Origen como PUT directo y Destino como Punto de conexión HTTP, y luego asigna un nombre al flujo, por ejemplo ahrefs-bot-analytics. El origen y el destino no se pueden cambiar después de crear el flujo. Deja la sección Transformar registros tal como está.

Crear flujo de Firehose: origen PUT directo, destino punto de conexión HTTP, nombre del flujo ahrefs-bot-analytics

Configuración de destino

  • Nombre del punto de conexión HTTP: Ahrefs Bot Analytics
  • URL del punto de conexión HTTP: la URL del Paso 1
  • Autenticación: Usar clave de acceso y pega la clave de acceso del Paso 1 en Clave de acceso
  • Codificación de contenido: GZIP
  • Duración de los reintentos: 300 segundos
  • Parámetros: déjalos en blanco
  • Sugerencias de almacenamiento en búfer: mantén los valores predeterminados
Configuración de destino de Firehose: URL del punto de conexión de Ahrefs, autenticación con clave de acceso, codificación de contenido GZIP, 300 segundos de reintento

warning

La clave de acceso es lo único que vincula el flujo a tu proyecto de Ahrefs. Cada proyecto de Ahrefs necesita su propio flujo de Firehose con su propia clave de acceso; varias distribuciones que sirven al mismo proyecto pueden compartir un único flujo.

Configuración de copia de seguridad

En Copia de seguridad de registros de origen en Amazon S3, elige Solo datos con error; luego, selecciona Examinar para elegir un bucket de S3 existente o Crear para crear uno nuevo. Firehose escribe allí cualquier lote que Ahrefs no haya podido aceptar, junto con el motivo, así que este bucket es el primer lugar donde mirar al solucionar problemas.

Configuración de copia de seguridad de Firehose: solo datos con error, bucket de copia de seguridad de S3

Configuración avanzada

Despliega Configuración Advanced, configura Registro de errores de Amazon CloudWatch como Activado y, en Permisos, deja que la consola cree un nuevo rol de IAM. Haz clic en Crear flujo de Firehose y espera hasta que el estado del flujo sea Activo.

Paso 3 — Envía los registros de CloudFront al flujo

  1. En la consola de CloudFront, abre Distribuciones y selecciona tu distribución.
  2. En la pestaña Registro, en Destinos de registros Standard, haz clic en Agregar.
  3. En la página Agregar destino de registro de acceso, configura Enviar a como Amazon Kinesis Data Firehose y, en Flujo de destino, elige tu flujo.
  4. Despliega Configuración adicional:
    • Selección de campos: selecciona los campos que se enumeran en Campos de registro. También funciona mantener seleccionados los 33 campos.
    • Formato de salida: JSON. No se aceptan otros formatos.
  5. Haz clic en Enviar. CloudFront aplica los cambios de registro en unos minutos.
CloudFront: añadir destino del registro de acceso, entregar a Amazon Kinesis Data Firehose, flujo seleccionado, selección de campos y formato de salida JSON

Campos de registro

Ahrefs necesita una marca de tiempo, c-ip, x-host-header, cs-uri-stem y cs(User-Agent). La selección recomendada es:

timestamp(ms) date time c-ip x-forwarded-for cs-method x-host-header cs-protocol
cs-protocol-version cs-uri-stem cs-uri-query cs(User-Agent) cs(Referer) sc-status sc-bytes
sc-content-type time-to-first-byte time-taken x-edge-result-type x-edge-request-id
x-edge-location c-country asn

timestamp(ms), c-country y asn están en el subconjunto en tiempo real del selector de campos. Son opcionales: sin timestamp(ms), Ahrefs usa date y time, con precisión de un segundo.

Paso 4 — Verificar

CloudFront entrega los registros Standard en lotes, normalmente dentro de la hora posterior a las solicitudes, y de forma fiable unas cuatro horas después de que habilites el registro. Luego, Firehose reenvía cada lote dentro de su intervalo de búfer.

  • En la consola de Firehose, la pestaña Supervisión del flujo muestra IncomingRecords cuando CloudFront empieza a entregar, y DeliveryToHttpEndpoint.Success cuando Ahrefs acepta los lotes.
  • En Ahrefs, el informe de Bot Analytics se va completando a medida que los bots visitan tu sitio.

Solución de problemas

Si los envíos fallan, Firehose reintenta durante el periodo de reintentos y, después, escribe el lote en tu bucket de copia de seguridad bajo el prefijo http-endpoint-failed/, con el mensaje de error devuelto por Ahrefs. El mismo mensaje aparece en la pestaña Registros de errores de destino del flujo.

Mensaje de errorCausa
missing authentication headerEl campo de la clave de acceso en el destino de Firehose está vacío.
invalid authenticationLa clave de acceso no coincide con un proyecto de Ahrefs. Cópiala de nuevo del Paso 1.
records are not JSON: configure CloudFront standard logging (v2) with output format JSONEl formato de salida del envío no es JSON, o el flujo recibe registros en tiempo real de CloudFront. Solo se admiten registros Standard en JSON.
Response … must contain a 'content-type: application/json' header … 404La URL del punto de conexión tiene un error tipográfico. Compárala con la URL del Paso 1.

Deshabilitar

  1. En la consola de CloudFront, en la pestaña Registro de la distribución, selecciona el destino de Firehose y elimínalo. Esto detiene la entrega de registros.
  2. Elimina el flujo de Firehose y el bucket de copia de seguridad si ya no lo necesitas.
  3. En Ahrefs, desactiva Amazon CloudFront en Ajustes del proyecto → Bot Analytics.

Al eliminar el destino, se mantiene la fuente de entrega de la distribución en CloudWatch Logs. Eso es inofensivo y se reutiliza si vuelves a habilitar el registro.

info

Los registros en tiempo real de CloudFront (entregados a través de Kinesis Data Streams) no son compatibles. Usa el registro Standard (v2) con salida JSON como se describe arriba.