Application Insights para VMs do Azure e conjuntos de dimensionamento de máquinas virtuais
Habilitar o monitoramento para seus ASP.NET e ASP.NET aplicativos hospedados no Core IIS em execução nas Máquinas Virtuais do Azure ou nos Conjuntos de Dimensionamento de Máquinas Virtuais do Azure agora é mais fácil do que nunca. Obtenha todos os benefícios de usar o Application Insights sem modificar seu código.
Este artigo explica como habilitar o monitoramento do Application Insights usando o Application Insights Agent. Ele também fornece orientação preliminar para automatizar o processo para implantações em larga escala.
Ativar o Application Insights
A autoinstrumentação é fácil de ativar. A configuração avançada não é necessária.
Para obter uma lista completa dos cenários de autoinstrumentação suportados, consulte Ambientes suportados, idiomas e provedores de recursos.
Nota
A autoinstrumentação está disponível para ASP.NET, aplicativos hospedados no ASP.NET Core IIS e Java. Use um SDK para instrumentar aplicativos Node.js e Python hospedados em máquinas virtuais do Azure e conjuntos de dimensionamento de máquinas virtuais.
O Application Insights Agent coleta automaticamente os mesmos sinais de dependência prontos para uso que o SDK. Para saber mais, consulte Coleta automática de dependência.
Antes de instalar a extensão do Application Insights Agent, você precisará de uma cadeia de conexão. Crie um novo recurso do Application Insights ou copie a cadeia de conexão de um recurso existente do Application Insights.
Habilitar o monitoramento para máquinas virtuais
Você pode usar o portal do Azure ou o PowerShell para habilitar o monitoramento de VMs.
Portal do Azure
No portal do Azure, vá para o recurso do Application Insights. Copie a cadeia de conexão para a área de transferência.
Vá para a sua máquina virtual. Na seção Configurações no menu do lado esquerdo, selecione Extensões + Adicionar aplicativos>.
Selecione Agente do Application Insights em>seguida.
Cole a cadeia de conexão copiada na etapa 1 e selecione Revisar + criar.
PowerShell
Nota
Você é novo no PowerShell? Consulte o Guia de introdução.
Instale ou atualize o Application Insights Agent como uma extensão para máquinas virtuais do 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
Nota
Para implantações em escala mais complicadas, você pode usar um loop do PowerShell para instalar ou atualizar a extensão do Application Insights Agent em várias VMs.
Consulte o status da extensão do Application Insights Agent para máquinas virtuais do Azure:
Get-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name ApplicationMonitoringWindows -Status
Obtenha uma lista de extensões instaladas para máquinas virtuais do Azure:
Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions"
Desinstale a extensão do Application Insights Agent das máquinas virtuais do Azure:
Remove-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name "ApplicationMonitoring"
Nota
Verifique a instalação selecionando Live Metrics Stream dentro do recurso do Application Insights associado à cadeia de conexão usada para implantar a extensão do Application Insights Agent. Se você estiver enviando dados de várias máquinas virtuais, selecione as máquinas virtuais do Azure de destino em Nome do Servidor. Pode levar até um minuto para que os dados comecem a fluir.
Habilitar o monitoramento para conjuntos de dimensionamento de máquinas virtuais
Você pode usar o portal do Azure ou o PowerShell para habilitar o monitoramento de conjuntos de dimensionamento de máquinas virtuais.
Portal do Azure
Siga as etapas anteriores para VMs, mas vá para seus conjuntos de dimensionamento de máquina virtual em vez de sua VM.
PowerShell
Instale ou atualize o Application Insights Agent como uma extensão para conjuntos de dimensionamento de máquinas virtuais:
# 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
Obtenha uma lista de extensões instaladas para conjuntos de dimensionamento de máquinas virtuais:
Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions"
Desinstale a extensão de monitoramento de aplicativos dos conjuntos de dimensionamento de máquinas virtuais:
# 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
Resolução de Problemas
Encontre dicas de solução de problemas para a extensão do Application Insights Monitoring Agent para aplicativos .NET executados em máquinas virtuais do Azure e conjuntos de dimensionamento de máquinas virtuais.
Se você estiver tendo problemas para implantar a extensão, revise a saída de execução registrada em arquivos encontrados nos seguintes diretórios:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\
Se sua extensão foi implantada com êxito, mas você não consegue ver a telemetria, pode ser um dos seguintes problemas abordados na solução de problemas do agente:
- DLLs conflitantes no diretório bin de um aplicativo
- Conflito com a configuração compartilhada do IIS
Testar a conectividade entre o host do aplicativo e o serviço de ingestão
SDKs e agentes do Application Insights enviam telemetria para serem ingeridos como chamadas REST para nossos pontos de extremidade de ingestão. Você pode testar a conectividade do seu servidor Web ou máquina host de aplicativo para os pontos de extremidade do serviço de ingestão usando clientes REST brutos do PowerShell ou comandos curl. Consulte Solucionar problemas de telemetria de aplicativo ausente no Azure Monitor Application Insights.
Notas de versão
2.8.44
- Atualizado Application Insights .NET/.NET Core SDK para 2.20.1 - campo vermelho.
- Coleção de consultas SQL habilitada.
- Suporte habilitado para autenticação do Microsoft Entra.
2.8.42
Atualizado Application Insights .NET/.NET Core SDK para 2.18.1 - campo vermelho.
2.8.41
Adicionado o recurso de autoinstrumentação ASP.NET Core.
Próximos passos
- Saiba como implantar um aplicativo em um conjunto de dimensionamento de máquina virtual do Azure.
- Visão geral da disponibilidade