Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie voegt u een OpenTelemetry-collector toe als sidecarcontainer aan een Linux-app (bring-your-own-code) in Azure-app Service. Zie Zelfstudie: Een sidecarcontainer configureren voor aangepaste containers in Azure App Service voor aangepaste containers.
Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
Met Sidecar-containers in App Service kunt u extra services en functies implementeren in uw Linux-apps zonder deze nauw te koppelen aan de ingebouwde of aangepaste hoofdcontainer. De sidecar-containers worden uitgevoerd naast de hoofdtoepassingscontainer in hetzelfde App Service-plan.
U kunt maximaal negen sidecarcontainers toevoegen voor elke Linux-app in App Service. U kunt bijvoorbeeld bewakings-, logboekregistratie-, configuratie- en netwerkservices toevoegen als sidecarcontainers. Een sidecar van de OpenTelemetry-collector is een voorbeeld voor monitoring.
1. De benodigde resources instellen
Eerst maakt u de resources die in de zelfstudie worden gebruikt. Ze worden gebruikt voor dit specifieke scenario en zijn niet vereist voor sidecarcontainers in het algemeen.
Voer in Azure Cloud Shell de volgende opdrachten uit. Zorg ervoor dat u de
<environment-name>toevoegt.git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd env new <environment-name> azd provisionGeef het abonnement en de regio van uw keuze op wanneer u hierom wordt gevraagd. Voorbeeld:
- Abonnement: uw abonnement.
- Regio: (Europa) West-Europa.
Wanneer de implementatie is voltooid, ziet u de volgende uitvoer:
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>
Kopieer deze uitvoerwaarden voor later gebruik. U kunt ze ook vinden in de portal, op de beheerpagina's van de respectieve resources.
Opmerking
azd provisionmaakt gebruik van de opgenomen sjablonen om de volgende Azure-resources te maken:- Een resourcegroep op basis van de omgevingsnaam.
- Een containerregistry waarin twee images zijn geïmplementeerd:
- Een Nginx-image met de OpenTelemetry-module.
- Een OpenTelemetry collector-image die is geconfigureerd om te exporteren naar Azure Monitor.
- Een door de gebruiker toegewezen beheerde identiteit met de
AcrPullmachtiging voor de resourcegroep (om images uit het containerregister op te halen). - Een Log Analytics-werkruimte.
- Een Application Insights-onderdeel .
2. Een web-app maken
In deze stap rolt u een sjabloon-ASP.NET Core-toepassing uit. Voer de volgende commando's uit in Azure Cloud Shell. Vervang <app-name> door een wereldwijd unieke appnaam en eastus door je voorkeursregio.
Maak de voorbeeldtoepassing:
cd ~ dotnet new webapp -n MyFirstAzureWebApp --framework net8.0 cd MyFirstAzureWebAppStel de resourcegroep, het Linux App Service-plan en de webapp in:
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"Bouw de applicatie en pak de inhoud van de publishing-directory:
dotnet publish --configuration Release --output publish cd publish zip -r ../app.zip . cd ..Implementeer het pakket.
az webapp deploy --name <app-name> --resource-group myWebAppResourceGroup --src-path app.zip --type zip
Na een paar minuten wordt de .NET webapplicatie als MyFirstAzureWebApp.dll uitgerold naar de nieuwe App Service-app.
3. Een sidecarcontainer toevoegen
In deze sectie voegt u een sidecar-container toe aan uw Linux-app.
Navigeer in Azure Portal naar de beheerpagina van de app
Selecteer Deployment Center in het linkermenu op de beheerpagina van de app.
Selecteer de banner Geïnteresseerd in het toevoegen van containers die naast uw app moeten worden uitgevoerd? Klik hier om het te proberen.
Wanneer de pagina opnieuw wordt geladen, selecteer het tabblad Containers (nieuw).
Selecteer Toevoegen en configureer de nieuwe container als volgt:
- Naam: otel-collector
- Bron van image: Azure Container Registry
- Authenticatie: Beheerdersgegevens
-
register: het register aangemaakt door
azd provision - Afbeelding: otel-collector
- Tag: latest
Selecteer Toepassen.
4. Omgevingsvariabelen configureren
Voor het voorbeeldscenario is de sidecar van de otel-collector geconfigureerd voor het exporteren van de OpenTelemetry-gegevens naar Azure Monitor, maar het heeft de verbindingsreeks nodig als een omgevingsvariabele (zie het OpenTelemetry-configuratiebestand voor de otel-collector-installatiekopie).
U configureert omgevingsvariabelen voor de containers, zoals bij elke App Service-app, door app-instellingen te configureren. De app-instellingen zijn toegankelijk voor alle containers in de app.
Navigeer naar de beheerpagina van de App Service-app.
Selecteer omgevingsvariabelen in het linkermenu.
Voeg een app-instelling toe door Toevoegen te selecteren en deze als volgt te configureren:
- Naam: APPLICATIONINSIGHTS_CONNECTION_STRING
-
Waarde: Dit is de verbindingsreeks in de uitvoer van
azd provision. Als u de Cloud Shell-sessie bent kwijtgeraakt, kunt u deze ook vinden op de pagina Overzicht van de Application Insight-resource onder Verbindingsreeks.
Selecteer Toepassen en vervolgens Toepassen en vervolgens Bevestigen.
5. Instrumentatie bij opstarten configureren
In deze stap maakt u de instrumentatie voor uw app volgens de stappen die worden beschreven in de OpenTelemetry .NET zero-code-instrumentatie.
Terug in Cloud Shell maak je startup.sh met de volgende regels.
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 EOFImplementeer dit bestand in uw app met de volgende Azure CLI-opdracht. Vervang
<app-name>door de naam die je gebruikte bij het maken van de app.az webapp deploy --resource-group myWebAppResourceGroup --name <app-name> --src-path startup.sh --target-path /home/site/startup.sh --type staticAanbeveling
Met deze methode wordt het startup.sh-bestand afzonderlijk van uw toepassing geïmplementeerd. Op die manier is de instrumentatieconfiguratie gescheiden van uw toepassingscode. U kunt echter andere implementatiemethoden gebruiken om het script samen met uw toepassing te implementeren.
Selecteer Configuratie in het linkermenu op de beheerpagina van de app.
Stel de opstartopdracht in op /home/site/startup.sh. Het is hetzelfde pad waarnaar u in de vorige stap hebt geïmplementeerd.
Selecteer Opslaan en vervolgens Doorgaan.
5. Controleer in Application Insights
De sidecar van de otel-collector moet nu gegevens exporteren naar Application Insights.
Terug in het browsertabblad voor
https://<app-name>.azurewebsites.net, vernieuw de pagina een paar keer om enkele webaanvragen te genereren.Ga terug naar de overzichtspagina van de resourcegroep en selecteer vervolgens de Application Insights-resource die door
azd upis gemaakt. U ziet nu enkele gegevens in de standaardgrafieken.
Opmerking
In dit veelvoorkomende bewakingsscenario is Application Insights slechts een van de OpenTelemetry-doelen die u kunt gebruiken, zoals Jaeger, Prometheus en Zipkin.
6. Resources opschonen
Wanneer u de omgeving niet meer nodig hebt, kunt u de resourcegroepen en alle gerelateerde resources verwijderen. Voer deze opdrachten uit in de Cloud Shell:
cd ~/MyFirstAzureWebApp
az group delete --name myWebAppResourceGroup --yes
cd ~/app-service-sidecar-tutorial-prereqs
azd down