Application Insights для виртуальных машин Azure и масштабируемых наборов виртуальных машин
Включение мониторинга для ASP.NET и ASP.NET основных приложений, размещенных в IIS, работающих в Azure Виртуальные машины или Azure Масштабируемые наборы виртуальных машин, теперь проще, чем когда-либо. Вы можете получить все преимущества использования Application Insights без изменения кода.
В этой статье описано, как включить мониторинг Application Insights с помощью агента Application Insights. Он также предоставляет предварительные рекомендации по автоматизации процесса для крупномасштабных развертываний.
Включить Application Insights
Автоинструментация легко включить. Расширенная конфигурация не требуется.
Полный список поддерживаемых сценариев автоинструментации см. в статье "Поддерживаемые среды", "Языки" и поставщики ресурсов.
Примечание.
Автоинструментация доступна для ASP.NET, ASP.NET размещенных в IIS приложениях и Java. Используйте пакет SDK для инструментирования Node.js и приложений Python, размещенных на виртуальных машинах Azure и масштабируемых наборах виртуальных машин.
Агент Application Insights автоматически извлекает те же сигналы зависимостей из поля, что и пакет SDK. Дополнительные сведения см. в разделе автоколлекция зависимостей.
Перед установкой расширения агента Application Insights вам потребуется строка подключения. Создайте новый ресурс Application Insights или скопируйте строка подключения из существующего ресурса Application Insights.
Включение мониторинга для виртуальных машин
Вы можете использовать портал Azure или PowerShell для включения мониторинга для виртуальных машин.
Портал Azure
Вернитесь к ресурсу Application Insights на портале Azure. Скопируйте строка подключения в буфер обмена.
Перейдите на виртуальную машину. В разделе "Параметры" в меню слева выберите "Расширения и приложения>".
Выберите агент>Application Insights далее.
Вставьте строка подключения, скопированную на шаге 1, и выберите "Просмотр и создание".
PowerShell
Примечание.
Вы не знакомы с PowerShell? Ознакомьтесь с руководством по началу работы.
Установите или обновите агент Application Insights в качестве расширения для виртуальных машин Azure:
# define variables to match your environment before running
$ResourceGroup = "<myVmResourceGroup>"
$VMName = "<myVmName>"
$Location = "<myVmLocation>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"
$publicCfgJsonString = @"
{
"redfieldConfiguration": {
"instrumentationKeyMap": {
"filters": [
{
"appFilter": ".*",
"machineFilter": ".*",
"virtualPathFilter": ".*",
"instrumentationSettings" : {
"connectionString": "$ConnectionString"
}
}
]
}
}
}
"@
$privateCfgJsonString = '{}'
Set-AzVMExtension -ResourceGroupName $ResourceGroup -VMName $VMName -Location $Location -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -Version "2.8" -SettingString $publicCfgJsonString -ProtectedSettingString $privateCfgJsonString
Примечание.
Для более сложных развертываний в масштабе можно использовать цикл PowerShell для установки или обновления расширения агента Application Insights на нескольких виртуальных машинах.
Запрос состояния расширения агента Application Insights для виртуальных машин Azure:
Get-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name ApplicationMonitoringWindows -Status
Получите список установленных расширений для виртуальных машин Azure:
Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions"
Удалите расширение агента Application Insights с виртуальных машин Azure:
Remove-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name "ApplicationMonitoring"
Примечание.
Проверьте установку, выбрав Live Metrics Stream в ресурсе Application Insights, связанном с строка подключения, которую вы использовали для развертывания расширения агента Application Insights. Если вы отправляете данные из нескольких виртуальных машин, выберите целевые виртуальные машины Azure в разделе "Имя сервера". Для начала потока данных может потребоваться до минуты.
Включение мониторинга для масштабируемых наборов виртуальных машин
С помощью портал Azure или PowerShell можно включить мониторинг масштабируемых наборов виртуальных машин.
Портал Azure
Выполните предыдущие действия для виртуальных машин, но перейдите к масштабируемым наборам виртуальных машин вместо виртуальной машины.
PowerShell
Установите или обновите агент Application Insights в качестве расширения для масштабируемых наборов виртуальных машин:
# Set resource group, vmss name, and connection string to reflect your environment
$ResourceGroup = "<myVmResourceGroup>"
$VMSSName = "<myVmName>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"
$publicCfgHashtable =
@{
"redfieldConfiguration"= @{
"instrumentationKeyMap"= @{
"filters"= @(
@{
"appFilter"= ".*";
"machineFilter"= ".*";
"virtualPathFilter"= ".*";
"instrumentationSettings" = @{
"connectionString"= "$ConnectionString"
}
}
)
}
}
};
$privateCfgHashtable = @{};
$vmss = Get-AzVmss -ResourceGroupName $ResourceGroup -VMScaleSetName $VMSSName
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
# Note: Depending on your update policy, you might need to run Update-AzVmssInstance for each instance
Получите список установленных расширений для масштабируемых наборов виртуальных машин:
Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions"
Удалите расширение мониторинга приложений из масштабируемых наборов виртуальных машин:
# set resource group and vmss name to reflect your environment
$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"
Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows"
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
Устранение неполадок
Найдите советы по устранению неполадок расширения агента мониторинга Application Insights для приложений .NET, работающих на виртуальных машинах Azure и масштабируемых наборах виртуальных машин.
Если у вас возникли проблемы с развертыванием расширения, просмотрите выходные данные выполнения, записанные в файлы, найденные в следующих каталогах:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\
Если расширение успешно развернуто, но не удается просмотреть данные телеметрии, это может быть одна из следующих проблем, связанных с устранением неполадок агента:
- Конфликтующие библиотеки DLL в каталоге Bin приложения
- Конфликт с общей конфигурацией IIS
Тестирование подключения между узлом приложения и службой приема
Пакеты SDK и агенты Application Insights отправляют данные телеметрии для приема в качестве вызовов REST к конечным точкам приема. Вы можете проверить подключение с веб-сервера или хост-компьютера приложения к конечным точкам службы приема с помощью необработанных клиентов REST из Команд PowerShell или curl. Сведения об устранении неполадок с отсутствующими данными телеметрии приложений в Azure Monitor Application Insights.
Заметки о выпуске
2.8.44
- Обновлен пакет SDK для Application Insights .NET/.NET Core до версии 2.20.1 — красное поле.
- Включено сбор SQL-запросов.
- Включена поддержка проверки подлинности Microsoft Entra.
2.8.42
Обновлено пакет SDK для Application Insights .NET/.NET Core до версии 2.18.1 — красное поле.
2.8.41
Добавлена функция автоинструментации ASP.NET Core.