Docs
Пошук документації...⌘K

Amazon CloudFront

Amazon CloudFront може надсилати свої журнали доступу до потоку Amazon Data Firehose, а Firehose може пересилати їх до Ahrefs через HTTPS. Ви створюєте потік і вмикаєте доставку логів у власному обліковому записі AWS через консоль AWS; Ahrefs ніколи не потребує доступу до нього.

Передумови

  • Дистрибутив CloudFront, що обслуговує домен вашого проєкту Ahrefs.
  • Дозволи в цьому обліковому записі AWS на створення потоку Firehose, бакета S3 та ролі IAM, а також на редагування налаштувань логування дистрибутива.
  • Потік Firehose потрібно створити в регіоні US East (N. Virginia) us-east-1. CloudFront доставляє логи Standard до потоків Firehose лише в цьому регіоні — незалежно від того, у якому регіоні розміщене ваше джерело.

Крок 1 — Отримайте URL кінцевої точки та ключ доступу

  1. В Ahrefs перейдіть у Налаштування проєкту → Bot Analytics для вашого проєкту.
  2. Виберіть Amazon CloudFront.
  3. Скопіюйте URL HTTP кінцевої точки та ключ доступу, показані на сторінці. Ключ доступу ідентифікує ваш проєкт; ставтеся до нього як до пароля.

URL кінцевої точки однаковий для всіх:

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

Крок 2 — Створіть потік Firehose

У консолі AWS перемкніться на регіон US East (N. Virginia), відкрийте Amazon Data Firehose і натисніть Створити потік Firehose.

Виберіть джерело та призначення

Установіть для Джерела значення Direct PUT, а для Призначення — Кінцева точка HTTP, потім задайте назву потоку, наприклад ahrefs-bot-analytics. Після створення потоку джерело та призначення змінити не можна. Залиште розділ Перетворення записів без змін.

Створення потоку Firehose: джерело Direct PUT, призначення — кінцева точка HTTP, назва потоку ahrefs-bot-analytics

Налаштування призначення

  • Назва HTTP кінцевої точки: Ahrefs Bot Analytics
  • URL HTTP кінцевої точки: URL з кроку 1
  • Автентифікація: Використовувати ключ доступу; вставте ключ доступу з кроку 1 у поле Ключ доступу
  • Кодування контенту: GZIP
  • Тривалість повторних спроб: 300 секунд
  • Параметри: залиште порожніми
  • Підказки щодо буферизації: залиште значення за замовчуванням
Налаштування призначення Firehose: URL кінцевої точки Ahrefs, автентифікація за ключем доступу, кодування контенту GZIP, повторні спроби протягом 300 секунд

warning

Ключ доступу — єдине, що прив’язує потік до вашого проєкту Ahrefs. Кожному проєкту Ahrefs потрібен власний потік Firehose зі своїм ключем доступу; кілька дистрибутивів, що обслуговують один і той самий проєкт, можуть використовувати один спільний потік.

Налаштування резервного копіювання

У розділі Резервне копіювання вихідних записів в Amazon S3 виберіть Лише дані з помилками, потім натисніть Огляд, щоб вибрати наявний бакет S3, або Створити, щоб створити новий. Firehose записує туди будь-який пакет даних, який Ahrefs не зміг прийняти, разом із причиною, тож цей бакет — перше місце, куди варто заглянути під час усунення несправностей.

Налаштування резервного копіювання Firehose: лише дані з помилками, резервний бакет S3

Додаткові налаштування

Розгорніть Налаштування Advanced, установіть для Журналювання помилок Amazon CloudWatch значення Увімкнено, а в розділі Дозволи дозвольте консолі створити нову роль IAM. Натисніть Створити потік Firehose і зачекайте, доки статус потоку стане Активний.

Крок 3 — Надсилайте логи CloudFront у потік

  1. У консолі CloudFront відкрийте Дистрибутиви і виберіть свій дистрибутив.
  2. На вкладці Журналювання у розділі Призначення логів Standard натисніть Додати.
  3. На сторінці Додати призначення логів доступу установіть для Доставляти до значення Amazon Kinesis Data Firehose і виберіть свій потік у полі Потік призначення.
  4. Розгорніть Додаткові налаштування:
    • Вибір полів: виберіть поля, наведені в розділі Поля журналу. Також можна залишити вибраними всі 33 поля.
    • Формат виводу: JSON. Інші формати не приймаються.
  5. Натисніть Надіслати. CloudFront застосовує зміни журналювання протягом кількох хвилин.
CloudFront: додайте місце призначення журналу доступу, доставляйте в Amazon Kinesis Data Firehose, потік вибрано, вибір полів і формат виводу JSON

Поля журналу

Ahrefs потрібні мітка часу, c-ip, x-host-header, cs-uri-stem і cs(User-Agent). Рекомендований вибір:

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 і asn входять до підмножини реального часу в засобі вибору полів. Вони необов’язкові: без timestamp(ms) Ahrefs використовує date і time з точністю до однієї секунди.

Крок 4 — Перевірка

CloudFront доставляє журнали Standard пакетами, зазвичай протягом години після запитів і стабільно приблизно через чотири години після ввімкнення журналювання. Потім Firehose пересилає кожен пакет у межах свого буферного інтервалу.

  • У консолі Firehose на вкладці потоку Моніторинг відображаються IncomingRecords, щойно CloudFront починає доставляти дані, і DeliveryToHttpEndpoint.Success, щойно Ahrefs приймає пакети.
  • В Ahrefs звіт Bot Analytics заповнюється, коли боти відвідують ваш сайт.

Усунення несправностей

Якщо доставка не вдається, Firehose повторює спроби протягом періоду повторних спроб, а потім записує пакет у ваш резервний бакет під префіксом http-endpoint-failed/ разом із повідомленням про помилку, яке повертає Ahrefs. Те саме повідомлення з’являється на вкладці потоку Журнали помилок призначення.

Повідомлення про помилкуПричина
missing authentication headerПоле ключа доступу в місці призначення Firehose порожнє.
invalid authenticationКлюч доступу не відповідає проєкту Ahrefs. Скопіюйте його ще раз із Кроку 1.
records are not JSON: configure CloudFront standard logging (v2) with output format JSONФормат виводу доставки — не JSON, або потік отримує журнали CloudFront у режимі реального часу. Підтримуються лише журнали Standard у форматі JSON.
Response … must contain a 'content-type: application/json' header … 404URL кінцевої точки написано з помилкою. Порівняйте його з URL у Кроці 1.

Вимкнення

  1. У консолі CloudFront на вкладці дистрибутива Журналювання виберіть місце призначення Firehose та видаліть його. Це зупинить доставку журналів.
  2. Видаліть потік Firehose і резервний бакет, якщо він вам більше не потрібен.
  3. В Ahrefs вимкніть Amazon CloudFront у розділі Налаштування проєкту → Bot Analytics.

Видалення місця призначення залишає джерело доставки дистрибутива в CloudWatch Logs. Це нешкідливо, і його буде повторно використано, якщо ви знову ввімкнете журналювання.

info

Журнали CloudFront у режимі реального часу (які доставляються через Kinesis Data Streams) не підтримуються. Використовуйте журналювання Standard (v2) з виводом у форматі JSON, як описано вище.