Application Insights für Azure-VMs und VM-Skalierungsgruppen

Die Überwachung der auf IIS gehosteten ASP.NET- und ASP.NET Core-Anwendungen auf Azure Virtual Machines oder in Azure Virtual Machine Scale Sets lässt sich jetzt einfacher denn je aktivieren. Profitieren Sie von allen Vorteilen der Verwendung von Application Insights, ohne den Code zu ändern.

In diesem Artikel werden Sie durch die Schritte zum Aktivieren der Application Insights-Überwachung mithilfe des Application Insights-Agents geführt. Er enthält auch einen vorläufigen Leitfaden für die Automatisierung des Prozesses bei umfangreichen Bereitstellungen.

Aktivieren von Application Insights

Die Aktivierung der automatischen Instrumentierung ist einfach. Eine erweiterte Konfiguration ist nicht erforderlich.

Eine vollständige Liste der unterstützten Szenarien für die automatische Instrumentierung finden Sie unter Unterstützte Umgebungen, Sprachen und Ressourcenanbieter.

Hinweis

Die automatische Instrumentierung ist derzeit nur für ASP.NET, für in IIS gehostete ASP.NET Core-Anwendungen und in Java verfügbar. Verwenden Sie ein SDK zum Instrumentieren von Node.js- und Python-Anwendungen, die auf Azure-VMs und in VM-Skalierungsgruppen gehostet werden.

Der Application Insights-Agent sammelt automatisch ohne Anpassungen die gleichen Abhängigkeitssignale wie das SDK. Weitere Informationen finden Sie unter Automatische Abhängigkeitssammlung.

Bevor Sie den Application Insights-Agent installieren, benötigen Sie eine Verbindungszeichenfolge. Erstellen Sie eine neue Application Insights-Ressource, oder kopieren Sie die Verbindungszeichenfolge aus einer vorhandenen Application Insights-Ressource.

Aktivieren der Überwachung für VMs

Die können das Azure-Portal oder PowerShell verwenden, um die Überwachung für VMs zu aktivieren.

Azure-Portal

  1. Navigieren Sie im Azure-Portal zu Ihrer Application Insights-Ressource. Kopieren Sie Ihre Verbindungszeichenfolge in die Zwischenablage.

    Screenshot that shows the connection string.

  2. Wechseln Sie zu Ihrer VM. Wählen Sie im Menü auf der linken Seite im Abschnitt Einstellungen die Option Erweiterungen + Anwendungen>Hinzufügen aus.

    Screenshot that shows the Extensions + applications pane with the Add button.

  3. Wählen Sie Application Insights-Agent>Weiter aus.

    Screenshot that shows the Install an Extension pane with the Next button.

  4. Fügen Sie die in Schritt 1 kopierte Verbindungszeichenfolge ein, und wählen Sie Überprüfen und erstellen aus.

    Screenshot that shows the Create tab with the Review + create button.

PowerShell

Hinweis

Kennen Sie PowerShell noch nicht? Sehen Sie sich den Leitfaden zu den ersten Schritten an.

Installieren oder Aktualisieren des Application Insights-Agents als Erweiterung für Azure-VMs:

# 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

Hinweis

Bei komplizierteren Bereitstellungen im großen Stil können Sie eine PowerShell-Schleife verwenden, um die Application Insights-Agent-Erweiterung auf mehreren VMs zu installieren oder zu aktualisieren.

Abfragen des Status der Application Insights-Agent-Erweiterung für eine Azure-VM:

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

Abrufen der Liste der installierten Erweiterungen für eine Azure-VM:

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

Deinstallieren der Application Insights-Agent-Erweiterung auf einer Azure-VM:

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

Hinweis

Überprüfen Sie die Installation, indem Sie innerhalb der Ressource „Application Insights“ die Option Live Metrics Stream auswählen, die der Verbindungszeichenfolge zugeordnet ist, die Sie zum Bereitstellen der Application Insights-Agent-Erweiterung verwendet haben. Wenn Sie Daten von mehreren VMs senden, wählen Sie unter Servername die Azure-Ziel-VM aus. Es kann bis zu einer Minute dauern, bis Daten zu fließen beginnen.

Aktivieren der Überwachung für VM-Skalierungsgruppen

Sie können das Azure-Portal oder PowerShell verwenden, um die Überwachung für VM-Skalierungsgruppen zu aktivieren.

Azure-Portal

Führen Sie die vorherigen Schritte für VMs aus, wechseln Sie jedoch zu Ihren VM-Skalierungsgruppen und nicht zu Ihrer VM.

PowerShell

Installieren oder Aktualisieren des Application Insights-Agents als eine Erweiterung für VM-Skalierungsgruppen:

# 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

Abrufen der Liste der installierten Erweiterungen für VM-Skalierungsgruppen:

Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions"

Deinstallieren der Erweiterung zur Anwendungsüberwachung in VM-Skalierungsgruppen:

# 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

Problembehandlung

Hier finden Sie Tipps zur Problembehandlung für die Application Insights Monitoring-Agent-Erweiterung für .NET-Anwendungen, die auf virtuellen Azure-Computern und in VM-Skalierungsgruppen ausgeführt wird.

Wenn Sie Probleme beim Bereitstellen der Erweiterung haben, überprüfen Sie die Ausführungsausgabe, die in Dateien in den folgenden Verzeichnissen protokolliert wird:

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

Wenn Ihre Erweiterung erfolgreich bereitgestellt wurde, aber keine Telemetriedaten angezeigt werden können, kann dies auf eines der folgenden Probleme zurückzuführen sein, die in der Agent-Problembehandlung behandelt werden:

  • In Konflikt stehende DLLs im Verzeichnis „bin“ einer App
  • Konflikt mit IIS-Freigabekonfiguration

Testen der Konnektivität zwischen Ihrem Anwendungshost und dem Erfassungsdienst

Application Insights SDKs und -Agents senden Telemetriedaten, die als REST-Aufrufe unserer Erfassungsendpunkte erfasst werden sollen. Sie können die Konnektivität Ihres Webservers oder Anwendungshostcomputers mit den Endpunkten des Erfassungsdiensts testen, indem Sie unformatierte REST-Clients über PowerShell- oder cURL-Befehle verwenden. Weitere Informationen finden Sie unter Problembehandlung bei fehlender Anwendungstelemetrie in Azure Monitor Application Insights.

Versionshinweise

2.8.44

  • Aktualisiert: .NET/.NET Core SDK für Application Insights auf 2.20.1 (red field).
  • SQL-Abfragesammlung aktiviert.
  • Aktivierte Unterstützung für die Microsoft Entra-Authentifizierung.

2.8.42

Aktualisiert: .NET/.NET Core-SDK für Application Insights auf 2.18.1 – rotes Feld.

2.8.41

Das ASP.NET Core-Feature zur automatischen Instrumentierung wurde hinzugefügt.

Nächste Schritte