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

  1. No portal do Azure, vá para o recurso do Application Insights. Copie a cadeia de conexão para a área de transferência.

    Captura de tela que mostra a cadeia de conexão.

  2. Vá para a sua máquina virtual. Na seção Configurações no menu do lado esquerdo, selecione Extensões + Adicionar aplicativos>.

    Captura de tela que mostra o painel Extensões + aplicativos com o botão Adicionar.

  3. Selecione Agente do Application Insights em>seguida.

    Captura de tela que mostra o painel Instalar uma extensão com o botão Avançar.

  4. Cole a cadeia de conexão copiada na etapa 1 e selecione Revisar + criar.

    Captura de ecrã que mostra o separador Criar com o botão Rever + 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