nav-img
Evolution
CDN

Выгрузка серверных логов

В этом разделе описаны возможности получения сырых логов.

Описание лог-файла

Результирующий лог-файл начинается с заголовочной строки, содержащей перечень полей описанных ниже.

Структура лог-файла после заголовочной строки представляет собой таблицу, каждый столбец которой содержит соответствующее поле. Поля следуют друг за другом слева направо и разделены символом горизонтальной табуляции. Каждая строка лог-файла соответствует отдельному запросу, строки разделены символом перевода строки.

Название поляОписание поляПример
timestampДата и время в формате UNIX timestamp1417135813.178
remote_addrIP-адрес пользователя81.19.133.15
remote_user(служебное поле)-
time_localДата и время в читаемом формате2019-09-16 12:00:16+0000
requestПуть к файлу или видео потоку/live/smil:chanel1.smil/m_b1600000_126952.ts
statusСтатус ответа200
body_bytes_sentОбъем отправленных байт (без заголовка)80840
out_bytesОбъем отправленных байт (с заголовком)81076
referrerРеферер, адрес источникаhttp://www.site1.ru/
useragentАгент/браузер веб-пользователяMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36
http_x_forwarded_forСодержимое HTTP-заголовка X-Forwarded-For, может содержать оригинальные IP-адреса пользователя192.168.7.114, 192.168.0.205, 81.19.133.15
hostИмя хоста запросаsite1.cdn.ru
torso_id(служебное поле)-
durationДлительность запроса или части продолжающегося запроса в секундах0.616
upstream_response_timeВремя ответа ориджина или промежуточного узла в секундах. Времена нескольких ответов разделяются запятыми0.021
upstream_statusСтатус ответа ориджина/промежуточного узла (если запрос отдавался не из кеша раздающего узла). Статусы нескольких ответов разделяются запятыми200
countryКод страны по ISO_3166-1RU
serviceТип услуги (static — "Ускорение загрузки веб контента", media — "Онлайн трансляции и видео по запросу")media
cache_statusкеш-статус запроса (HIT - ответ был отдан из кеша CDN, MISS - запрос был отправлен на ориджин)HIT
logtype(служебное поле)-
custom_field(опционально) некоторые дополнительные значения

Проверка наличия логов через API

Данный вызов предназначен для проверки существования логов.

Запрос для проверки наличия логов за определенный интервал времени:

URL: https://api.cdn.sber.cloud/app/logs/v1/accounts/<your_account_name>/exists?startdate=<start_date>`&enddate=<end_date>

  • Тип запроса: GET

  • Заголовки: CDN-AUTH-TOKEN

  • Обязательные GET-параметры:

    • startdate — дата и время начала интервала в формате 'YYYY-MM-DDTHH:mm:ssZ'

    • enddate — дата и время окончания интервала 'YYYY-MM-DDTHH:mm:ssZ'

  • Тип данных ответа: JSON Object или String (в случае ошибки)

Код ответаДанные ответаФормат ответаОписание
200Информация о наличии логов за определенный интервал времениJSONОК
400NoneNoneПлохой запрос
401NoneNoneНет доступа
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

Пример запроса

curl -H "CDN-AUTH-TOKEN: $TOKEN"
https://api.cdn.sber.cloud/app/logs/v1/accounts/paejgjuv/exists?startdate=2019-08-01T00:00:00Z&enddate=2019-09-01T00:00:00Z

Пример успешного ответа

{
"account": "paejgjuv",
"startdate": "2019-08-01T00:00:00+0000",
"enddate": "2019-09-01T00:00:00+0000",
"exists": true
}

Пример неуспешного ответа

No startdate or enddate in query

Описание полей из тела ответа:

  • account — имя аккаунта;

  • startdate — дата и время начала интервала;

  • enddate — дата и время окончания интервала;

  • exists — статус наличия логов с заданными параметрами, true — наличие минимум одной строки, иначе — false.

Получение лог-файла через API

Запрос к API для получения лог-файла за определенный интервал времени ввиде gzip-потока:

URL: https://api.cdn.sber.cloud/app/logs/v1/accounts/<your_account_name>/get?startdate=<start_date>&enddate=<end_date>

  • Тип запроса: GET

  • Заголовки: CDN-AUTH-TOKEN

  • Обязательные GET-параметры:

    • startdate — дата и время начала интервала в формате 'YYYY-MM-DDTHH:mm:ssZ'

    • enddate — дата и время окончания интервала 'YYYY-MM-DDTHH:mm:ssZ'

  • Тип данных ответа: gzip-поток

Код ответаДанные ответаФормат ответаОписание
200Логи за определенный интервал времениgzip-потокОК
400NoneNoneПлохой запрос
401NoneNoneНет доступа
404NoneNoneНе найдено
500NoneNoneВнутренняя ошибка сервера
503NoneNoneСервис недоступен

Пример запроса

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdn.sber.cloud/app/logs/v1/accounts/paejgjuv/get?startdate=2019-08-01T00:00:00Z&enddate=2019-09-01T00:00:00Z'

В теле ответе будет передан лог за временной интервал, указанный в аргументах в виде gzip-потока. Временной интервал соответствует правилу: startdate <= logs_time_interval < enddate. Подробное описание результирующего файла представлено выше.