Application Insights para VMs do Azure e conjuntos de dimensionamento de máquinas virtuais

A habilitação do monitoramento de seus aplicativos ASP.NET e ASP.NET Core hospedados no IIS em execução nas Máquinas Virtuais do Azure ou Conjuntos de Dimensionamento de Máquinas Virtuais do Azure agora ficou mais fácil do que nunca. Obter todos os benefícios de usar 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 diretrizes preliminares para automatizar o processo em implantações em larga escala.

Habilitar o Application Insights

A instrumentação automática é fácil de habilitar. A configuração avançada não é necessária.

Para obter uma lista completa dos cenários de autoinstrumentação suportados, confira Ambientes, linguagens e provedores de recursos suportados.

Observação

A instrumentação automática está disponível para aplicativos hospedados no ASP.NET, ASP.NET Core IIS e Java. Use um SDK para instrumentar os aplicativos Node.js e Python hospedados em máquinas virtuais do Azure e em conjuntos de dimensionamento de máquinas virtuais.

O Application Insights Agent coleta automaticamente os mesmos sinais de dependência ao mesmo tempo que o SDK. Para saber mais, confira Coleção automática de dependência.

Antes de instalar a extensão 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 de máquinas virtuais

Você pode usar o portal do Azure ou 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. Acesse a sua máquina virtual. Na seção Configurações, no menu à esquerda, selecione Extensões + aplicativos>Adicionar.

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

  3. Selecione Application Insights Agent>Avançar.

    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 Examinar + criar.

    Captura de tela que mostra a guia Criar com o botão Examinar + criar.

PowerShell

Observação

Você é novo no PowerShell? Confira o Guia de introdução.

Instalar ou atualizar 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

Observação

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.

Consultar o status da extensão do Application Insights Agent para máquinas virtuais do Azure:

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

Obter uma lista de extensões instaladas de máquinas virtuais do Azure:

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

Desinstalar a extensão do Application Insights Agent de máquinas virtuais do Azure:

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

Observação

Verifique a instalação selecionando Live Metrics Stream no 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 de conjuntos de dimensionamento de máquinas virtuais

Você pode usar o portal do Azure ou PowerShell para habilitar o monitoramento de conjuntos de dimensionamento de máquinas virtuais.

Portal do Azure

Siga as etapas anteriores para VMs, mas navegue até os conjuntos de dimensionamento de máquinas virtuais em vez da VM.

PowerShell

Instalar ou atualizar 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

Obter 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"

Desinstalar a extensão de monitoramento de aplicativos de 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

Solução de problemas

Encontre dicas de solução de problemas para aplicativos de extensão do Application Insights Monitoring Agent for .NET em execução em máquinas virtuais do Azure e conjuntos de dimensionamento de máquinas virtuais.

Se você estiver tendo problemas para implantar a extensão, examine a saída de execução registrada nos arquivos encontrados nos seguintes diretórios:

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

Se a extensão foi implantada com êxito, mas você não consegue ver a telemetria, isso pode ser devido a um dos problemas a seguir abordados em 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

Os 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 servidor Web ou do computador host do aplicativo para os pontos de extremidade do serviço de ingestão usando clientes REST brutos do PowerShell ou comandos curl. Confira Solucionar problemas de telemetria de aplicativo ausente no Application Insights do Azure Monitor.

Notas de versão

2.8.44

  • Atualização do SDK do .NET/.NET Core do Application Insights para a 2.20.1 – Campo vermelho.
  • Coleção de consulta SQL habilitada.
  • Suporte habilitado para autenticação do Microsoft Entra.

2.8.42

Atualização .NET/SDK do .NET Core do Application Insights para 2.18.1 - red field.

2.8.41

Foi adicionado o recurso de instrumentação automática do ASP.NET Core.

Próximas etapas