Развертывание агента Application Insights службы Azure Monitor на виртуальных машинах Azure и в их масштабируемых наборах

Включить мониторинг веб-приложений на основе .NET или Java, работающих на виртуальных машинах Azure и в масштабируемых наборах виртуальных машин Azure, теперь проще, чем когда бы то ни было. Вы можете получить все преимущества использования Application Insights без изменения кода.

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

Важно!

Приложения на основе Java, работающие на виртуальных машинах Azure и в VMSS, отслеживаются с помощью агента Application Insights для Java 3.0 , для которого выпущена общедоступная версия.

Важно!

Агент Azure Application Insights для приложений ASP.NET и ASP.NET Core, работающих на виртуальных машинах Azure и в VMSS, в настоящее время находится на этапе общедоступной предварительной версии. Для мониторинга приложений ASP.NET, работающих в локальной среде, используйте агент Azure Application Insights для локальных серверов, для которого выпущена общедоступная версия и который полностью поддерживается. Предварительная версия для виртуальных машин Azure и VMSS предоставляется без соглашения об уровне обслуживания. Ее не рекомендуется использовать для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования предварительных выпусков Microsoft Azure.

Включение Application Insights

Можно легко включить автоматическое инструментирование без расширенной настройки.

Примечание

Автоматическое инструментирование доступно для приложений ASP.NET, ASP.NET Core и Java, размещенных в среде IIS. Используйте пакет SDK для инструментирования приложений, Node.js и Python, размещенных на виртуальных машинах Azure и в масштабируемых наборах виртуальных машин.

Агент Application Insights выполняет автоматический сбор тех же сигналов зависимостей, что и пакет SDK для .NET. Дополнительные сведения см. в разделе Автоматический сбор зависимостей.

Управление агентом Application Insights для приложений .NET на виртуальных машинах Azure с помощью PowerShell

Примечание

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

Примечание

Еще не работали с PowerShell? Ознакомьтесь с руководством по началу работы.

Установка или обновление агента Application Insights как расширения для виртуальных машин Azure:

$publicCfgJsonString = '
{
  "redfieldConfiguration": {
    "instrumentationKeyMap": {
      "filters": [
        {
          "appFilter": ".*",
          "machineFilter": ".*",
          "virtualPathFilter": ".*",
          "instrumentationSettings" : {
            "connectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/" # Application Insights connection string, create new Application Insights resource if you don't have one. https://portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/microsoft.insights%2Fcomponents
          }
        }
      ]
    }
  }
}
';
$privateCfgJsonString = '{}';

Set-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Location "<myVmLocation>" -Name "ApplicationMonitoring" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -Version "2.8" -SettingString $publicCfgJsonString -ProtectedSettingString $privateCfgJsonString

Примечание

Вы можете установить или обновить агент Application Insights как расширение на нескольких виртуальных машинах в нужном масштабе с помощью цикла PowerShell.

Удаление расширения агента Application Insights с виртуальной машины Azure:

Remove-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name "ApplicationMonitoring"

Запрос состояния расширения агента Application Insights для виртуальной машины Azure:

Get-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name ApplicationMonitoring -Status

Получение списка установленных расширений для виртуальной машины Azure:

Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions"

# Name              : ApplicationMonitoring
# ResourceGroupName : <myVmResourceGroup>
# ResourceType      : Microsoft.Compute/virtualMachines/extensions
# Location          : southcentralus
# ResourceId        : /subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions/ApplicationMonitoring

Вы можете также просмотреть установленные расширения в разделе виртуальной машины Azure на портале.

Примечание

Проверьте установку, щелкнув "Live Metrics Stream" в ресурсе Application Insights, связанном со строкой подключения, которая была указана при развертывании расширения агента Application Insights. В случае, если данные отправляются из нескольких виртуальных машин, выберите целевые виртуальные машины Azure в разделе "Имя сервера". Передача потока данных начнется через минуту.

Управление агентом Application Insights для приложений .NET в масштабируемых наборах виртуальных машин Azure с помощью PowerShell

Установка или обновление агента Application Insights как расширения для масштабируемого набора виртуальных машин Azure:

$publicCfgHashtable =
@{
  "redfieldConfiguration"= @{
    "instrumentationKeyMap"= @{
      "filters"= @(
        @{
          "appFilter"= ".*";
          "machineFilter"= ".*";
          "virtualPathFilter"= ".*";
          "instrumentationSettings" = @{
            "connectionString"= "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/" # Application Insights connection string, create new Application Insights resource if you don't have one. https://portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/microsoft.insights%2Fcomponents
          }
        }
      )
    }
  }
};
$privateCfgHashtable = @{};

$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"

Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -TypeHandlerVersion "2.8" -Setting $publicCfgHashtable -ProtectedSetting $privateCfgHashtable

Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss.Name -VirtualMachineScaleSet $vmss

# Note: depending on your update policy, you might need to run Update-AzVmssInstance for each instance

Удаление расширения для мониторинга приложений из масштабируемых наборов виртуальных машин Azure:

$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"

Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoring"

Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss.Name -VirtualMachineScaleSet $vmss

# Note: depending on your update policy, you might need to run Update-AzVmssInstance for each instance

Запрос состояния расширения для мониторинга приложений для масштабируемых наборов виртуальных машин Azure:

# Not supported by extensions framework

Получение списка установленных расширений для масштабируемых наборов виртуальных машин Azure:

Get-AzResource -ResourceId /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions

# Name              : ApplicationMonitoringWindows
# ResourceGroupName : <myResourceGroup>
# ResourceType      : Microsoft.Compute/virtualMachineScaleSets/extensions
# Location          :
# ResourceId        : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions/ApplicationMonitoringWindows

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

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

Примечание

Приложения .NET Core, Node.js и Python, работающие на виртуальных машинах Azure и в масштабируемых наборах виртуальных машин Azure, поддерживаются только с помощью инструментирования вручную посредством пакета SDK, поэтому приведенные ниже действия не применимы к этим сценариям.

Выходные данные выполнения расширения регистрируются в файле, расположенном в следующих каталогах:

C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\

Заметки о выпуске

2.8.44

  • Обновлено ApplicationInsights .NET / пакет SDK для .NET Core до версии 2.20.1-redfield.
  • Включено сбор SQL-запросов.
  • Включена поддержка проверки подлинности Azure Active Directory.

2.8.42

  • Обновлено ApplicationInsights .NET / пакет SDK для .NET Core до версии 2.18.1-redfield.

2.8.41

  • Добавлена возможность автоматического инструментирования ASP.NET Core.

Дальнейшие действия