Настройка собственного хранилища (BYOS) для профилировщика и отладчика моментальных снимков

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

  • Обработка
  • Анализ
  • Политики шифрования данных в состоянии покоя и управления сроком действия

Использование собственного хранилища (BYOS) — это вариант конфигурации, который позволяет хранить артефакты Profiler и Snapshot Debugger в своей учетной записи хранения Azure вместо хранилища, управляемого Microsoft. При настройке BYOS вы управляете и покрываете затраты на политики шифрования неактивных данных, политики управления временем существования и сетевой доступ.

В этой статье показано, как настроить BYOS для Application Insights Profiler для .NET и Snapshot Debugger.

Примечание.

В этой статье в подходе с использованием шаблона Resource Manager используется версия API 2020-03-01-preview для ресурса linkedStorageAccounts. Перед развертыванием в рабочей среде проверьте справочник по шаблонам ARM для linkedStorageAccounts на наличие доступных на данный момент версий API.

Это важно

Если вы используете Приватный канал Azure или ключи, управляемые пользователем с Application Insights, необходимо настроить использование собственного хранилища для Application Insights Profiler для .NET или Snapshot Debugger.

BYOS требуется в следующих сценариях:

BYOS является необязательным , но рекомендуется, если вы хотите:

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

Предварительные условия

  • Подписка Azure с соответствующими разрешениями

  • Существующий ресурс Application Insights

  • Учетная запись хранения, созданная в том же расположении, что и ресурс Application Insights

  • Один из следующих инструментов:

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

Чтобы убедиться, что учетная запись хранения находится в правильном расположении:

  1. Откройте портал Azure.
  2. Войдите в свою учетную запись хранения.
  3. На странице обзора проверьте значение расположения.
  4. Откройте ресурс Application Insights.
  5. На странице обзора убедитесь, что для расположения отображается то же значение.

Это важно

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

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

Приложению Diagnostic Services Trusted Storage Access требуется разрешение на запись данных в учетную запись хранения.

Назначьте роль Storage Blob Data Contributor

  1. На портале Azure перейдите к учетной записи хранения.

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

  3. Выберите Добавить>Добавить назначение ролей.

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

  4. На странице добавления назначения ролей настройте следующие значения:

    Настройка Значение
    Вкладка "Роль" Выберите вкладчик данных BLOB-объектов хранилища
    Вкладка > Назначьте доступ Выбор пользователя, группы или субъекта-службы
    Элементы вкладки > Выбор + Выбор участников
  5. В области выбора элементов :

    1. Найдите Diagnostic Services Trusted Storage Access.
    2. Выберите приложение из результатов.
    3. Выберите Выбрать.
  6. Выберите кнопку Проверить + назначить.

Проверка назначения роли

  1. Оставайтесь на странице контроля доступа (IAM).

  2. Выберите Назначения ролей.

  3. Убедитесь, что Diagnostic Services Trusted Storage Access отображается с ролью участника данных хранилища BLOB-объектов.

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

Подсказка

Если приложение не отображается в списке, подождите несколько минут и обновите страницу. Для распространения назначений ролей может потребоваться до пяти минут.

Выберите один из следующих методов, чтобы связать учетную запись хранения. Чтобы упростить устранение неполадок, используйте PowerShell или Azure CLI.

Установка модуля PowerShell Application Insights

  1. Откройте PowerShell от имени администратора.

  2. Установите расширение Application Insights PowerShell:

    Install-Module -Name Az.ApplicationInsights -Force
    
  3. Если появится запрос на установку из PSGallery, введите Y и нажмите клавишу ВВОД.

Вход в Azure

Войдите с помощью учетной записи Azure:

Connect-AzAccount -Subscription "{subscription_id}"

Замените {subscription_id} идентификатором своей подписки.

Подсказка

Чтобы найти идентификатор подписки, запустите Get-AzSubscription или проверьте портал Azure в разделе "Подписки".

Дополнительные сведения см. в разделе Connect-AzAccount.

Если вы ранее связали ресурс Application Insights с другой учетной записью хранения, удалите эту ссылку:

Remove-AzApplicationInsightsLinkedStorageAccount -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}"

Замените:

  • {resource_group_name} с именем группы ресурсов
  • {application_insights_name} с именем ресурса Application Insights

Пример:

Remove-AzApplicationInsightsLinkedStorageAccount -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai"

Примечание.

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

  1. Получите ссылку на вашу учетную запись хранения:

    $storageAccount = Get-AzStorageAccount -ResourceGroupName "{resource_group_name}" -Name "{storage_account_name}"
    

    Замените:

    • {resource_group_name} с именем группы ресурсов
    • {storage_account_name} с названием учетной записи хранилища
  2. Связывание учетной записи хранения с Application Insights:

    New-AzApplicationInsightsLinkedStorageAccount -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" -LinkedStorageAccountResourceId $storageAccount.Id
    

    Замените:

    • {resource_group_name} с именем группы ресурсов
    • {application_insights_name} с именем ресурса Application Insights

Полный пример:

# Set your values
$resourceGroup = "byos-test"
$storageAccountName = "byosteststoragewestus2"
$appInsightsName = "byos-test-westus2-ai"

# Remove any previous linked storage account (optional)
Remove-AzApplicationInsightsLinkedStorageAccount -ResourceGroupName $resourceGroup -Name $appInsightsName

# Get storage account
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName

# Link to Application Insights
New-AzApplicationInsightsLinkedStorageAccount -ResourceGroupName $resourceGroup -Name $appInsightsName -LinkedStorageAccountResourceId $storageAccount.Id

После выполнения команды ссылки вы увидите выходные данные, аналогичные следующим:

Id        : /subscriptions/{subscription}/resourcegroups/byos-test/providers/microsoft.insights/components/byos-test-westus2-ai/linkedstorageaccounts/serviceprofiler
Name      : serviceprofiler
Type      : microsoft.insights/components/linkedstorageaccounts
LinkedStorageAccount : /subscriptions/{subscription}/resourceGroups/byos-test/providers/Microsoft.Storage/storageAccounts/byosteststoragewestus2

Если вы видите ошибку, убедитесь, что:

  • Учетная запись хранения и ресурс Application Insights находятся в одном расположении.
  • На шаге 1 вы верно назначили роль Storage Blob Data Contributor.
  • Вы вошли в учетную запись с нужной подпиской.

Шаг 3. Включение профилировщика .NET или отладчика моментальных снимков

Теперь, когда вы связали учетную запись хранения, включите средства диагностики:

  1. На портале Azure перейдите к ресурсу приложения, например Службе приложений.

  2. В меню слева выберите "Мониторинг>Application Insights".

  3. На странице Application Insights в разделе Инструментирование приложения выберите вкладку .NET в этом примере.

  4. Включите профилировщик Application Insights или отладчик моментальных снимков по мере необходимости.

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

  5. Нажмите кнопку "Применить", а затем "Да ", чтобы подтвердить.

Проверка работы BYOS

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

  1. Подождите 5–10 минут, пока сбор данных начнется.
  2. Войдите в свою учетную запись хранения на портале Azure.
  3. В меню слева выберитеконтейнеры> данных.
  4. Убедитесь, что для хранения артефактов существуют новые контейнеры.

Если новые контейнеры не отображаются через 15 минут, см. раздел "Устранение неполадок ".

Как Profiler и Snapshot Debugger получают доступ к учетной записи хранилища

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

  1. Агенты загружают артефакты: агенты, работающие на виртуальных машинах или в службе приложений Azure, отправляют артефакты, включая профили, снимки и символы, в контейнеры BLOB-хранилищ в вашей учетной записи. Этот процесс обращается к отладчику .NET Profiler или Snapshot Debugger, чтобы получить токен подписанного доступа к новому объекту Blob в учетной записи хранения.

  2. Диагностические службы обрабатывают данные: профилировщик .NET или Snapshot Debugger анализирует входящий BLOB и записывает результаты анализа и файлы журнала в хранилище BLOB-объектов. В зависимости от доступной вычислительной емкости этот процесс может происходить в любое время после отправки.

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

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

Сведения об устранении неполадок с BYOS см. в следующей документации:

Распространенные проблемы:

  • Учетная запись хранения не в том же расположении: убедитесь, что ваша учетная запись хранения и ресурс Application Insights находятся в одном регионе Azure.
  • Назначение ролей не распространяется: дождитесь 5–10 минут после назначения роли участника данных BLOB-объектов хранилища перед связыванием учетной записи хранения.
  • Приватный канал не настроено: если вы используете Приватный канал, настройте учетную запись хранения, чтобы разрешить доверенные службы Microsoft.

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

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

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

No. Включение BYOS не переносит существующие данные. Ваша учетная запись хранения хранит только новые данные, собранные после включения BYOS.

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

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

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

Да. BYOS требуется для изолированных сетевых сценариев, таких как при использовании Приватный канал Azure.

Да. BYOS поддерживает одновременное включение ключей, управляемых клиентом, и Приватный канал Azure.

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

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

Да. Вы несете ответственность за все затраты, связанные с хранилищем и сетями для учетной записи хранения BYOS.