Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu přidáte kolektor OpenTelemetry jako kontejner sidecar do linuxové aplikace (s vlastním kódem) ve službě Azure App Service. Vlastní kontejnery najdete v tématu Kurz: Konfigurace sidecar kontejneru pro vlastní kontejner ve službě Azure App Service.
Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.
Kontejnery sidecar ve službě App Service umožňují nasadit u linuxových aplikací další služby a funkce, aniž byste je úzce propojili s integrovaným nebo vlastním hlavním kontejnerem. Kontejnery sidecar běží vedle hlavního kontejneru aplikace ve stejném plánu služby App Service.
U každé linuxové aplikace ve službě App Service můžete přidat až devět podpůrných kontejnerů. Můžete například přidat monitorování, protokolování, konfiguraci a síťové služby jako sidecar kontejnery. Sajdkárna kolektoru OpenTelemetry je jedním z příkladů monitorování.
1. Nastavte potřebné prostředky
Nejprve vytvoříte zdroje, které kurz používá. Používají se pro tento konkrétní scénář a obecně se nevyžadují pro sidecar kontejnery.
V Azure Cloud Shellu spusťte následující příkazy. Nezapomeňte dodat
<environment-name>.git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd env new <environment-name> azd provisionPo zobrazení výzvy zadejte předplatné a oblast podle vašeho výběru. Příklad:
- Předplatné: Vaše předplatné.
- Oblast: (Evropa) Západní Evropa.
Po dokončení nasazení by se měl zobrazit následující výstup:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Azure container registry name = <registry-name> Managed identity resource ID = <managed-identity-resource-id> Managed identity client ID = <managed-identity-client-id> Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/<subscription-id>/resourceGroups/<group-name>
Zkopírujte tyto výstupní hodnoty pro pozdější použití. Najdete je také na portálu na stránkách pro správu příslušných zdrojů.
Poznámka
azd provisionpoužívá zahrnuté šablony k vytvoření následujících prostředků Azure:- Skupina prostředků založená na názvu prostředí.
-
registr kontejnerů se dvěma nasazenými imagemi:
- Kontejnerový obraz Nginx s modulem OpenTelemetry.
- Image kolektoru OpenTelemetry nakonfigurovaná pro export do služby Azure Monitor.
- Spravovaná identita přiřazená uživatelem s oprávněním
AcrPullke skupině prostředků (pro stažení imagí z registru) - pracovní prostor Log Analytics.
- komponenta Application Insights.
2. Vytvořte webovou aplikaci
V tomto kroku nasadíte šablonovou aplikaci ASP.NET Core. Spusť následující příkazy v Azure Cloud Shell. Nahraďte <app-name> za globálně unikátní název aplikace a eastus za vaši preferovanou oblast.
Vytvořte ukázkovou aplikaci:
cd ~ dotnet new webapp -n MyFirstAzureWebApp --framework net8.0 cd MyFirstAzureWebAppVytvořte skupinu zdrojů, plán Linux App Service a webovou aplikaci:
az group create --name myWebAppResourceGroup --location eastus az appservice plan create --name myWebAppPlan --resource-group myWebAppResourceGroup --sku P0v3 --is-linux az webapp create --name <app-name> --resource-group myWebAppResourceGroup --plan myWebAppPlan --runtime "DOTNETCORE:8.0"Sestavte aplikaci a zabalte obsah adresáře pro publikování:
dotnet publish --configuration Release --output publish cd publish zip -r ../app.zip . cd ..Nasaďte balíček.
az webapp deploy --name <app-name> --resource-group myWebAppResourceGroup --src-path app.zip --type zip
Po několika minutách je webová aplikace .NET nasazena do nové aplikace App Service jako MyFirstAzureWebApp.dll.
3. Přidejte kontejner sidecar
V této části přidáte do aplikace pro Linux sidecar kontejner.
Na webu Azure Portal přejděte na stránku pro správu aplikace.
Na stránce správy aplikace v nabídce vlevo vyberte Deployment Center.
Vyberte banner Chcete přidat kontejnery, které budou spuštěné společně s vaší aplikací? Kliknutím sem to můžete vyzkoušet.
Po opětovném načtení stránky vyberte kartu Kontejnery (nové).
Vyberte Přidat a nakonfigurujte nový kontejner následujícím způsobem:
- Název: otel-collector
- Zdroj image: Azure Container Registry
- Ověřování: Přihlašovací údaje správce
-
registr: Registr vytvořený pomocí
azd provision - Obrázek: otel-collector
- Štítek: nejnovější
Vyberte Použít.
4. Nakonfigurujte proměnné prostředí
V ukázkovém scénáři je sidecar otel-collector nakonfigurovaný tak, aby exportoval data OpenTelemetry do služby Azure Monitor, ale potřebuje připojovací řetězec jako proměnnou prostředí (viz konfigurační soubor OpenTelemetry pro image otel-collector).
Proměnné prostředí pro kontejnery konfigurujete stejně jako v jakékoli aplikaci App Service, a to konfigurací nastavení aplikace. Nastavení aplikace jsou přístupná pro všechny kontejnery v aplikaci.
Přejděte na stránku správy aplikace App Service.
V nabídce vlevo vyberte Proměnné prostředí.
Přidejte nastavení aplikace tak, že vyberete Přidat a nakonfigurujete ho následujícím způsobem:
- Název: APPLICATIONINSIGHTS_CONNECTION_STRING
-
Hodnota: Připojovací řetězec ve výstupu prvku
azd provision. Pokud jste relaci Cloud Shellu ztratili, najdete ji také na stránce Přehled prostředku Application Insight v části Připojovací řetězec.
Vyberte Použít, pak Použít a pak Potvrdit.
5. Nakonfigurujte instrumentaci při spuštění
V tomto kroku vytvoříte instrumentaci pro vaši aplikaci podle kroků popsaných v instrumentaci openTelemetry .NET s nulovým kódem.
Zpátky v Cloud Shellu vytvořte startup.sh s následujícími řádky.
cat > startup.sh << 'EOF' #!/bin/bash # Download the bash script curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O # Install core files sh ./otel-dotnet-auto-install.sh # Enable execution for the instrumentation script chmod +x $HOME/.otel-dotnet-auto/instrument.sh # Setup the instrumentation for the current shell session . $HOME/.otel-dotnet-auto/instrument.sh export OTEL_SERVICE_NAME="MyFirstAzureWebApp-Azure" export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318" export OTEL_TRACES_EXPORTER="otlp" export OTEL_METRICS_EXPORTER="otlp" export OTEL_LOGS_EXPORTER="otlp" # Run your application with instrumentation OTEL_SERVICE_NAME=myapp OTEL_RESOURCE_ATTRIBUTES=deployment.environment=staging,service.version=1.0.0 dotnet /home/site/wwwroot/MyFirstAzureWebApp.dll EOFTento soubor nasaďte do aplikace pomocí následujícího příkazu Azure CLI. Nahraďte
<app-name>jménem, které jste použili při vytváření aplikace.az webapp deploy --resource-group myWebAppResourceGroup --name <app-name> --src-path startup.sh --target-path /home/site/startup.sh --type staticNávod
Tento přístup nasazuje soubor startup.sh odděleně od aplikace. Konfigurace instrumentace je tak oddělená od kódu aplikace. K nasazení skriptu společně s vaší aplikací ale můžete použít jiné metody nasazení.
Zpět na stránce správy aplikace v nabídce vlevo vyberte Konfigurace.
Nastavte spouštěcí příkaz na /home/site/startup.sh. Je to stejná cesta, na kterou jste nasadili v předchozím kroku.
Vyberte Uložit a pak Pokračovat.
5. Ověřte v Application Insights
Sidecar otel-collector by teď měl exportovat data do Application Insights.
Zpátky na kartě
https://<app-name>.azurewebsites.netprohlížeče aktualizujte stránku několikrát, aby se vygenerovaly některé webové požadavky.Vraťte se na stránku přehledu skupiny prostředků a vyberte prostředek Application Insights, který vytvořil
azd up. Ve výchozích grafech byste teď měli vidět nějaká data.
Poznámka
V tomto velmi běžném scénáři monitorování je Application Insights jen jedním z cílů pro OpenTelemetry, které lze použít, například Jaeger, Prometheus a Zipkin.
6. Vyčistěte prostředky
Pokud už prostředí nepotřebujete, můžete odstranit skupiny prostředků a všechny související prostředky. Stačí spustit tyto příkazy v Cloud Shellu:
cd ~/MyFirstAzureWebApp
az group delete --name myWebAppResourceGroup --yes
cd ~/app-service-sidecar-tutorial-prereqs
azd down