Журналы диагностики — сеть доставки содержимого Microsoft Azure

Внимание

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 позволяют просматривать данные основной аналитики и сохранять их в одно или несколько из следующих целевых расположений:

  • Учетная запись хранения Azure
  • Рабочая область Log Analytics
  • Центры событий Azure

Эта функция доступна в конечных точках сети доставки содержимого для всех ценовых категорий.

Журналы диагностики позволяют экспортировать базовые метрики использования из конечной точки сети доставки содержимого в различные источники типов, чтобы их можно было использовать в настраиваемом режиме. Доступны следующие типы экспорта данных:

  • экспорт данных в хранилище BLOB-объектов, экспорт в CSV-файл и создание диаграмм в Excel;
  • экспорт данных в Центры событий и их сопоставление с данными из других служб Azure;
  • экспорт данных в журналы Azure Monitor и просмотр данных в собственной рабочей области Log Analytics.

Для выполнения следующих действий требуется профиль azure сеть доставки содержимого. Прежде чем продолжить, ознакомьтесь с разделом "Создание профиля и конечной точки Azure сеть доставки содержимого".

Включение ведения журнала с помощью портала Azure

Выполните следующие действия, чтобы включить ведение журнала для конечной точки Azure сеть доставки содержимого:

  1. Войдите на портал Azure.

  2. В портал Azure перейдите к всем ресурсам>профиля cdn-profile.

  3. Выберите конечную точку сети доставки содержимого, для которой требуется включить диагностика журналы:

    Снимок экрана: выбор конечной точки сети доставки содержимого.

  4. В разделе Мониторинг выберите Журналы диагностики:

    Снимок экрана: кнопка диагностика журналов в меню мониторинга.

Включение ведения журнала с помощью службы хранилища Azure

Чтобы использовать учетную запись хранения для хранения журналов, выполните следующие действия.

Примечание.

Для выполнения этих действий потребуется учетная запись хранения. Дополнительные сведения см. в статье Создание учетной записи хранения Azure.

  1. В поле Имя параметра диагностики введите имя для параметров журнала диагностики.

  2. Выберите Архивировать в учетной записи хранения, а затем выберите CoreAnalytics.

  3. Для параметра Хранение (в днях) выберите число дней хранения. Нулевое значение означает, что журналы будут храниться неограниченно долго.

  4. Выберите подписку и учетную запись хранения для журналов.

    Журналы диагностики — служба хранилища.

  5. Выберите Сохранить.

Отправить в Log Analytics.

Чтобы использовать Log Analytics для журналов, сделайте следующее:

Примечание.

Для выполнения этих действий требуется рабочая область Log Analytics. Дополнительные сведения см. в статье Создание рабочей области Log Analytics на портале Azure.

  1. В поле Имя параметра диагностики введите имя для параметров журнала диагностики.

  2. Установите флажок Отправить в Log Analytics, а затем — CoreAnalytics.

  3. Выберите подписку и рабочую область Log Analytics для журналов.

    Журналы диагностики — Log Analytics.

  4. Выберите Сохранить.

Передать в концентратор событий.

Чтобы использовать концентратор событий для журналов, сделайте следующее:

Примечание.

Для выполнения этих действий потребуется концентратор событий. Дополнительные сведения см. в статье Краткое руководство. Создание концентратора событий с помощью портала Azure.

  1. В поле Имя параметра диагностики введите имя для параметров журнала диагностики.

  2. Установите флажок Передать в концентратор событий, а затем — CoreAnalytics.

  3. Выберите подписку и пространство имен концентратора событий для журналов.

    Журналы диагностики — концентратор событий.

  4. Выберите Сохранить.

Включение ведения журнала с помощью PowerShell

Используйте командлеты Azure PowerShell из примера ниже, чтобы включить журналы диагностики.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Включение журналов диагностики в учетной записи хранения

  1. Войдите в Azure PowerShell.

    Connect-AzAccount 
    
  2. Чтобы включить журналы диагностики в учетной записи хранения, введите следующие команды, заменив переменные собственными значениями:

    $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>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Categories CoreAnalytics
    

Включение журналов диагностики для рабочей области Log Analytics

  1. Войдите в Azure PowerShell.

    Connect-AzAccount 
    
  2. Чтобы включить журналы диагностики для рабочей области Log Analytics, введите следующие команды, заменив переменные собственными значениями:

    $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>
    
    $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 -Categories CoreAnalytics
    

Включение журналов диагностики для пространства имен концентратора событий

  1. Войдите в Azure PowerShell.

    Connect-AzAccount 
    
  2. Чтобы включить журналы диагностики для рабочей области Log Analytics, введите следующие команды, заменив переменные собственными значениями:

    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $eventhubname = <your-event-hub-namespace-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhubname -Enabled $true -Categories CoreAnalytics
    

Использование журналов диагностики из службы хранилища Azure

В этом разделе описывается схема аналитики сетевых ядер доставки содержимого, организация в учетной записи служба хранилища Azure и пример кода для скачивания журналов в CSV-файле.

Использование обозревателя хранилищ Microsoft Azure

Вы можете скачать это средство на странице обозревателя хранилищ Azure. После скачивания и установки программного обеспечения настройте его для использования той же учетной записи служба хранилища Azure, которая была настроена в качестве назначения для журналов диагностики сети доставки содержимого.

  1. Откройте обозреватель хранилищ Microsoft Azure.
  2. Найдите учетную запись хранения.
  3. Разверните узел Контейнеры больших двоичных объектов в учетной записи хранения.
  4. Выберите контейнер с именем insights-logs-coreanalytics.
  5. Результаты отобразятся на панели справа, начиная с первого уровня, который обозначен как resourceId=. Продолжайте выбирать уровни, пока не найдете файл PT1H.json. Описание пути см. в следующих данных о формате пути большого двоичного объекта.
  6. Каждый большой двоичный объект PT1H.json представляет журналы аналитики в течение одного часа для определенной конечной точки сети доставки содержимого или личного домена.
  7. Схема содержимого этого JSON-файла описана в разделе "Схемы журналов основной аналитики".

Формат пути BLOB-объекта

Журналы основной аналитики создаются каждый час, собираются в один BLOB-объект и хранятся в нем в формате полезных данных JSON. Обозреватель хранилища интерпретирует "/" как разделитель каталогов и отображает иерархию. Путь к BLOB-объекту Azure отображается в виде иерархической структуры и представляет имя BLOB-объекта. Имя BLOB-объекта соответствует описанному ниже соглашению об именовании.

resourceId=/SUBSCRIPTIONS/{Subscription Id}/RESOURCEGROUPS/{Resource Group Name}/PROVIDERS/MICROSOFT.CDN/PROFILES/{Profile Name}/ENDPOINTS/{Endpoint Name}/ y=/m=/d=/h=/m=/PT1H.json

Описание полей

значение Описание
ИД подписки Идентификатор подписки Azure в глобальном уникальном формате идентификатора (GUID).
Имя группы ресурсов Имя группы ресурсов, к которой принадлежат сетевые ресурсы доставки содержимого.
Имя профиля Имя профиля сети доставки содержимого
Имя конечной точки Имя конечной точки сети доставки содержимого
Год 4-значное обозначение года, например 2017
месяц 2-значное обозначение номера месяца 01 = январь... 12 = декабрь.
день 2-значное обозначение дня месяца
PT1H.json Фактический JSON-файл, в котором хранятся данные аналитики.

Экспорт данных основной аналитики в CSV-файл

Для доступа к основной аналитике предлагаем пример кода для средства. Это средство выполняет скачивание JSON-файлов с преобразованием в неструктурированные файлы с разделителями-запятыми, на основе которых можно создавать диаграммы или вычислять статистику.

Вот как использовать это средство:

  1. Перейдите на сайт GitHub по ссылке https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv.
  2. Скачайте код.
  3. Следуйте инструкциям по компиляции и настройке.
  4. Запустите средство.
  5. Полученный CSV-файл позволяет просмотреть данные аналитики в простой одноуровневой структуре.

Задержка данных журнала

В следующей таблице показаны задержки данных журнала для Azure CDN уровня "Стандартный" от Майкрософт и Azure CDN уровня "Стандартный" или "Премиум" из Edgio.

Задержка данных журнала Майкрософт Задержки данных журнала Edgio
Задержка на 1 час. Задержка составляет 1 час, а от момента распространения конечной точки до начала отображения данных может пройти до 2 часов.

Типы журналов диагностики для аналитики сетевых ядер доставки содержимого

В настоящее время корпорация Майкрософт предлагает только основные журналы аналитики, которые содержат метрики, показывающие статистику ответа HTTP и статистику исходящего трафика, как показано на основе сетей доставки содержимого и ребер.

Сведения о метриках основной аналитики

В таблице ниже приведен список метрик, доступных в журналах основной аналитики для:

  • Azure CDN уровня "Стандартный" от Майкрософт;
  • Azure CDN уровня "Стандартный" или "Премиум" из Эдгио

Не все метрики доступны у всех поставщиков, хотя различия минимальны. В этой таблице также есть сведения о доступности метрик у определенных поставщиков. Метрики доступны только для конечных точек сети доставки содержимого, имеющих трафик на них.

Метрическая Description Microsoft Эдгио
RequestCountTotal Общее количество запросов за этот период. Да Да
RequestCountHttpStatus2xx Количество запросов, на которые возвращены ответы с кодами HTTP 2xx (200, 202 и т. д.). Да Да
RequestCountHttpStatus3xx Количество запросов, на которые возвращены ответы с кодами HTTP 3xx (300, 302 и т. д.). Да Да
RequestCountHttpStatus4xx Количество запросов, на которые возвращены ответы с кодами HTTP 4xx (400, 404 и т. д.). Да Да
RequestCountHttpStatus5xx Количество запросов, на которые возвращены ответы с кодами HTTP 5xx (500, 504 и т. д.). Да Да
RequestCountHttpStatusOthers Количество всех остальных кодов HTTP (кроме 2xx–5xx). Да Да
RequestCountHttpStatus200 Количество всех запросов, на которые возвращался ответ с кодом HTTP 200. Да Нет
RequestCountHttpStatus206 Количество всех запросов, на которые возвращался ответ с кодом HTTP 206. Да Нет
RequestCountHttpStatus302 Количество всех запросов, на которые возвращался ответ с кодом HTTP 302. Да Нет
RequestCountHttpStatus304 Количество всех запросов, на которые возвращался ответ с кодом HTTP 304. Да Нет
RequestCountHttpStatus404 Количество всех запросов, на которые возвращался ответ с кодом HTTP 404. Да Нет
RequestCountCacheHit Количество всех запросов, в результате которых произошло попадание в кэш. Такие ресурсы возвращаются клиенту непосредственно из точки присутствия. Да Да
RequestCountCacheMiss Количество всех запросов, в результате которых произошел промах кэша. Это означает, что ресурс не найден в ближайшей к клиенту точке присутствия и был получен из источника. Да Да
RequestCountCacheNoCache Количество всех запросов к ресурсу, кэширование которых запрещено из-за конфигурации пользователя на границе. Да Да
RequestCountCacheUncacheable Количество всех запросов к ресурсам, которые не позволяют кэшироваться заголовками кэша ресурса и истекает срок действия. Это количество указывает, что ресурс не должен кэшироваться в точке присутствия или в HTTP-клиенте. Да Да
RequestCountCacheOthers Количество всех запросов с состоянием кэша, не охваченным метриками, перечисленными ранее. No Да
EgressTotal Объем передачи исходящих данных в ГБ. Да Да
EgressHttpStatus2xx Объем передачи исходящих данных* для ответов с кодами состояния HTTP 2xx (ГБ). Да Да
EgressHttpStatus3xx Объем передачи исходящих данных для ответов с кодами состояния HTTP 3xx (ГБ). Да Да
EgressHttpStatus4xx Объем передачи исходящих данных для ответов с кодами состояния HTTP 4xx (ГБ). Да Да
EgressHttpStatus5xx Объем передачи исходящих данных для ответов с кодами состояния HTTP 5xx (ГБ). Да Да
EgressHttpStatusOthers Объем передачи исходящих данных для ответов с другими кодами состояния HTTP (ГБ). Да Да
EgressCacheHit Передача исходящих данных для ответов, которые были доставлены непосредственно из кэша сети доставки содержимого в сети доставки содержимого в сети POPs/Edge. Да Да
EgressCacheMiss. Объем передачи исходящих данных для ответов, не найденных на ближайшем POP-сервере и полученных с сервера-источника. Да Да
EgressCacheNoCache Объем передачи исходящих данных для ресурсов, кэширование которых запрещено из-за конфигурации пользователя на границе. Да Да
EgressCacheUncacheable Передача исходящих данных для ресурсов, которые не могут кэшироваться с помощью элемента управления кэшем ресурса и или истекает срок действия заголовков. Эти заголовки указывают, что ресурс не должен кэшироваться в точке присутствия или в HTTP-клиенте. Да Да
EgressCacheOthers Объем передачи исходящих данных для других сценариев с использованием кэша. No Да

*Передача исходящих данных относится к трафику, доставленном из сетевых POP-серверов доставки содержимого клиенту.

Схема журналов основной аналитики

Все журналы хранятся в формате JSON, и каждая запись содержит строковые поля, как показано на схеме ниже.

    "records": [
        {
            "time": "2017-04-27T01:00:00",
            "resourceId": "<ARM Resource Id of the CDN Endpoint>",
            "operationName": "Microsoft.Cdn/profiles/endpoints/contentDelivery",
            "category": "CoreAnalytics",
            "properties": {
                "DomainName": "<Name of the domain for which the statistics is reported>",
                "RequestCountTotal": integer value,
                "RequestCountHttpStatus2xx": integer value,
                "RequestCountHttpStatus3xx": integer value,
                "RequestCountHttpStatus4xx": integer value,
                "RequestCountHttpStatus5xx": integer value,
                "RequestCountHttpStatusOthers": integer value,
                "RequestCountHttpStatus200": integer value,
                "RequestCountHttpStatus206": integer value,
                "RequestCountHttpStatus302": integer value,
                "RequestCountHttpStatus304": integer value,
                "RequestCountHttpStatus404": integer value,
                "RequestCountCacheHit": integer value,
                "RequestCountCacheMiss": integer value,
                "RequestCountCacheNoCache": integer value,
                "RequestCountCacheUncacheable": integer value,
                "RequestCountCacheOthers": integer value,
                "EgressTotal": double value,
                "EgressHttpStatus2xx": double value,
                "EgressHttpStatus3xx": double value,
                "EgressHttpStatus4xx": double value,
                "EgressHttpStatus5xx": double value,
                "EgressHttpStatusOthers": double value,
                "EgressCacheHit": double value,
                "EgressCacheMiss": double value,
                "EgressCacheNoCache": double value,
                "EgressCacheUncacheable": double value,
                "EgressCacheOthers": double value,
            }
        }

    ]
}

Здесь time представляет начало периода, для которого выводятся статистические данные. Метрика, неподдерживаемая поставщиком сети доставки содержимого, вместо двойного или целочисленного значения, приводит к значению NULL. Это значение указывает на отсутствие метрики, то есть по смыслу отличается от значения 0. Каждому домену, настроенному на конечной точке, соответствует один набор этих метрик.

Пример набора свойств:

{
     "DomainName": "azurecdntest.azureedge.net",
     "RequestCountTotal": 480,
     "RequestCountHttpStatus2xx": 480,
     "RequestCountHttpStatus3xx": 0,
     "RequestCountHttpStatus4xx": 0,
     "RequestCountHttpStatus5xx": 0,
     "RequestCountHttpStatusOthers": 0,
     "RequestCountHttpStatus200": 480,
     "RequestCountHttpStatus206": 0,
     "RequestCountHttpStatus302": 0,
     "RequestCountHttpStatus304": 0,
     "RequestCountHttpStatus404": 0,
     "RequestCountCacheHit": null,
     "RequestCountCacheMiss": null,
     "RequestCountCacheNoCache": null,
     "RequestCountCacheUncacheable": null,
     "RequestCountCacheOthers": null,
     "EgressTotal": 0.09,
     "EgressHttpStatus2xx": null,
     "EgressHttpStatus3xx": null,
     "EgressHttpStatus4xx": null,
     "EgressHttpStatus5xx": null,
     "EgressHttpStatusOthers": null,
     "EgressCacheHit": null,
     "EgressCacheMiss": null,
     "EgressCacheNoCache": null,
     "EgressCacheUncacheable": null,
     "EgressCacheOthers": null
}

Дополнительные ресурсы