Udostępnij za pośrednictwem


Włączanie monitorowania aplikacji w usłudze aplikacja systemu Azure dla aplikacji .NET, Node.js, Python i Java

Autoinstrumentacja, nazywana również monitorowaniem środowiska uruchomieniowego, jest najprostszym sposobem na włączenie usługi Application Insights dla usługi Azure App Service, bez konieczności wprowadzania jakichkolwiek zmian w kodzie ani zaawansowanych konfiguracji. Na podstawie konkretnego scenariusza oceń, czy potrzebujesz bardziej zaawansowanego monitorowania za pomocą instrumentacji ręcznej.

Uwaga

31 marca 2025 r. zakończy się wsparcie dla mechanizmu pobierania klucza instrumentacji. Pobieranie klucza instrumentacji będzie nadal działać, ale nie będziemy już udostępniać aktualizacji ani zapewniać wsparcia dla tej funkcji. Przejście na łańcuchy połączeń w celu skorzystania z nowych funkcji.

Włącz usługę Application Insights

Ważne

W przypadku wykrycia zarówno monitorowania automatycznej instrumentacji, jak i ręcznej instrumentacji opartej na zestawie SDK, zostaną uznane tylko ustawienia instrumentacji ręcznej. To rozwiązanie uniemożliwia wysyłanie zduplikowanych danych. Aby dowiedzieć się więcej, zobacz Rozwiązywanie problemów z integracją usługi Application Insights z usługą Azure App Service.

Uwaga

Autoinstrumentacja w witrynie Azure Portal

  1. Wybierz pozycję Application Insights w menu nawigacji po lewej stronie usługi app Service, a następnie wybierz pozycję Włącz.

     Zrzut ekranu przedstawiający kartę Application Insights z wybraną funkcją Włącz.

  2. Utwórz nowy zasób lub wybierz istniejący zasób usługi Application Insights dla tej aplikacji.

    Uwaga

    Po wybraniu przycisku OK w celu utworzenia nowego zasobu zostanie wyświetlony monit o zastosowanie ustawień monitorowania. Wybranie pozycji Kontynuuj łączy nowy zasób usługi Application Insights z usługą aplikacji. Następnie usługa aplikacji zostanie ponownie uruchomiona.

    Zrzut ekranu pokazujący listę rozwijaną

  3. Po określeniu, który zasób ma być używany, możesz zdecydować, w jaki sposób Application Insights ma zbierać dane dla Twojej aplikacji na każdej platformie. Opcje kolekcji ASP.NET Core są zalecane lub wyłączone.

     Zrzut ekranu przedstawiający sekcję instrumentacji twojej aplikacji.

Ręczne uaktualnianie rozszerzenia monitorowania/agenta

Uaktualnianie z wersji 2.8.9 i nowszych

Uaktualnienie z wersji 2.8.9 odbywa się automatycznie bez żadnych dodatkowych akcji. Nowe bity monitorowania są dostarczane w tle do docelowej usługi aplikacji i są pobierane po ponownym uruchomieniu aplikacji.

Aby sprawdzić, która wersja rozszerzenia jest uruchomiona, przejdź do https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

Zrzut ekranu przedstawiający ścieżkę adresu URL, aby sprawdzić wersję uruchomionego rozszerzenia.

Uaktualnianie z wersji 1.0.0 — 2.6.5

Począwszy od wersji 2.8.9, używane jest wstępnie zainstalowane rozszerzenie witryny. Jeśli używasz starszej wersji, możesz zaktualizować za pomocą jednego z dwóch sposobów:

Jeśli uaktualnienie zostanie wykonane z wersji wcześniejszej niż 2.5.1, sprawdź, czy ApplicationInsights biblioteki DLL są usuwane z folderu bin aplikacji. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z integracją usługi Application Insights z usługą Azure App Service.

Konfigurowanie rozszerzenia monitorowania/agenta

Obecnie nie oferujemy opcji konfigurowania rozszerzenia monitorowania dla platformy ASP.NET Core.

Włączanie monitorowania po stronie klienta

Monitorowanie po stronie klienta jest domyślnie włączone dla aplikacji ASP.NET Core z kolekcją Zalecaną, niezależnie od tego, czy ustawienie aplikacji APPINSIGHTS_JAVASCRIPT_ENABLED jest obecne.

Jeśli chcesz wyłączyć monitorowanie po stronie klienta:

  1. Wybierz pozycję Ustawienia>Konfiguracja.

  2. W obszarze Ustawienia aplikacji utwórz Nowe ustawienie aplikacji z następującymi informacjami:

    • Nazwa: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Wartość: false
  3. Zapisz ustawienia. Uruchom ponownie aplikację.

Automatyzowanie monitorowania

Aby włączyć zbieranie danych telemetrycznych za pomocą usługi Application Insights, należy ustawić tylko następujące ustawienia aplikacji:

Zrzut ekranu przedstawiający ustawienia aplikacji usługi App Service z ustawieniami usługi Application Insights.

Definicje ustawień aplikacji

Nazwa ustawienia aplikacji Definicja Wartość
ApplicationInsightsAgent_EXTENSION_VERSION Główne rozszerzenie, które kontroluje monitorowanie środowiska uruchomieniowego. ~2 dla systemu Windows lub ~3 dla systemu Linux
XDT_MicrosoftApplicationInsights_Mode W trybie domyślnym są włączone tylko podstawowe funkcje, aby zapewnić optymalną wydajność. disabled lub recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Tylko w przypadku aplikacji ASP.NET Core. Umożliwia współdziałanie z zestawem SDK Application Insights. Ładuje rozszerzenie obok zestawu SDK i używa go do wysyłania danych telemetrycznych. (Wyłącza zestaw SDK usługi Application Insights). 1

Ustawienia aplikacji usługi App Service w ramach Azure Resource Manager

Ustawieniami aplikacji dla Azure App Service można zarządzać i konfigurować je przy użyciu szablonów Azure Resource Manager. Tej metody można użyć podczas wdrażania nowych zasobów usługi App Service za pomocą automatyzacji usługi Resource Manager lub modyfikowania ustawień istniejących zasobów.

Podstawowa struktura pliku JSON ustawień aplikacji dla zasobu usługi App Service:

      "resources": [
        {
          "name": "appsettings",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
          ],
          "tags": {
            "displayName": "Application Insights Settings"
          },
          "properties": {
            "key1": "value1",
            "key2": "value2"
          }
        }
      ]

Aby utworzyć szablon usługi Resource Manager z domyślnymi ustawieniami usługi Application Insights, rozpocznij proces tak, jakby utworzysz nową aplikację internetową z włączoną usługą Application Insights.

  1. W witrynie Azure Portal utwórz nowy zasób aplikacji internetowej z żądanymi informacjami. Włącz usługę Application Insights na karcie Monitorowanie i bezpieczne .

  2. Przejdź do pozycji Przeglądanie i tworzenie, a następnie wybierz pozycję Pobierz szablon do automatyzacji. Ta opcja generuje najnowszy szablon usługi Resource Manager ze skonfigurowanymi wszystkimi wymaganymi ustawieniami.

    Zrzut ekranu przedstawiający menu tworzenia aplikacji internetowej usługi App Service.

Uwaga

Poniższy przykładowy szablon dotyczy aplikacji .NET 8 (LTS) działającej w systemie Windows. Używa symboli zastępczych my-monitored-web-app dla nazwy aplikacji i aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e identyfikatora subskrypcji.

Nie zalecamy kopiowania i bezpośredniego używania go. Zamiast tego wygeneruj własny szablon na podstawie powyższych instrukcji.


Rozwiń, aby wyświetlić przykładowy szablon
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "subscriptionId": {
            "type": "string"
        },
        "resourceGroupName": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "alwaysOn": {
            "type": "bool"
        },
        "ftpsState": {
            "type": "string"
        },
        "autoGeneratedDomainNameLabelScope": {
            "type": "string"
        },
        "sku": {
            "type": "string"
        },
        "skuCode": {
            "type": "string"
        },
        "workerSize": {
            "type": "string"
        },
        "workerSizeId": {
            "type": "string"
        },
        "numberOfWorkers": {
            "type": "string"
        },
        "currentStack": {
            "type": "string"
        },
        "phpVersion": {
            "type": "string"
        },
        "netFrameworkVersion": {
            "type": "string"
        }
    },
    "variables": {},
    "resources": [
        {
            "apiVersion": "2022-03-01",
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "location": "[parameters('location')]",
            "tags": null,
            "dependsOn": [
                "microsoft.insights/components/my-monitored-web-app",
                "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
            ],
            "properties": {
                "name": "[parameters('name')]",
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference('microsoft.insights/components/my-monitored-web-app', '2015-05-01').ConnectionString]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        },
                        {
                            "name": "XDT_MicrosoftApplicationInsights_Mode",
                            "value": "default"
                        }
                    ],
                    "metadata": [
                        {
                            "name": "CURRENT_STACK",
                            "value": "[parameters('currentStack')]"
                        }
                    ],
                    "phpVersion": "[parameters('phpVersion')]",
                    "netFrameworkVersion": "[parameters('netFrameworkVersion')]",
                    "alwaysOn": "[parameters('alwaysOn')]",
                    "ftpsState": "[parameters('ftpsState')]"
                },
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "clientAffinityEnabled": true,
                "virtualNetworkSubnetId": null,
                "httpsOnly": true,
                "publicNetworkAccess": "Enabled",
                "autoGeneratedDomainNameLabelScope": "[parameters('autoGeneratedDomainNameLabelScope')]"
            },
            "resources": [
                {
                    "type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
                    "apiVersion": "2022-09-01",
                    "name": "[concat(parameters('name'), '/scm')]",
                    "properties": {
                        "allow": true
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('name'))]"
                    ]
                },
                {
                    "type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
                    "apiVersion": "2022-09-01",
                    "name": "[concat(parameters('name'), '/ftp')]",
                    "properties": {
                        "allow": true
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('name'))]"
                    ]
                }
            ]
        },
        {
            "apiVersion": "2018-11-01",
            "name": "[parameters('hostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('location')]",
            "kind": "",
            "tags": null,
            "dependsOn": [],
            "properties": {
                "name": "[parameters('hostingPlanName')]",
                "workerSize": "[parameters('workerSize')]",
                "workerSizeId": "[parameters('workerSizeId')]",
                "numberOfWorkers": "[parameters('numberOfWorkers')]",
                "zoneRedundant": false
            },
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            }
        },
        {
            "apiVersion": "2020-02-02-preview",
            "name": "my-monitored-web-app",
            "type": "microsoft.insights/components",
            "location": "centralus",
            "tags": null,
            "dependsOn": [
                "newWorkspaceTemplate"
            ],
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate",
                "Flow_Type": "Redfield",
                "Application_Type": "web",
                "WorkspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DefaultResourceGroup-CUS/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS"
            }
        },
        {
            "type": "Microsoft.Resources/deployments",
            "apiVersion": "2021-04-01",
            "name": "newWorkspaceTemplate",
            "resourceGroup": "DefaultResourceGroup-CUS",
            "subscriptionId": "[parameters('subscriptionId')]",
            "properties": {
                "mode": "Incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {},
                    "variables": {},
                    "resources": [
                        {
                            "apiVersion": "2020-08-01",
                            "name": "DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS",
                            "type": "Microsoft.OperationalInsights/workspaces",
                            "location": "centralus",
                            "properties": {}
                        }
                    ]
                }
            }
        }
    ]
}

Włączanie za pomocą programu PowerShell

Aby włączyć monitorowanie aplikacji za pomocą programu PowerShell, należy zmienić tylko podstawowe ustawienia aplikacji. Poniższy przykład umożliwia monitorowanie aplikacji dla witryny internetowej o nazwie my-monitored-web-app w grupie my-resource-groupzasobów . Konfiguruje dane, które mają być wysyłane do ciągu InstrumentationKey=012345678-abcd-ef01-2345-6789abcd połączenia.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Uwaga

W przypadku systemu Windows ustaw wartość ApplicationInsightsAgent_EXTENSION_VERSION na ~2.

W przypadku systemu Linux ustaw wartość ApplicationInsightsAgent_EXTENSION_VERSION na ~3.

$app = Get-AzWebApp -ResourceGroupName "my-resource-group" -Name "my-monitored-web-app" -ErrorAction Stop
$newAppSettings = @{} # Case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # Preserve non-Application-Insights application settings.
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"; # Set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~3"; # Enable the ApplicationInsightsAgent.
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop

Rozwiązywanie problemów

Zobacz dedykowany artykuł dotyczący rozwiązywania problemów.

Następne kroki