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

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

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

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

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

Название поля Описание поля Пример
timestamp Дата и время в формате UNIX timestamp 1417135813.178
remote_addr IP-адрес пользователя 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-1 RU
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 ОК
400 None None Плохой запрос
401 None None Нет доступа
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

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-поток ОК
400 None None Плохой запрос
401 None None Нет доступа
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

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. Подробное описание результирующего файла представлено выше.

Запустили Evolution free tier
для Dev & Test
Получить