Платная опция
Вы можете получать логи работы CDN-ресурса c CDN-серверов и шилдинга (если он активирован).
Для подключения напишите нам в чат или на support@gcorelabs.com.
После активации опции настройте получение логов в личном кабинете в разделе CDN-> Сырые логи-> Получать сырые логи.
Мы используем три протокола для передачи логов: S3, FTP и SFTP.
Хранилище для приема и хранения логов настраивается и поддерживается вами.
Настроить передачу логов через S3
Настроить передачу логов через FTP или SFTP
Настроить передачу логов через S3
Хранилище Amazon
Если вы используете Amazon в качестве хранилища, укажите идентификатор ключа доступа AWS, секретный ключ доступа AWS и регион (необязательно).
Отметьте поле «Добавить логи с шилдинга источника», чтобы получать логи с CDN-серверов и шилдинга.
Выберите, куда необходимо отправлять логи:
- В один бакет для всех CDN-ресурсов:
- В разные бакеты для каждого CDN-ресурса:
Обратите внимание! Система не создает папки в вашем хранилище. Укажите существующую папку или бакет.
Нажмите «Сохранить изменения».
Хранилище не Amazon
Если в качестве хранилища вы используете другой сервис, укажите Hostname, идентификатор ключа доступа, секретный ключ доступа.
Если вы используете Яндекс.Облако, укажите хост бакета.
Если вы используете наше S3 хранилище, укажите хост бакета и регион.
Выберите, куда необходимо отправлять логи:
- В один бакет для всех CDN-ресурсов:
- В разные бакеты для каждого CDN-ресурса:
Обратите внимание! Система не создает папки в вашем хранилище. Укажите существующую папку или бакет.
Нажмите «Сохранить изменения».
Настроить передачу логов через FTP или SFTP
Укажите Hostname, логин, пароль и папку для загрузки (опционально).
Важно! Если вы хотите указать порт, добавьте его в поле «Hostname» по шаблону <hostname>:<port>.
Отметьте поле «Добавить логи с шилдинга источника», чтобы получать логи с CDN-серверов и шилдинга.
Выберите, куда необходимо отправлять логи:
- В одну папку для всех CDN-ресурсов:
- В отдельные папки для каждого CDN-ресурса:
Обратите внимание! Система не создает папки в вашем хранилище. Укажите существующую папку или бакет.
Нажмите «Сохранить изменения».
Пример пути до лог-файла
s3://log-bucket-name/2019/08/20/15/nodename_primarycname.gcdn.co_access.log.gz
Формат лога
"$remote_addr" "-" "$remote_user" "[$time_local]" "$request" "$status"
"$body_bytes_sent" "$http_referer" "$http_user_agent" "$bytes_sent"
"$edgename" "$scheme" "$host" "$request_time"
"$upstream_response_time" "$request_length" "$http_range" "[$responding_node]"
"$upstream_cache_status" "$upstream_response_length" "$upstream_addr"
"$gcdn_api_client_id" "$gcdn_api_resource_id" "$uid_got" "$uid_set"
"$geoip_city_country_code" "$geoip_city" "$shield_type" "$server_addr" "$server_port"
"$upstream_status" "-" "$upstream_connect_time" "$upstream_header_time"
"$shard_addr" "$geoip2_data_asnumber" "$connection" "$connection_requests"
"$request_id" "$http_x_forwarded_proto" "$http_x_forwarded_request_id" "$ssl_cipher"
"$ssl_session_id" "$ssl_session_reused";
Формат лога может быть изменен в любое время. Новые поля всегда добавляются в конец строки. При анализе логов следует учитывать только известные поля с начала строки.
Пример лога
"0.0.0.0" "-" "-" "[26/Apr/2019:09:47:40 +0000]" "GET /ContentCommon/images/image.png HTTP/1.1" "200" "1514283" "https://example.com/videos/10" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 YaBrowser/16.10.0.2309 Safari/537.36" "1514848" "[dh-up-gc18]" "https" "origin.cdn.com" "1.500" "0.445" "157" "bytes=0-1901653" "[dh]" "MISS" "10485760" "0.0.0.0:80" "2510" "7399" "-" "-" "KZ" "-" "shield_no" "0.0.0.0" "80" "206" "-" "0.000" "0.200" "0.0.0.0" "asnumber" "106980391" "1" "c1c0f12ab35b7cccccd5dc0a454879c5" "-" "-" "ECDHE-RSA-AES256-GCM-SHA384" "28a4184139cb43cdc79006cf2d1a4ac93bdc****" "r"
Переменные
Важны не все переменные, некоторые относятся к внутренней системе нашего CDN и не несут ценной информации при клиентском анализе. Их пометили мелким шрифтом. Все остальные переменные могут пригодиться при анализе трафика или сбора статистики.
Переменная | Значение из примера |
Пояснение |
$remote_addr | 0.0.0.0 |
IP пользователя |
$remote_user (внутренняя системная переменная) |
- |
Имя пользователя, использованное в Basic аутентификации |
[$time_local] | [26/Apr/2019:09:47:40 +0000] |
Локальное время в Common Log Format |
$request |
GET /ContentCommon/images/image.png HTTP/1.1 |
Тип HTTP-запроса, запрошенный путь к файлу, версия HTTP |
$status |
200 |
Код ответа от edge-сервера |
$body_bytes_sent |
1514283 |
Число байт, переданное клиенту, без учёта заголовка ответа |
$http_referer |
https://example.com/videos/10 |
Реферал: с какого URL пришел пользователь |
$http_user_agent |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 YaBrowser/16.10.0.2309 Safari/537.36 |
User Agent, с которым обратился пользователь за файлом (браузер или иная программа) |
$bytes_sent |
1514848 |
Число байт, переданное пользователю |
[$edgename] | [dh-up-gc18] |
Имя ответившего CDN узла в нашей системе |
$scheme |
https |
Протокол запроса (http или https) |
$host | cdn.example.com |
Имя хоста CDN ресурса из запроса |
$request_time | 1.500 |
Время обработки запроса, прошедшее с момента чтения первых байт от клиента до момента записи в лог после отправки последних байт клиенту, в секундах с точностью до миллисекунд |
$upstream_response_time | 0.445 |
Время, затраченное на получение ответа от источника, в секундах с точностью до миллисекунд. Время нескольких ответов указывается через запятые и двоеточия |
$request_length | 157 |
Длина запроса (включая строку, заголовок и тело запроса) |
$http_range | bytes=0-1901653 |
Размер фрагмента файла при Range запросе |
[$responding_node] | dh |
Имя ответившего дата-центра в нашей системе |
$upstream_cache_status | MISS |
Статус запрошенного файла в кеше CDN: HIT – файл отдан из кеша STALE – файл устарел, так как источник не ответил или ответил неправильно при обновлении кеша UPDATING - файл устарел, так как файл находится в процессе обновления после поступившего ранее запроса REVALIDATED – в результате запуска директивы proxy_cache_revalidate установлено, что файл на источнике не изменился EXPIRED - срок жизни в кеше истек, но файл соответствует файлу с источника. Отправлен запрос на источник для повторного кеширования MISS – файл отдан не из кеша, проксирован с источника |
$upstream_response_length | 10485760 |
Длина ответа, полученная от источника, хранится в байтах. Длины нескольких ответов разделяются запятыми и двоеточиями |
$upstream_addr | 0.0.0.0:80 |
IP адрес источника и порт |
$gcdn_api_client_id (внутренняя системная переменная) |
123 |
Ваш ID в системе |
$gcdn_api_resource_id (внутренняя системная переменная) |
01 |
ID вашего CDN ресурса в системе |
$uid_got (внутренняя системная переменная) |
- |
Имя куки и полученный идентификатор пользователя |
$uid_set (внутренняя системная переменная) |
- |
Имя куки и выданный идентификатор пользователя |
$geoip_country_code | KZ |
Код страны пользователя |
$geoip_city | - |
Код города пользователя |
$shield_type (внутренняя системная переменная) |
shield_no |
Подключен ли шилдинг на этом ресурсе shield_old - включен shield_no - выключен |
$server_addr (внутренняя системная переменная) |
0.0.0.0 |
IP адрес ответившей anycast зоны или edge-сервера |
$server_port (внутренняя системная переменная) |
80 |
Порт, на который пришел запрос |
$upstream_status | 206 |
Код ответа от источника |
$upstream_connect_time | 0.000 |
Время, затраченное подключение к источнику, в секундах с точностью до миллисекунд. |
$upstream_header_time | 0.200 |
Время, затраченное на получение заголовков ответа от источника, в секундах с точностью до миллисекунд. |
$shard_addr (внутренняя системная переменная) |
0.0.0.0 |
IP адрес edge-сервера, который изначально принял запрос клиента при включенном шардинге у ресурса. |
$geoip2_data_asnumber | asnumber |
Номер автономной системы откуда пришел запрос пользователя. |
$connection (внутренняя системная переменная) |
2897494295 |
Порядковый номер соединения. |
$connection_requests (внутренняя системная переменная) |
1 |
Текущее число запросов в соединении. |
$request_id (внутренняя системная переменная) |
c1c0f12ab35b7cccccd5dc0a454879c5 |
Уникальный идентификатор запроса, сформированный из 16 случайных байт, в шестнадцатеричном виде. |
$http_x_forwarded_proto | - |
Изначальный протокол входящего запроса (http или https). |
$http_x_forwarded_request_id (внутренняя системная переменная) |
- |
Изначальный ID входящего запроса. |
$ssl_cipher (внутренняя системная переменная) |
ECDHE-RSA-AES256-GCM-SHA384 |
Возвращает название используемого шифра для установленного SSL-соединения. |
$ssl_session_id (внутренняя системная переменная) |
28a4184139cb43cdc79006cf2d1a4ac93bdc**** |
Возвращает идентификатор сессии установленного SSL-соединения. |
$ssl_session_reused (внутренняя системная переменная) |
r |
Возвращает “ |