Поделиться через


Настройка BYOS для Application Insights Profiler для .NET и отладчика моментальных снимков

При использовании Application Insights Profiler для отладчика .NET или моментального снимка артефакты, созданные приложением, по умолчанию передаются в учетные записи служба хранилища Azure через общедоступный Интернет. Для этих артефактов и учетных записей хранения корпорация Майкрософт за свой счет и под своим управлением предоставляет следующее:

  • обработка и анализ данных;
  • политики шифрования неактивных данных и управления временем существования.

Между тем, когда вы "приносите собственное хранилище" (BYOS), артефакты передаются в учетную запись хранения, которая только вы управляете и покрываете затраты на:

  • политика шифрования неактивных данных и политика управления жизненным циклом;
  • Доступ по сети.

Примечание.

BYOS требуется, если вы включаете Приватный канал Azure или ключи, управляемые клиентом.

Из этого руководства вы узнаете, как выполнить следующие задачи:

  • Предоставьте службам диагностики доступ к учетной записи хранения.
  • Свяжите учетную запись хранения с ресурсом Application Insights.
  • Узнайте, как осуществляется доступ к учетной записи хранения.

Необходимые компоненты

  • Убедитесь, что вы создали учетную запись хранения в том же расположении, что и ресурс Application Insights.
  • Если вы включили Приватный канал, разрешите подключение к нашей доверенной службе Майкрософт из виртуальной сети.

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

Учетная запись хранения BYOS связана с ресурсом Application Insights. Начните с предоставления Storage Blob Data Contributor роли приложению Microsoft Entra с именем Diagnostic Services Trusted Storage Access на странице контроль доступа (IAM) в учетной записи хранения.

  1. Выберите Управление доступом (IAM) .

  2. Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.

  3. Назначьте следующую роль.

    Параметр Значение
    Роль Участник данных хранилища BLOB-объектов
    Назначить доступ для Пользователь, группа или субъект-служба
    Участники Доступ к доверенному хранилищу служб диагностики

    Снимок экрана: страница назначения ролей в портал Azure.

    После назначения вы увидите роль в разделе "Назначения ролей". Снимок экрана: экран IAM после назначений ролей.

Примечание.

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

У вас есть три варианта настройки BYOS для диагностика уровня кода, таких как профилировщик .NET и отладчик моментальных снимков:

  • Командлеты Azure PowerShell
  • Azure CLI
  • Шаблоны диспетчера ресурсов Azure

Прежде чем начать, установите Azure PowerShell 4.2.0 или более поздней версии.

  1. Установите расширение PowerShell для Application Insights.

    Install-Module -Name Az.ApplicationInsights -Force
    
  2. Войдите, используя подписку учетной записи Azure.

    Connect-AzAccount -Subscription "{subscription_id}"
    

    Дополнительные сведения о входе см. в документации по Connect-AzAccount.

  3. Удалите любую предыдущую учетную запись хранения, связанную с ресурсом Application Insights.

    Шаблон:

    Get-AzApplicationInsights -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" | Remove-AzApplicationInsightsLinkedStorageAccount
    

    Пример:

    Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | Remove-AzApplicationInsightsLinkedStorageAccount
    
  4. Подключите учетную запись хранения к ресурсу Application Insights.

    Шаблон:

    $storageAccount = Get-AzStorageAccount -ResourceGroupName "{resource_group_name}" -Name "{storage_account_name}"
    Get-AzApplicationInsights -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" | New-AzApplicationInsightsLinkedStorageAccount -LinkedStorageAccountResourceId $storageAccount.Id
    

    Пример:

    $storageAccount = Get-AzStorageAccount -ResourceGroupName "byos-test" -Name "byosteststoragewestus2"
    Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | New-AzApplicationInsightsLinkedStorageAccount -LinkedStorageAccountResourceId $storageAccount.Id
    

Устранение неполадок

Устранение распространенных проблем при настройке BYOS.

  • Общие сведения об устранении неполадок с профилировщиком .NET см. в документации по устранению неполадок Профилировщика.
  • Общие сведения об устранении неполадок отладчика моментальных снимков см. в документации по устранению неполадок отладчика моментальных снимков.

Сценарий: схема шаблона "{schema_uri}" не поддерживается

Вы получили ошибку, аналогичную следующему примеру:

New-AzResourceGroupDeployment : 11:53:49 AM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'Template schema
'https://schema.management.azure.com/schemas/2020-01-01/deploymentTemplate.json#' is not supported. Supported versions are
'2014-04-01-preview,2015-01-01,2018-05-01,2019-04-01,2019-08-01'. Please see https://aka.ms/arm-template for usage details.'.

Решения

  • Убедитесь, что свойство шаблона $schema является допустимым. Он должен соответствовать следующему шаблону:

    https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
    
  • Убедитесь, что значение параметра schema_version шаблона находится в допустимых пределах: 2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01.

Сценарий. Зарегистрированный поставщик ресурсов не найден для расположения "{location}"

Вы получили ошибку, аналогичную следующему примеру:

New-AzResourceGroupDeployment : 6:18:03 PM - Resource microsoft.insights/components 'byos-test-westus2-ai' failed with message '{
  "error": {
    "code": "NoRegisteredProviderFound",
    "message": "No registered resource provider found for location 'westus2' and API version '2020-03-01-preview' for type 'components'. The supported api-versions are '2014-04-01,
2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth,
canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth,
australiasoutheast'."
  }
}'

Решения

  • Убедитесь, что параметр apiVersion ресурса microsoft.insights/components имеет значение 2015-05-01.
  • Убедитесь, что параметр apiVersion ресурса linkedStorageAccount имеет значение 2020-03-01-preview.

Сценарий. Расположение учетной записи хранения должно соответствовать расположению компонента Application Insights

Вы получили ошибку, аналогичную следующему примеру:

New-AzResourceGroupDeployment : 1:01:12 PM - Resource microsoft.insights/components/linkedStorageAccounts 'byos-test-centralus-ai/serviceprofiler' failed with message '{
  "error": {
    "code": "BadRequest",
    "message": "Storage account location should match AI component location",
    "innererror": {
      "trace": [
        "System.ArgumentException"
      ]
    }
  }
}'

Решение

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

Часто задаваемые вопросы

В этом разделе приведены ответы на распространенные вопросы о настройке BYOS для отладчика моментальных снимков и .NET Profiler.

Если включен отладчик .NET Profiler/Snapshot Debuger и BYOS, данные переносятся в учетную запись хранения?

Нет, не будут.

Работает ли BYOS с неактивных и управляемых клиентом ключей?

Да. Чтобы быть точным, BYOS является требованием включить отладчик .NET Profiler/Snapshot с помощью ключей диспетчера клиентов.

Работает ли BYOS в среде, изолированной от Интернета?

Да. BYOS — это требование для изолированных сетевых сценариев.

Да, это возможно.

Если я включил BYOS, можно ли вернуться к использованию учетных записей хранения служб диагностики для хранения собранных данных?

Да, можно, но сейчас мы не поддерживаем перенос данных из службы BYOS.

Да.

Как осуществляется доступ к учетной записи хранения?

  1. Агенты, работающие на виртуальных машинах или приложение Azure Service, отправляют артефакты (профили, моментальные снимки и символы) в контейнеры BLOB-объектов в учетной записи.

    Этот процесс включает в себя обращение к профилировщику .NET или отладчику моментальных снимков для получения маркера подписанного URL-объекта к новому BLOB-объекту в учетной записи хранения.

  2. Отладчик профилей .NET или моментального снимка:

    • Анализирует входящий большой двоичный объект.
    • запись результатов анализа и файлов журнала в хранилище BLOB-объектов.

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

  3. При просмотре трассировок профилировщика или анализа отладчика моментальных снимков служба извлекает результаты анализа из хранилища BLOB-объектов.

Следующие шаги