Docs
Cerca nella documentazione...⌘K

Amazon CloudFront

Amazon CloudFront può inviare i suoi log di accesso a uno stream di Amazon Data Firehose e Firehose può inoltrarli ad Ahrefs tramite HTTPS. Crei lo stream e abiliti l’invio dei log nel tuo account AWS, dalla console AWS; Ahrefs non deve mai accedervi.

Prerequisiti

  • Una distribuzione CloudFront che serve il dominio del tuo progetto Ahrefs.
  • Autorizzazioni in quell’account AWS per creare uno stream Firehose, un bucket S3 e un ruolo IAM, e per modificare le impostazioni di logging della distribuzione.
  • Lo stream Firehose deve essere creato nella regione US East (N. Virginia) us-east-1. CloudFront invia i log Standard agli stream Firehose solo in quella regione, indipendentemente dalla regione dell’origine.

Passaggio 1 — Ottieni l’URL dell’endpoint e la chiave di accesso

  1. In Ahrefs, vai su Impostazioni progetto → Bot Analytics per il tuo progetto.
  2. Seleziona Amazon CloudFront.
  3. Copia l’URL dell’endpoint HTTP e la chiave di accesso mostrati nella pagina. La chiave di accesso identifica il tuo progetto; trattala come una password.

L’URL dell’endpoint è lo stesso per tutti:

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

Passaggio 2 — Crea lo stream Firehose

Nella console AWS, passa alla regione US East (N. Virginia), apri Amazon Data Firehose e fai clic su Crea stream Firehose.

Scegli origine e destinazione

Imposta Origine su PUT diretto e Destinazione su Endpoint HTTP, quindi assegna allo stream un nome come ahrefs-bot-analytics. Origine e destinazione non possono essere modificate dopo la creazione dello stream. Lascia la sezione Trasforma record così com’è.

Crea stream Firehose: origine PUT diretto, destinazione Endpoint HTTP, nome dello stream ahrefs-bot-analytics

Impostazioni della destinazione

  • Nome dell’endpoint HTTP: Ahrefs Bot Analytics
  • URL dell’endpoint HTTP: l’URL del passaggio 1
  • Autenticazione: Usa chiave di accesso e incolla la chiave di accesso del passaggio 1 in Chiave di accesso
  • Codifica del contenuto: GZIP
  • Durata dei ritentativi: 300 secondi
  • Parametri: lascia vuoto
  • Suggerimenti per il buffer: mantieni i valori predefiniti
Impostazioni destinazione Firehose: URL dell’endpoint Ahrefs, autenticazione con chiave di accesso, codifica del contenuto GZIP, ritentativi per 300 secondi

warning

La chiave di accesso è l’unico elemento che collega lo stream al tuo progetto Ahrefs. Ogni progetto Ahrefs necessita del proprio stream Firehose con la propria chiave di accesso; più distribuzioni che servono lo stesso progetto possono condividere uno stream.

Impostazioni di backup

In Backup dei record di origine in Amazon S3 scegli Solo dati non riusciti, quindi Sfoglia per selezionare un bucket S3 esistente oppure Crea per crearne uno nuovo. Firehose scrive lì qualsiasi batch che Ahrefs non ha potuto accettare, insieme al motivo; quindi questo bucket è il primo posto in cui guardare durante la risoluzione dei problemi.

Impostazioni backup Firehose: solo dati non riusciti, bucket di backup S3

Impostazioni avanzate

Espandi Impostazioni Advanced, imposta Logging degli errori di Amazon CloudWatch su Abilitato e, in Autorizzazioni, lascia che la console crei un nuovo ruolo IAM. Fai clic su Crea stream Firehose e attendi che lo stato dello stream sia Attivo.

Passaggio 3 — Invia i log di CloudFront allo stream

  1. Nella console CloudFront, apri Distribuzioni e seleziona la tua distribuzione.
  2. Nella scheda Registrazione, in Destinazioni dei log Standard, fai clic su Aggiungi.
  3. Nella pagina Aggiungi destinazione dei log di accesso, imposta Invia a su Amazon Kinesis Data Firehose e seleziona il tuo stream in Stream di destinazione.
  4. Espandi Impostazioni aggiuntive:
    • Selezione dei campi: seleziona i campi elencati in Campi di log. Va bene anche lasciare selezionati tutti i 33 campi.
    • Formato di output: JSON. Gli altri formati non sono accettati.
  5. Fai clic su Invia. CloudFront applica le modifiche alla registrazione dei log nel giro di pochi minuti.
CloudFront: aggiungere la destinazione dei log di accesso, inviare ad Amazon Kinesis Data Firehose, stream selezionato, selezione dei campi e formato di output JSON

Campi di log

Ahrefs richiede un timestamp, c-ip, x-host-header, cs-uri-stem e cs(User-Agent). La selezione consigliata è:

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 e asn si trovano nel sottoinsieme in tempo reale del selettore di campi. Sono facoltativi: senza timestamp(ms) Ahrefs utilizza date e time, con precisione di un secondo.

Passaggio 4 — Verifica

CloudFront invia i log standard in batch, di solito entro un’ora dalle richieste e in modo affidabile circa quattro ore dopo l’attivazione della registrazione dei log. Firehose poi inoltra ogni batch entro il proprio intervallo di buffer.

  • Nella console di Firehose, la scheda Monitoraggio dello stream mostra IncomingRecords quando CloudFront inizia a inviare i dati e DeliveryToHttpEndpoint.Success quando Ahrefs accetta i batch.
  • In Ahrefs, il report Bot Analytics si popola man mano che i bot visitano il tuo sito.

Risoluzione dei problemi

Se le consegne non vanno a buon fine, Firehose riprova per la durata dei tentativi e poi scrive il batch nel bucket di backup con il prefisso http-endpoint-failed/, insieme al messaggio di errore restituito da Ahrefs. Lo stesso messaggio appare nella scheda Log degli errori di destinazione dello stream.

Messaggio di erroreCausa
missing authentication headerIl campo della chiave di accesso nella destinazione Firehose è vuoto.
invalid authenticationLa chiave di accesso non corrisponde a un progetto Ahrefs. Copiala di nuovo dal passaggio 1.
records are not JSON: configure CloudFront standard logging (v2) with output format JSONIl formato di output della consegna non è JSON oppure lo stream riceve log in tempo reale di CloudFront. Sono supportati solo i log standard in JSON.
Response … must contain a 'content-type: application/json' header … 404L’URL dell’endpoint contiene un errore di digitazione. Confrontalo con l’URL nel passaggio 1.

Disattivazione

  1. Nella console di CloudFront, nella scheda Registrazione della distribuzione, seleziona la destinazione Firehose ed eliminala. In questo modo l’invio dei log viene interrotto.
  2. Elimina lo stream Firehose e, se non ti serve più, anche il bucket di backup.
  3. In Ahrefs, disattiva Amazon CloudFront in Impostazioni del progetto → Bot Analytics.

Eliminando la destinazione, l’origine di consegna della distribuzione rimane in CloudWatch Logs. È innocuo e viene riutilizzato se attivi di nuovo la registrazione dei log.

info

I log in tempo reale di CloudFront (inviati tramite Kinesis Data Streams) non sono supportati. Utilizza la registrazione standard (v2) con output JSON come descritto sopra.