Einrichten von Application Insights für Azure Cloud Services mit PowerShellUsing PowerShell to set up Application Insights for Azure Cloud Services

Microsoft Azure kann zum Senden von Azure-Diagnosedaten an Azure Application Insights konfiguriert werden.Microsoft Azure can be configured to send Azure Diagnostics to Azure Application Insights. Die Diagnosedaten beziehen sich auf Azure Cloud Services und Azure VMs.The diagnostics relate to Azure Cloud Services and Azure VMs. Sie ergänzen die Telemetriedaten, die Sie mit dem Application Insights SDK aus der App senden.They complement the telemetry that you send from within the app using the Application Insights SDK. Als Teil der Automatisierung des Prozesses zum Erstellen neuer Ressourcen in Azure können Sie die Diagnose mit PowerShell konfigurieren.As part of automating the process of creating new resources in Azure, you can configure diagnostics using PowerShell.

Azure-VorlageAzure template

Wenn sich die Web-App in Azure befindet und Sie Ihre Ressourcen mit einer Azure Resource Manager-Vorlage erstellen, können Sie Application Insights konfigurieren, indem Sie dem Ressourcenknoten Folgendes hinzufügen:If the web app is in Azure and you create your resources using an Azure Resource Manager template, you can configure Application Insights by adding this to the resources node:

{
  resources: [
    /* Create Application Insights resource */
    {
      "apiVersion": "2015-05-01",
      "type": "microsoft.insights/components",
      "name": "nameOfAIAppResource",
      "location": "centralus",
      "kind": "web",
      "properties": { "ApplicationId": "nameOfAIAppResource" },
      "dependsOn": [
        "[concat('Microsoft.Web/sites/', myWebAppName)]"
      ]
    }
   ]
 } 
  • nameOfAIAppResource : Name für die Application Insights-RessourcenameOfAIAppResource - a name for the Application Insights resource
  • myWebAppName: die ID der Web-AppmyWebAppName - the ID of the web app

Aktivieren der Diagnoseerweiterung bei der Bereitstellung eines ClouddienstsEnable diagnostics extension as part of deploying a Cloud Service

Das Cmdlet New-AzureDeployment hat den ExtensionConfiguration-Parameter, der ein Array von Diagnosekonfigurationen verwendet.The New-AzureDeployment cmdlet has a parameter ExtensionConfiguration, which takes an array of diagnostics configurations. Diese können mit dem Cmdlet New-AzureServiceDiagnosticsExtensionConfig erstellt werden.These can be created using the New-AzureServiceDiagnosticsExtensionConfig cmdlet. Beispiel:For example:


    $service_package = "CloudService.cspkg"
    $service_config = "ServiceConfiguration.Cloud.cscfg"
    $diagnostics_storagename = "myservicediagnostics"
    $webrole_diagconfigpath = "MyService.WebRole.PubConfig.xml" 
    $workerrole_diagconfigpath = "MyService.WorkerRole.PubConfig.xml"

    $primary_storagekey = (Get-AzStorageKey `
     -StorageAccountName "$diagnostics_storagename").Primary
    $storage_context = New-AzStorageContext `
       -StorageAccountName $diagnostics_storagename `
       -StorageAccountKey $primary_storagekey

    $webrole_diagconfig = `
     New-AzureServiceDiagnosticsExtensionConfig `
      -Role "WebRole" -Storage_context $storageContext `
      -DiagnosticsConfigurationPath $webrole_diagconfigpath
    $workerrole_diagconfig = `
     New-AzureServiceDiagnosticsExtensionConfig `
      -Role "WorkerRole" `
      -StorageContext $storage_context `
      -DiagnosticsConfigurationPath $workerrole_diagconfigpath

    New-AzureDeployment `
      -ServiceName $service_name `
      -Slot Production `
      -Package $service_package `
      -Configuration $service_config `
      -ExtensionConfiguration @($webrole_diagconfig,$workerrole_diagconfig)

Aktivieren der Diagnoseerweiterung für einen vorhandenen ClouddienstEnable diagnostics extension on an existing Cloud Service

Verwenden Sie bei einem vorhandenen Dienst Set-AzureServiceDiagnosticsExtension.On an existing service, use Set-AzureServiceDiagnosticsExtension.


    $service_name = "MyService"
    $diagnostics_storagename = "myservicediagnostics"
    $webrole_diagconfigpath = "MyService.WebRole.PubConfig.xml" 
    $workerrole_diagconfigpath = "MyService.WorkerRole.PubConfig.xml"
    $primary_storagekey = (Get-AzStorageKey `
         -StorageAccountName "$diagnostics_storagename").Primary
    $storage_context = New-AzStorageContext `
        -StorageAccountName $diagnostics_storagename `
        -StorageAccountKey $primary_storagekey

    Set-AzureServiceDiagnosticsExtension `
        -StorageContext $storage_context `
        -DiagnosticsConfigurationPath $webrole_diagconfigpath `
        -ServiceName $service_name `
        -Slot Production `
        -Role "WebRole" 
    Set-AzureServiceDiagnosticsExtension `
        -StorageContext $storage_context `
        -DiagnosticsConfigurationPath $workerrole_diagconfigpath `
        -ServiceName $service_name `
        -Slot Production `
        -Role "WorkerRole"

Abrufen der aktuellen Konfiguration der DiagnoseerweiterungGet current diagnostics extension configuration


    Get-AzureServiceDiagnosticsExtension -ServiceName "MyService"

Entfernen der DiagnoseerweiterungRemove diagnostics extension


    Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService"

Wenn Sie die Diagnoseerweiterung entweder mit Set-AzureServiceDiagnosticsExtension oder New-AzureServiceDiagnosticsExtensionConfig ohne den „Role“-Parameter aktiviert haben, können Sie die Erweiterung mit Remove-AzureServiceDiagnosticsExtension ohne den „Role“-Parameter entfernen.If you enabled the diagnostics extension using either Set-AzureServiceDiagnosticsExtension or New-AzureServiceDiagnosticsExtensionConfig without the Role parameter, then you can remove the extension using Remove-AzureServiceDiagnosticsExtension without the Role parameter. Wenn beim Aktivieren der Erweiterung der „Role“-Parameter verwendet wurde, muss er auch zum Entfernen der Erweiterung verwendet werden.If the Role parameter was used when enabling the extension then it must also be used when removing the extension.

So entfernen Sie die Diagnoseerweiterung aus jeder einzelnen RolleTo remove the diagnostics extension from each individual role:


    Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService" -Role "WebRole"

Weitere InformationenSee also