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


Обработка геолокации и IP-адресов

В этой статье объясняется, как работает поиск геолокации и обработка IP-адресов в Application Insights.

Поведение по умолчанию

По умолчанию IP-адреса временно собираются, но не хранятся.

При отправке телеметрии в Azure IP-адрес используется в поиске географического расположения. Результат используется для заполнения полей client_Cityи client_StateOrProvinceclient_CountryOrRegion. Затем адрес удаляется, а 0.0.0.0 записывается в поле client_IP.

Типы данных телеметрии

  • Данные телеметрии браузера: Application Insights собирает IP-адрес отправителя. Конечная точка приема вычисляет IP-адрес.
  • Данные телеметрии сервера. Модуль телеметрии Application Insights временно собирает IP-адрес клиента, если X-Forwarded-For заголовок не задан. Если входящий список IP-адресов содержит несколько элементов, последний IP-адрес используется для заполнения полей географического расположения.

Это поведение позволяет избежать ненужных сбор данных персональных данных и сведений о расположении IP-адресов.

Если IP-адреса не собираются, город и другие атрибуты географического расположения также не собираются.

Хранение данных IP-адресов

Предупреждение

По умолчанию и наша рекомендация заключается в том, чтобы не собирать IP-адреса. Если вы переопределите это поведение, убедитесь, что коллекция не нарушает какие-либо требования соответствия или локальные правила.

Дополнительные сведения об обработке персональных данных см. в руководстве по персональным данным.

Чтобы включить сбор и хранение IP-адресов, свойству DisableIpMasking компонента Application Insights необходимо присвоить значение true.

Параметры для задания этого свойства:

Шаблон ARM

{
       "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<resource-name>",
       "name": "<resource-name>",
       "type": "microsoft.insights/components",
       "location": "westcentralus",
       "tags": {
              
       },
       "kind": "web",
       "properties": {
              "Application_Type": "web",
              "Flow_Type": "Redfield",
              "Request_Source": "IbizaAIExtension",
              // ...
              "DisableIpMasking": true
       }
}

Портал

Если необходимо изменить поведение только для одного ресурса Application Insights, используйте портал Azure.

  1. Перейдите к ресурсу Application Insights и выберите шаблон экспорта службы автоматизации>.

  2. Выберите Развернуть.

    Снимок экрана с кнопкой

  3. Выберите Редактировать шаблон.

    Снимок экрана: кнопка

    Примечание.

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

  4. В шаблоне JSON найдите properties внутри resources. Добавьте запятую в последнее поле JSON, а затем добавьте следующую новую строку: "DisableIpMasking": true Затем выберите Сохранить.

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

  5. Выберите Просмотреть и создать>Создать.

    Примечание.

    При появлении окна "Сбой развертывания" просмотрите сведения о развертывании, относящиеся к типу microsoft.insights/components, и проверьте состояние. Если эта операция выполнена успешно, значит, изменения, внесенные в DisableIpMasking, были развернуты.

  6. После завершения развертывания будут записаны новые данные телеметрии.

    При повторном выборе и изменении шаблона только шаблон по умолчанию без только что добавленного свойства. Если вы не видите данные IP-адреса и хотите убедиться, что свойство "DisableIpMasking": true задано, выполните следующие команды PowerShell.

    # Replace `Fabrikam-dev` with the appropriate resource and resource group name.
    # If you aren't using Azure Cloud Shell, you need to connect to your Azure account
    # Connect-AzAccount 
    $AppInsights = Get-AzResource -Name 'Fabrikam-dev' -ResourceType 'microsoft.insights/components' -ResourceGroupName 'Fabrikam-dev'
    $AppInsights.Properties
    

    В результате будет возвращен список свойств. Одним из свойств должно быть DisableIpMasking: true. Если перед развертыванием нового свойства с помощью Azure Resource Manager выполните команды PowerShell, это свойство не существует.

REST API

Следующие полезные данные REST API делают те же изменения:

PATCH https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/microsoft.insights/components/<resource-name>?api-version=2018-05-01-preview HTTP/1.1
Host: management.azure.com
Authorization: AUTH_TOKEN
Content-Type: application/json
Content-Length: 54

{
       "location": "<resource location>",
       "kind": "web",
       "properties": {
              "Application_Type": "web",
              "DisableIpMasking": true
       }
}

PowerShell

Командлет PowerShell Update-AzApplicationInsights может отключить маскирование IP-адресов с DisableIPMasking помощью параметра.

Update-AzApplicationInsights -Name "aiName" -ResourceGroupName "rgName" -DisableIPMasking:$true

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

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

  • Дополнительные сведения о сборе персональных данных в Azure Monitor.
  • Узнайте, как задать IP-адрес пользователя с помощью OpenTelemetry.