← Cloudflare Logs / logs / logpull
Запрос журналов
Конечные точки
API Logpull поддерживает три следующие конечные точки:
GET /logs/received- возвращает данные журнала HTTP-запросов на основе указанных параметровGET /logs/received/fields- возвращает список всех доступных полей журналаGET /logs/rayids/{ray_id}- возвращает данные журнала HTTP-запросов, соответствующие{ray_id}
Обязательные заголовки аутентификации
Для всех вызовов конечной точки требуются следующие заголовки:
X-Auth-Email- адрес электронной почты аккаунта Cloudflare, связанного с доменомX-Auth-Key- ключ API Cloudflare
Также для аутентификации можно использовать API-токены с разрешением Logs Read:
Authorization: Bearer <API_TOKEN>
Параметры
API ожидает параметры конечной точки в строке запроса GET-запроса. Ниже приведены примеры форматов:
logs/received
https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/received?start=<unix|rfc3339>&end=<unix|rfc3339>[&count=<int>][&sample=<float>][&fields=<FIELDS>][×tamps=<string>][&CVE-2021-44228=<boolean>]logs/rayids/{ray_id}
https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/rayids/{ray_id}?[&fields=<FIELDS>][×tamps=<string>]В следующей таблице описаны доступные параметры:
| Параметр | Описание | Применяется к | Обязательный |
|---|---|---|---|
| start | - Инклюзивный - Временная метка в формате - Не должно быть более чем на 7 дней раньше текущего момента |
/logs/received | Да |
| end | - Эксклюзивный - Тот же формат, что и start - Должно быть как минимум на 1 минуту раньше текущего момента и позже, чем start |
/logs/received | Да |
| count | - Возвращает не более указанного числа записей - Не указывайте, если возвращаются все записи - Результаты не сортируются, поэтому при повторных запросах данные, скорее всего, будут отличаться - Относится к общему числу возвращённых записей, а не к числу выбранных записей |
/logs/received | Нет |
| выборка | - Возвращает только выборку записей - Не указывайте, если возвращаются все записи - Значение может находиться в диапазоне от - - Результаты случайны, поэтому при повторных запросах их количество, скорее всего, будет отличаться |
/logs/received | Нет |
| поля | - Список полей для возврата через запятую - Если поле пустое, возвращается список по умолчанию |
/logs/received /logs/rayids |
Нет |
| временные метки | - Формат, в котором будут возвращены поля временной метки - Возможные значения: - Временные метки возвращаются как целые числа для |
/logs/received /logs/rayids |
Нет |
| CVE-2021-44228 | - Необязательное скрытие данных для CVE-2021-44228 ↗. Эта опция заменит каждое вхождение строки Например: |
/logs/received |
Нет |
Примеры запросов API с использованием cURL
logs/received
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/received?start=2017-07-18T22:00:00Z&end=2017-07-18T22:01:00Z&count=1&fields=ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"logs/rayids/{ray_id}
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/rayids/{ray_id}}?timestamps=rfc3339" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"Поля
Если иное не указано в поля параметра API возвращает ограниченный набор полей журнала. Этот набор полей по умолчанию может изменяться в любое время. Список всех доступных полей указан здесь:
https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/received/fields
Порядок указания полей не имеет значения, а порядок полей в ответе не определён.
С помощью bash-подоболочки и jq, вы можете скачать журналы со всеми доступными полями, не копируя и не вставляя их в запрос вручную. Например:
FIELDS=$(curl https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/received/fields \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
| jq '. | to_entries[] | .key' -r | paste -sd "," -)
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/received?start=2017-07-18T22:00:00Z&end=2017-07-18T22:01:00Z&count=1&fields=$FIELDS" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"См. Загрузите jq ↗ с дополнительной информацией о получении и установке jq.
См. Поля HTTP-запроса для доступных на данный момент полей.