Мониторинг в реальном времени, метрики и журналы доступа для Azure CDN
Внимание
Azure CDN standard от Корпорации Майкрософт (классическая версия) будет прекращена 30 сентября 2027 г. Чтобы избежать нарушений работы службы, важно перенести профили Azure CDN уровня "Стандартный" от Майкрософт (классический) на уровень Azure Front Door standard или Premium к 30 сентября 2027 года. Дополнительные сведения см. в статье Azure CDN Standard от майкрософт (классическая версия).
Azure CDN из Эдгио будет прекращено 4 ноября 2025 г. Перед этой датой необходимо перенести рабочую нагрузку в Azure Front Door. Дополнительные сведения см. в статье Azure CDN из Edgio для выхода на пенсию.
Azure CDN от Майкрософт позволяет вести мониторинг ресурсов приведенными ниже способами для устранения неполадок, отслеживания и отладки проблем.
- Необработанные журналы содержат подробные сведения о каждом запросе, получаемом CDN. Необработанные журналы отличаются от журналов действий. Журналы действий позволяют анализировать операции, выполненные с ресурсами Azure.
- Доступны четыре ключевые метрики в CDN, включая коэффициент попаданий байт в кэш, число запросов, размер ответа и общую задержку. Кроме того, можно использовать различные измерения для разбиения метрик.
- С помощью функции оповещений клиенты могут настраивать оповещения для ключевых метрик.
- Дополнительные метрики, позволяющие клиентам использовать Azure Log Analytics, чтобы включить дополнительные метрики значений. Мы также предоставляем примеры запросов для ряда других метрик в Azure Log Analytics.
Внимание
Компонент необработанных журналов HTTP доступен только в Azure CDN корпорации Майкрософт.
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Вход в Azure
Войдите на портал Azure.
Настройка на портале Azure
Чтобы настроить необработанные журналы для Azure CDN из профиля Майкрософт, выполните следующие действия:
В меню портала Azure выберите элементы Все ресурсы>><профиль_CDN>.
В разделе Мониторинг выберите элемент Параметры диагностики.
Щелкните команду + Добавить параметр диагностики.
Внимание
Необработанные журналы доступны только на уровне профиля, а статистические журналы кода состояния HTTP доступны на уровне конечной точки.
В разделе Параметры диагностики введите значение в поле Имя параметра диагностики.
Выберите вариант AzureCdnAccessLog и задайте срок хранения в днях.
Выберите элемент Сведения о назначении. Доступны следующие варианты назначения:
- Отправить в Log Analytics.
- Выберите подписку и рабочую область Log Analytics.
- Архивировать в учетной записи хранения.
- Выберите подписку и учетную запись хранения.
- Передать в концентратор событий.
- Выберите подписку, пространство имен концентратора событий, имя концентратора событий (необязательно) и имя политики концентратора событий.
- Отправить в Log Analytics.
Выберите Сохранить.
Настройка с помощью Azure PowerShell
Используйте команду Set-AzDiagnosticSetting, чтобы настроить параметр диагностики для необработанных журналов.
Период хранения определяется в команде с помощью параметра -RetentionInDays.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Включение журналов диагностики в учетной записи хранения
Войдите в Azure PowerShell.
Connect-AzAccount
Чтобы включить журналы диагностики в учетной записи хранения, введите следующие команды, заменив переменные собственными значениями:
## Variables for the commands ## $rsg = <your-resource-group-name> $cdnprofile = <your-cdn-profile-name> $cdnendpoint = <your-cdn-endpoint-name> $storageacct = <your-storage-account-name> $diagname = <your-diagnostic-setting-name> $days = '30' $cdn = Get-AzCdnProfile -ResourceGroupName $rsg -ProfileName $cdnprofile $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
Включение журналов диагностики для рабочей области Log Analytics
Войдите в Azure PowerShell.
Connect-AzAccount
Чтобы включить журналы диагностики для рабочей области Log Analytics, введите следующие команды, заменив переменные собственными значениями:
## Variables for the commands ## $rsg = <your-resource-group-name> $cdnprofile = <your-cdn-profile-name> $cdnendpoint = <your-cdn-endpoint-name> $workspacename = <your-log-analytics-workspace-name> $diagname = <your-diagnostic-setting-name> $days = '30' $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rsg -Name $workspacename Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -WorkspaceId $workspace.ResourceId -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
Включение журналов диагностики для пространства имен концентратора событий
Войдите в Azure PowerShell.
Connect-AzAccount
Чтобы включить журналы диагностики для пространства имен Центра событий, введите следующие команды. заменив переменные собственными значениями:
## Variables for the commands ## $rsg = <your-resource-group-name> $cdnprofile = <your-cdn-profile-name> $cdnendpoint = <your-cdn-endpoint-name> $evthubnamespace = <your-event-hub-namespace-name> $diagname = <your-diagnostic-setting-name> $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint $eventhub = Get-AzEventHubNamespace -ResourceGroupName $rsg -Name $eventhubname Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhub.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
Свойства необработанных журналов
Сейчас Azure CDN из службы Майкрософт предоставляет необработанные журналы. Необработанные журналы содержат сведения о каждом запросе к API со следующей схемой:
Свойство | Description |
---|---|
BackendHostname | Если запрос пересылается в серверную часть, это поле представляет имя узла серверной части. Это поле пусто, если запрос перенаправляется или перенаправляется в региональный кэш (при включении кэширования для правила маршрутизации). |
CacheStatus | В сценариях кэширования в этом поле определяются попадание или промахи кэша в точке POP |
ClientIp | IP-адрес отправившего запрос клиента. Если в запросе был указан заголовок X-Forwarded-For, то IP-адрес клиента выбирается из него. |
ClientPort | IP-порт клиента, отправившего запрос. |
HttpMethod | Метод HTTP, используемый для запроса. |
HttpStatusCode | Код состояния HTTP, полученный от прокси-сервера. Если запрос к источнику истекает время ожидания, значение для HttpStatusCode имеет значение 0. |
HttpStatusDetails | Итоговое состояние запроса. Пояснения к этому строковому значению есть в ссылочной таблице "Состояние". |
HttpVersion | Тип запроса или подключения. |
POP | Короткое имя граничного сервера, который стал местом назначения запроса. |
RequestBytes | Размер сообщения с HTTP-запросом в байтах, включая заголовки и текст запроса. |
RequestUri | URI полученного запроса. |
ResponseBytes | Количество байтов, отправленных внутренним сервером в качестве ответа. |
RoutingRuleName | Имя правила маршрутизации, которому соответствует запрос. |
RulesEngineMatchNames | Имена правил, которым соответствует запрос. |
SecurityProtocol | Версия протокола TLS/SSL, которая использовалась в запросе. Содержит значение NULL, если шифрование не использовалось. |
SentToOriginShield (устарело)* См. примечания об устаревании в следующем разделе. |
Если установлено значение true, значит, ответ на запрос был получен из кэша защиты источника, а не из граничной точки присутствия. Защитой источника называется родительский кэш, который предназначен для повышения коэффициента попаданий в кэш. |
isReceivedFromClient | Значение True означает, что запрос поступил от клиента. Значение False означает, что запрос не поступил на граничный сервер (дочернюю точку POP) и ответ получен из системы защиты сервера-источника (родительской точки POP). |
TimeTaken | Длина времени от первого байта запроса в Azure Front Door до последнего байта ответа в секундах. |
TrackingReference | Уникальная ссылочная строка, которая определяет запрос, обслуживаемый Azure Front Door, также отправляется в качестве заголовка X-Azure-Ref клиенту. Эта строка нужна для поиска в журналах доступа сведений о конкретном запросе. |
UserAgent | Тип браузера, используемый клиентом. |
ErrorInfo | Это поле содержит сведения о конкретном типе ошибки для сужения области устранения неполадок. Возможные значения включают: NoError: указывает, что ошибки не найдены. CertificateError: ошибка универсального SSL-сертификата. CertificateNameCheckFailed: имя узла в SSL-сертификате недопустимо или не соответствует. ClientDisconnected: сбой запроса из-за подключения к сети клиента. UnspecifiedClientError: универсальная ошибка клиента. InvalidRequest: недопустимый запрос. Причиной может быть неправильно составленный заголовок, тело запроса или URL-адрес. DNSFailure: сбой DNS. DNSNameNotRe resolve: имя сервера или адрес не удалось разрешить. OriginConnectionAborted: связь с источником была остановлена резко. OriginConnectionError: ошибка подключения универсального источника. OriginConnectionRefused: соединение с источником не удалось установить. OriginError: ошибка универсального источника. OriginInvalidResponse: Источник вернул недопустимый или нераспознанный ответ. OriginTimeout: срок ожидания для запроса на источник истек. ResponseHeaderTooBig: источник вернул слишком большой заголовка ответа. RestrictedIP: запрос был заблокирован из-за ограниченного IP-адреса. SSLHandshakeError: не удается установить подключение к источнику из-за сбоя встряхивания ssl-рук. НеопределенныйError: произошла ошибка, которая не соответствовала ни одной из ошибок в таблице. |
TimeToFirstByte | Время в миллисекундах, прошедшее с момента получения запроса сетью Microsoft CDN до момента отправки первого байта клиенту. Время измеряется только на стороне Майкрософт. Данные на стороне клиента не измеряются. |
Результат | SSLMismatchedSNI — это код состояния, который означает успешный запрос с предупреждением о несоответствии между указанием имени сервера (SNI) и заголовком узла. Этот код состояния подразумевает интерфейс домена, метод, который нарушает условия обслуживания Azure Front Door. Запросы с SSLMismatchedSNI будут отклонены после 22 января 2024 г. |
SNI | Это поле указывает указание имени сервера (SNI), которое отправляется во время подтверждения TLS/SSL. Его можно использовать для идентификации точного SSLMismatchedSNI значения SNI, если был код состояния. Кроме того, его можно сравнить со значением узла в requestUri поле для обнаружения и устранения проблемы несоответствия. |
Примечание.
Журналы будут доступны для запросов в профиле Log Analytics. Пример запроса будет иметь следующий вид: AzureDiagnostics | where Category == "AzureCdnAccessLog"
Свойство "Отправлено на защиту источника" больше не поддерживается
Свойство необработанного журнала isSentToOriginShield устарело и заменено новым полем IsReceivedFromClient. Используйте новое поле, если вы уже используете нерекомендуемое.
Необработанные журналы включают в себя журналы, созданные на граничном сервере CDN (дочерней точке POP) и в системе защиты сервера-источника. Система защиты сервера-источника ссылается на родительские узлы, которые стратегически расположены по всему миру. Эти узлы обмениваются данными с серверами-источниками и снижают нагрузку на эти серверы.
Для каждого запроса, который отправляется на экран источника, есть две записи журнала:
- одна для граничных узлов;
- одна для системы защиты сервера-источника.
Чтобы отличить, пришел ли трафик или ответ через граничный узел или систему защиты сервера-источника, можно использовать поле isReceivedFromClient и получить таким образом верные данные.
Значение False, означает, что ответ на запрос получен на граничных узлах из системы защиты сервера-источника. Этот подход эффективен для сравнения необработанных журналов с данными о выставлении счетов. За исходящий трафик из системы защиты сервера-источника на граничные узлы плата не взимается. Плата взимается за исходящий трафик от граничных узлов к клиентам.
Пример запроса Kusto для исключения журналов, созданных в системе защиты сервера-источника в Log Analytics.
AzureDiagnostics
| where OperationName == "Microsoft.Cdn/Profiles/AccessLog/Write" and Category == "AzureCdnAccessLog"
| where isReceivedFromClient == true
Внимание
Функциональность необработанных журналов HTTP автоматически становится доступной для всех профилей, созданных или обновленных после 25 февраля 2020 года. Для ранее созданных профилей CDN следует обновить конечную точку CDN после настройки ведения журнала. Например, можно открыть раздел в географической фильтрации для конечных точек CDN и заблокировать любую страну или регион, которая не важна для вашей работы, а затем нажать кнопку "Сохранить".
Метрики
Azure CDN от Майкрософт интегрирована в Azure Monitor и публикует четыре метрики CDN для помощи при отслеживании, устранении неполадок и отладке проблем.
Метрики отображаются на диаграммах и доступны через PowerShell, CLI и API. Метрики CDN являются бесплатными.
Azure CDN от Майкрософт делает измерения и отправляет метрики с интервалом в 60 секунд. Для отображения метрик на портале может потребоваться до 3 минут.
Дополнительные сведения см. в статье Обзор метрик в Microsoft Azure.
Метрики, поддерживаемые Azure CDN от Майкрософт
Показатели | Description | Измерения |
---|---|---|
Коэффициент попаданий байт в кэш * | Процент исходящего трафика из кэша CDN по отношению ко всему исходящему трафику. | Конечная точка |
RequestCount | Число клиентских запросов, обслуженных CDN. | Конечная точка Страна клиента. Регион клиента. Состояние HTTP. Группа состояния HTTP. |
ResponseSize | Число байт, отправленных клиентам в качестве ответов с пограничного сервера CDN. | Конечная точка Страна клиента. Регион клиента. Состояние HTTP. Группа состояния HTTP. |
TotalLatency | Общее время, прошедшее с получения сетью CDN запроса клиента, до отправки последнего байта ответа из сети CDN клиенту. | Конечная точка Страна клиента. Регион клиента. Состояние HTTP. Группа состояния HTTP. |
Примечание.
Если запрос к времени ожидания источника, значение для HttpStatusCode имеет значение 0.
*Соотношение попаданий в байты = (исходящие данные из края — исходящие данные из источника)/исходящего трафика из края
Сценарии, исключенные из вычисления коэффициента попаданий байт в кэш:
- Явная настройка директивы Cache-Control без кэша с помощью обработчика правил или поведения кэширования строки запроса.
- Явная настройка директивы Cache-Control без хранилища или частного кэша.
Конфигурация метрик
В меню портала Azure выберите элементы Все ресурсы>><профиль_CDN>.
В разделе Мониторинг выберите Метрики.
Выберите Добавить метрику, выберите добавляемую метрику:
Выберите Добавить фильтр, чтобы добавить фильтр:
Выберите Применить разделение, чтобы увидеть тенденцию по различным измерениям:
Выберите Новая диаграмма, чтобы добавить новую диаграмму:
видны узлы
Чтобы настроить оповещения для Microsoft CDN, выберите Мониторинг >> Оповещения.
Выберите Новое правило генерации оповещений для метрик, перечисленных в разделе "Метрики".
Плата за оповещение взимается на основе Azure Monitor. Дополнительные сведения см. в статье об оповещениях Azure Monitor.
Дополнительные метрики
Вы можете включить дополнительные метрики с помощью Azure Log Analytics и необработанных журналов для дополнительной стоимости.
Выполните действия, описанные в предыдущем разделе, чтобы разрешить диагностика отправлять необработанный журнал в Log Analytics.
Выберите созданную рабочую область Log Analytics:
Выберите журналы в разделе "Общие " в рабочей области Log Analytics. Затем выберите Начало работы:
Выберите Профили CDN. Выберите пример запроса для запуска или закройте экран примера, чтобы ввести пользовательский запрос:
Чтобы просмотреть данные по диаграммам, выберите Диаграмма. Щелкните Закрепить на панели мониторинга, чтобы закрепить диаграмму на панели мониторинга Azure:
Next Steps
В рамках этой статьи вы включили поддержку необработанных журналов HTTP в службе Microsoft CDN.
Дополнительные сведения о Azure CDN и других службах Azure, упомянутых в этой статье, см. в следующих статьях:
Изучите шаблоны использования Azure CDN
Узнайте подробнее о службе Azure Monitor.
Настройте Log Analytics в Azure Monitor.