De Azure Monitor Application Insights Agent implementeren op virtuele Azure-machines en virtuele-machineschaalsets van Azure

Het is nu eenvoudiger dan ooit om bewaking in te schakelen voor uw .NET- of Java-webtoepassingen die worden uitgevoerd op virtuele Azure-machines en virtuele-machineschaalsets van Azure. Profiteer van alle voordelen van het gebruik van Application Insights zonder uw code te wijzigen.

Dit artikel begeleidt u bij het inschakelen van Application Insights-bewaking met behulp van de Application Insights-agent en biedt voorlopige richtlijnen voor het automatiseren van het proces voor grootschalige implementaties.

Belangrijk

Java-toepassingen die worden uitgevoerd op Azure-VM's en VMSS worden bewaakt met Application Insights Java 3.0-agent, die algemeen beschikbaar is.

Belangrijk

Azure-toepassing Insights agent voor ASP.NET en ASP.NET Core-toepassingen die worden uitgevoerd op Virtuele Azure-VM's en VMSS is momenteel beschikbaar als openbare preview. Voor het bewaken ASP.NET toepassingen die on-premises worden uitgevoerd, gebruikt u de Azure-toepassing Insights Agent voor on-premises servers,die algemeen beschikbaar en volledig ondersteund is. De preview-versie voor Azure-VM's en VMSS wordt aangeboden zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Sommige functies worden mogelijk niet ondersteund en sommige hebben beperkte mogelijkheden. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.

Application Insights inschakelen

Er zijn twee manieren om toepassingsbewaking in te stellen voor virtuele Azure-machines en in virtuele-machineschaalsets van Azure gehoste toepassingen:

Automatische instrumentatie via Application Insights Agent

  • Deze methode is het gemakkelijkst in te stellen en er is geen geavanceerde configuratie vereist. Dit wordt vaak 'runtimebewaking' genoemd.

  • Voor virtuele Azure-machines en virtuele-machineschaalsets van Azure wordt u aangeraden dit bewakingsniveau minimaal in te stellen. Daarna kunt u op basis van uw specifieke scenario evalueren of handmatige instrumentatie nodig is.

Notitie

Automatische instrumentatie is momenteel alleen beschikbaar voor ASP.NET, ASP.NET Core door IIS gehoste toepassingen en Java. Gebruik een SDK voor het instrumenteren van Node.js Python-toepassingen die worden gehost op virtuele Azure-machines en virtuele-machineschaalsets.

ASP.NET/ASP.NET Core

Java

Op basis van code via SDK

ASP.NET/ASP.NET Core

  • Voor .NET-apps is deze benadering veel aanpasbaarer, maar hiervoor moet u een afhankelijkheid toevoegen aan de Application Insights SDK NuGet-pakketten. Deze methode betekent ook dat u de updates voor de nieuwste versie van de pakketten zelf moet beheren.

  • Als u aangepaste API-aanroepen moet maken om gebeurtenissen/afhankelijkheden bij te houden die niet standaard zijn vastgelegd met bewaking op basis van een agent, moet u deze methode gebruiken. Bekijk het artikel API voor aangepaste gebeurtenissen en metrische gegevens voor meer informatie.

    Notitie

    Alleen voor .NET-apps: als zowel bewaking op basis van een agent als handmatige instrumentatie op basis van SDK wordt gedetecteerd, worden alleen de handmatige instrumentatie-instellingen gehonoreerd. Dit is om te voorkomen dat dubbele gegevens worden verzonden. Zie de sectie probleemoplossing hieronder voor meer informatie over dit probleem.

Java

Als u aanvullende aangepaste telemetrie voor Java-toepassingen nodig hebt, bekijkt u wat er beschikbaar is,voegt u aangepaste dimensies toe of gebruikt u telemetrieprocessors.

Node.js

Gebruik de SDK Node.js uw toepassing te instrumenteren.

Python

Gebruik de SDKom Python-apps te bewaken.

Application Insights Agent voor .NET-toepassingen op virtuele Azure-machines beheren met behulp van PowerShell

Notitie

Voordat u de Application Insights Agent installeert, hebt u een connection string. Maak een nieuwe Application Insights Resource of kopieer de connection string vanuit een bestaande Application Insights-resource.

Notitie

Is PowerShell nieuw voor u? Bekijk de Aan de slag handleiding.

De Application Insights Agent installeren of bijwerken als een extensie voor virtuele Azure-machines

$publicCfgJsonString = '
{
  "redfieldConfiguration": {
    "instrumentationKeyMap": {
      "filters": [
        {
          "appFilter": ".*",
          "machineFilter": ".*",
          "virtualPathFilter": ".*",
          "instrumentationSettings" : {
            "connectionString": "InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          }
        }
      ]
    }
  }
}
';
$privateCfgJsonString = '{}';

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

Notitie

U kunt de Application Insights Agent installeren of bijwerken als een extensie voor meerdere Virtual Machines op schaal met behulp van een PowerShell-lus.

Application Insights Agent-extensie verwijderen van virtuele Azure-machine

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

De extensiestatus Insights Application Insights Agent opvragen voor een virtuele Azure-machine

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

Lijst met geïnstalleerde extensies voor virtuele Azure-machine op halen

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

U kunt ook geïnstalleerde extensies bekijken op de blade Virtuele Azure-machine in de portal.

Notitie

Controleer de installatie door te klikken op Live Metrics Stream in de Application Insights Resource die is gekoppeld aan de connection string die u hebt gebruikt om de Application Insights Agent Extension te implementeren. Als u gegevens vanaf meerdere locaties Virtual Machines, selecteert u de virtuele Azure-doelmachines onder Servernaam. Het kan tot een minuut duren voor de gegevens stromen.

Application Insights Agent voor .NET-toepassingen op virtuele-machineschaalsets van Azure beheren met behulp van PowerShell

De Application Insights Agent installeren of bijwerken als een extensie voor de virtuele-machineschaalset van Azure

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

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

Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoring" -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

Toepassingsbewakingsextensie verwijderen uit virtuele-machineschaalsets van 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

Extensiestatus van querytoepassingsbewaking voor virtuele-machineschaalsets van Azure

# Not supported by extensions framework

Lijst met geïnstalleerde extensies voor virtuele-machineschaalsets van Azure op halen

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

Problemen oplossen

Vind tips voor probleemoplossing voor Application Insights Monitoring Agent Extension voor .NET-toepassingen die worden uitgevoerd op virtuele Azure-machines en virtuele-machineschaalsets.

Notitie

.NET Core-, Node.js- en Python-toepassingen worden alleen ondersteund op virtuele Azure-machines en virtuele-machineschaalsets van Azure via handmatige instrumentatie op basis van SDK. De onderstaande stappen zijn daarom niet van toepassing op deze scenario's.

Uitvoer van extensie-uitvoering wordt vastgelegd in bestanden in de volgende mappen:

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

Volgende stappen