Kurz: Konfigurace kontejneru sajdkáře pro aplikaci pro Linux ve službě Aplikace Azure Service
V tomto kurzu přidáte kolektor OpenTelemetry jako kontejner sajdkáře do linuxové aplikace (přineste si vlastní kód) ve službě Aplikace Azure Service. Vlastní kontejnery najdete v tématu Kurz: Konfigurace kontejneru sajdkáře pro vlastní kontejner ve službě Aplikace Azure Service.
Ve službě Aplikace Azure Service můžete pro každou linuxovou aplikaci přidat až devět kontejnerů sajdkáru. Kontejnery Sidecar umožňují nasadit do linuxových aplikací další služby a funkce, aniž by byly úzce propojené s hlavním (integrovaným) kontejnerem. Jako kontejnery sajdkáře můžete například přidat monitorování, protokolování, konfiguraci a síťové služby. Příkladem monitorování je kolektor OpenTelemetry.
Další informace o kontejneru na straně ve službě App Service najdete tady:
- Představujeme sajdkárna pro Aplikace Azure Service pro Linux: Teď je obecně dostupná
- Oznámení obecné dostupnosti rozšiřitelnosti sajdkáře ve službě Aplikace Azure Service
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
1. Nastavení potřebných prostředků
Nejprve vytvoříte prostředky, které kurz používá. Používají se pro tento konkrétní scénář a obecně se nevyžadují pro kontejnery sajdkáře.
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 provision
Po 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 prostředků.
Poznámka:
azd provision
používá zahrnuté šablony k vytvoření následujících prostředků Azure:- Skupina prostředků založená na názvu prostředí.
- Registr kontejneru se dvěma nasazenými imagemi:
- Obrázek 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
AcrPull
ke skupině prostředků (pro vyžádání imagí z registru) - Pracovní prostor služby Log Analytics
- Komponenta Application Insights .
2. Vytvoření webové aplikace
V tomto kroku nasadíte šablonu ASP.NET základní aplikaci. Zpátky v Azure Cloud Shellu spusťte následující příkazy. Nahraďte <app-name>
jedinečným názvem aplikace.
cd ~
dotnet new webapp -n MyFirstAzureWebApp --framework net8.0
cd MyFirstAzureWebApp
az webapp up --name <app-name> --os-type linux
Po několika minutách se tato webová aplikace .NET nasadí jako MyFirstAzureWebApp.dll do nové aplikace App Service.
3. Přidání kontejneru sajdkáře
V této části přidáte do aplikace pro Linux kontejner sajdkáře. Prostředí portálu se stále zavádí. Pokud ještě není k dispozici, pokračujte na kartě Použít šablonu ARM níže.
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 Zájem o přidání kontejnerů, které chcete spustit společně s vaší aplikací? Kliknutím sem ho můžete vyzkoušet.
Pokud se banner nezobrazuje, uživatelské rozhraní portálu se ještě pro vaše předplatné nezaregistruje. Místo toho vyberte kartu Použít šablonu ARM a pokračujte.
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
- Značka: nejnovější
Vyberte Použít.
4. Konfigurace proměnných prostředí
V ukázkovém scénáři je sajdkárna otel-collector nakonfigurovaná tak, aby exportovala 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 kolektoru otel-collector).
Proměnné prostředí pro kontejnery konfigurujete tak, že nakonfigurujete 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 .
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. Konfigurace instrumentace 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 EOF
Tento soubor nasaďte do aplikace pomocí následujícího příkazu Azure CLI. Pokud jste stále v adresáři ~/MyFirstAzureWebApp , nejsou potřeba žádné další parametry, protože
az webapp up
už jsou nastavené výchozí hodnoty pro skupinu prostředků a název aplikace.az webapp deploy --src-path startup.sh --target-path /home/site/startup.sh --type static
Tip
Tento přístup nasadí 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ěření v Application Insights
Sajdkárna otel-collector by teď měla exportovat data do Application Insights.
Zpátky na kartě
https://<app-name>.azurewebsites.net
prohlíž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ý
azd up
se vytvořil. Ve výchozím grafu 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ů OpenTelemetry, které můžete použít, například Jaeger, Prometheus a Zipkin.
6. Vyčištění prostředků
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 --yes
cd ~/app-service-sidecar-tutorial-prereqs
azd down
Nejčastější dotazy
- Jak kontejnery sajdkár zpracovávají interní komunikaci?
- Návody instrumentovat jiné zásobníky jazyka?
Jak kontejnery sajdkár zpracovávají interní komunikaci?
Kontejnery sajdkáře sdílejí stejného síťového hostitele jako hlavní kontejner, takže hlavní kontejner (a další kontejnery sajdkáře) se může spojit s libovolným portem na sajdkáře .localhost:<port>
Příklad startup.sh používá localhost:4318
přístup k portu 4318 na sajdkáře kolektoru.
V dialogovém okně Upravit kontejner se v současné době služba App Service nepoužívá pole Port. Můžete ho použít jako součást metadat sajdkáře, například k označení portu, na kterém sajdkáře naslouchá.
Návody instrumentovat jiné zásobníky jazyka?
Podobný přístup můžete použít k instrumentaci aplikací v jiných jazycích. Další informace najdete v dokumentaci k OpenTelemetry: