INTEGRITY Документация

Запрос журналов

Конечные точки

API Logpull поддерживает три следующие конечные точки:

Обязательные заголовки аутентификации

Для всех вызовов конечной точки требуются следующие заголовки:

Также для аутентификации можно использовать API-токены с разрешением Logs Read:

Параметры

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>][&timestamps=<string>][&CVE-2021-44228=<boolean>]

logs/rayids/{ray_id}

https://api.cloudflare.com/client/v4/zones/{zone_id}/logs/rayids/{ray_id}?[&fields=<FIELDS>][&timestamps=<string>]

В следующей таблице описаны доступные параметры:

Параметр Описание Применяется к Обязательный
start

- Инклюзивный

- Временная метка в формате UNIX (по определению в UTC), UNIX Nano, или rfc3339. Чтобы указать rfc3339 часовой пояс в параметрах запроса URL, URL необходимо закодировать, например так start=2024-08-07T07:00:00%2B08:00&end=2024-08-07T07:01:00%2B08:00.

- Не должно быть более чем на 7 дней раньше текущего момента

/logs/received Да
end

- Эксклюзивный

- Тот же формат, что и start

- Должно быть как минимум на 1 минуту раньше текущего момента и позже, чем start

/logs/received Да
count

- Возвращает не более указанного числа записей

- Не указывайте, если возвращаются все записи

- Результаты не сортируются, поэтому при повторных запросах данные, скорее всего, будут отличаться

- Относится к общему числу возвращённых записей, а не к числу выбранных записей

/logs/received Нет
выборка

- Возвращает только выборку записей

- Не указывайте, если возвращаются все записи

- Значение может находиться в диапазоне от 0.0 (не включая) до 1.0 (включительно)

- sample=0.1 означает возврат 10% (1 из 10) всех записей

- Результаты случайны, поэтому при повторных запросах их количество, скорее всего, будет отличаться

/logs/received Нет
поля

- Список полей для возврата через запятую

- Если поле пустое, возвращается список по умолчанию

/logs/received

/logs/rayids

Нет
временные метки

- Формат, в котором будут возвращены поля временной метки

- Возможные значения: unixnano (по умолчанию), unix, rfc3339

- Временные метки возвращаются как целые числа для unix и unixnano и как строки для rfc3339

/logs/received

/logs/rayids

Нет
CVE-2021-44228

- Необязательное скрытие данных для CVE-2021-44228 ↗. Эта опция заменит каждое вхождение строки ${ с x{.

Например: CVE-2021-44228=true

/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-запроса для доступных на данный момент полей.