Megosztás a következőn keresztül:


Oktatóanyag: Sidecar-tároló konfigurálása Linux-alkalmazásokhoz a Azure-alkalmazás Service-ben

Ebben az oktatóanyagban egy OpenTelemetry-gyűjtőt ad hozzá oldalkocsi-tárolóként egy Linux -alkalmazáshoz (saját kóddal) a Azure-alkalmazás Service-ben. Egyéni tárolók esetén lásd: Oktatóanyag: Oldalkocsis tároló konfigurálása egyéni tárolóhoz a Azure-alkalmazás Szolgáltatásban.

A Azure-alkalmazás Szolgáltatásban minden Linux-alkalmazáshoz legfeljebb kilenc oldalkocsis tárolót adhat hozzá. A Sidecar-tárolók segítségével további szolgáltatásokat és funkciókat helyezhet üzembe a Linux-alkalmazásokban anélkül, hogy szorosan összekapcsolja őket a fő (beépített) tárolóval. Hozzáadhat például monitorozási, naplózási, konfigurációs és hálózati szolgáltatásokat oldalkocsi-tárolókként. Az OpenTelemetry gyűjtő oldalkocsija egy ilyen monitorozási példa.

Az App Service-ben található oldaltárolóval kapcsolatos további információkért lásd:

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

1. A szükséges erőforrások beállítása

Először hozza létre az oktatóanyag által használt erőforrásokat. Ezek az adott forgatókönyvhöz használatosak, és általában nem szükségesek az oldalkocsis tárolókhoz.

  1. Az Azure Cloud Shellben futtassa az alábbi parancsokat. Ügyeljen arra, hogy a <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
    
  2. Amikor a rendszer kéri, adja meg a választott előfizetést és régiót. Példa:

    • Előfizetés: Az Ön előfizetése.
    • Régió: (Európa) Nyugat-Európa.

    Az üzembe helyezés befejezésekor a következő kimenetnek kell megjelennie:

     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>
     
  3. Másolja ezeket a kimeneti értékeket későbbre. Ezeket a portálon, a megfelelő erőforrások felügyeleti oldalain is megtalálhatja.

    Feljegyzés

    azd provision a mellékelt sablonokkal hozza létre a következő Azure-erőforrásokat:

    • Egy erőforráscsoport a környezet neve alapján.
    • Tárolóregisztrációs adatbázis két telepített lemezképpel:
      • Egy Nginx-kép az OpenTelemetry modullal.
      • OpenTelemetria-gyűjtő lemezképe, amely az Azure Monitorba való exportálásra van konfigurálva.
    • Felhasználó által hozzárendelt felügyelt identitás az AcrPull erőforráscsoport engedélyével (képek lekérése a beállításjegyzékből).
    • Log Analytics-munkaterület.
    • Application Insights-összetevő.

2. Webalkalmazás létrehozása

Ebben a lépésben üzembe helyez egy sablont ASP.NET Core-alkalmazáshoz. Futtassa az alábbi parancsokat az Azure Cloud Shellben. Cserélje le <app-name> egy egyedi alkalmazásnévre.

cd ~
dotnet new webapp -n MyFirstAzureWebApp --framework net8.0
cd MyFirstAzureWebApp
az webapp up --name <app-name> --os-type linux

Néhány perc múlva ez a .NET-webalkalmazás üzembe lesz helyezve MyFirstAzureWebApp.dll egy új App Service-alkalmazásba.

3. Oldalkocsis tároló hozzáadása

Ebben a szakaszban egy sidecar-tárolót ad hozzá a Linux-alkalmazáshoz.

  1. Az Azure Portalon navigáljon az alkalmazás felügyeleti oldalára

  2. Az alkalmazás felügyeleti lapján, a bal oldali menüben válassza az Üzembe helyezési központ lehetőséget.

  3. Válassza ki azt a szalagcímet , amely tárolókat szeretne hozzáadni az alkalmazás mellett futtatáshoz? Kattintson ide, hogy kipróbálja.

  4. Amikor a lap újra betöltődik, válassza a Tárolók (új) lapot.

  5. Válassza az Új tároló hozzáadása és konfigurálása lehetőséget az alábbiak szerint:

    • Név: otel-collector
    • Kép forrása: Azure Container Registry
    • Hitelesítés: Rendszergazdai hitelesítő adatok
    • Beállításjegyzék: A beállításjegyzék által létrehozott beállításjegyzék azd provision
    • Kép: otel-collector
    • Címke: legújabb
  6. Válassza az Alkalmazás lehetőséget.

    Képernyőkép arról, hogyan konfigurálhat egy oldalkocsis tárolót egy webalkalmazás üzembehelyezési központjában.

4. Környezeti változók konfigurálása

A mintaforgatókönyv esetében az otel-collector oldalkocsi úgy van konfigurálva, hogy az OpenTelemetry-adatokat exportálja az Azure Monitorba, de környezeti változóként szüksége van a kapcsolati sztring (lásd az otel-collector rendszerkép OpenTelemetria konfigurációs fájlját).

Az alkalmazásbeállítások konfigurálásával konfigurálhatja a tárolók környezeti változóit, például bármely App Service-alkalmazást. Az alkalmazásbeállítások az alkalmazás összes tárolója számára elérhetők.

  1. Lépjen az App Service-alkalmazás felügyeleti lapjára.

  2. A bal oldali menüben válassza a Környezeti változók lehetőséget.

  3. Alkalmazásbeállítás hozzáadásához válassza a Hozzáadás és konfigurálás lehetőséget az alábbiak szerint:

    • Név: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Érték: A kapcsolati sztring a kimenetbenazd provision. Ha elvesztette a Cloud Shell-munkamenetet, azt az Application Insights-erőforrás Áttekintés lapján, a Kapcsolati sztring alatt is megtalálhatja.
  4. Válassza az Alkalmaz, majd az Alkalmaz, majd a Megerősítés lehetőséget.

    Képernyőkép egy webalkalmazás konfigurációs lapjáról két alkalmazásbeállítás hozzáadásával.

5. A rendszerállapot konfigurálása indításkor

Ebben a lépésben az OpenTelemetry .NET nullakódos rendszerállapotban ismertetett lépéseknek megfelelően hozza létre az alkalmazás rendszerállapotát.

  1. A Cloud Shellben hozzon létre startup.sh a következő sorokkal.

    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
    
  2. Telepítse ezt a fájlt az alkalmazásba az alábbi Azure CLI-paranccsal. Ha továbbra is a ~/MyFirstAzureWebApp könyvtárban van, akkor nincs szükség más paraméterekre, mert az webapp up már beállította az erőforráscsoport és az alkalmazás nevét.

    az webapp deploy --src-path startup.sh --target-path /home/site/startup.sh --type static
    

    Tipp.

    Ez a módszer az alkalmazástól elkülönítve telepíti a startup.sh fájlt. Így a rendszerállapot-konfiguráció eltér az alkalmazáskódtól. Azonban más üzembehelyezési módszereket is használhat a szkript alkalmazással együtt történő üzembe helyezéséhez.

  3. Az alkalmazás felügyeleti lapján, a bal oldali menüben válassza a Konfiguráció lehetőséget.

  4. Állítsa be az indítási parancsot a /home/site/startup.sh értékre. Ez ugyanaz az elérési út, mint az előző lépésben.

  5. Válassza a Mentés, majd a Folytatás lehetőséget.

    Képernyőkép, amely bemutatja, hogyan konfigurálhat egyéni indítási fájlt egy App Service-alkalmazáshoz az Azure Portalon.

5. Ellenőrzés az Application Insightsban

Az otel-collector oldalkocsinak most exportálnia kell az adatokat az Application Insightsba.

  1. A böngészőlapra https://<app-name>.azurewebsites.netvisszatérve frissítse a lapot néhányszor, és hozzon létre néhány webes kérést.

  2. Lépjen vissza az erőforráscsoport áttekintési oldalára, majd válassza ki a létrehozott Application Insights-erőforrást azd up . Most már látnia kell néhány adatot az alapértelmezett diagramokon.

    Képernyőkép az Application Insights lapról, amelyen az alapértelmezett diagramok adatai láthatók.

Feljegyzés

Ebben a nagyon gyakori monitorozási forgatókönyvben az Application Insights csak egyike a használható OpenTelemetry-céloknak, például a Jaegernek, a Prometheusnak és a Zipkinnek.

6. Erőforrások tisztítása

Ha már nincs szüksége a környezetre, törölheti az erőforráscsoportokat és az összes kapcsolódó erőforrást. Csak futtassa ezeket a parancsokat a Cloud Shellben:

cd ~/MyFirstAzureWebApp
az group delete --yes
cd ~/app-service-sidecar-tutorial-prereqs
azd down

Gyakori kérdések

Hogyan kezelik a sidecar-tárolók a belső kommunikációt?

A sidecar tárolók ugyanazt a hálózati gazdagépet üzemeltetik, mint a fő tároló, így a fő tároló (és a többi oldalkocsi tároló) bármilyen portot elérhet az oldalkocsin localhost:<port>. A példa startup.sh az otel-collector oldalkocsi 4318-ás portjának elérésére használjalocalhost:4318.

A Tároló szerkesztése párbeszédpanelen az App Service jelenleg nem használja a Port mezőt. Használhatja az oldalkocsi metaadatainak részeként, például annak jelzésére, hogy az oldalkocsi melyik portot figyeli.

Hogyan más nyelvi vermet?

Hasonló megközelítést használhat más nyelvi veremekben használt eszközalkalmazásokhoz. További információt az OpenTelemetry dokumentációjában talál:

További erőforrások