Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie einen OpenTelemetry-Sammler als Sidecar-Container zu einer benutzerdefinierten Linux-Container-App in Azure App Service hinzufügen.
Mit Sidecar-Containern in App Service können Sie zusätzliche Dienste und Features für Ihre Linux-Apps bereitstellen, ohne sie eng mit dem integrierten oder benutzerdefinierten Hauptcontainer zu koppeln. Die Sidecar-Container werden neben dem Hauptanwendungscontainer im selben App Service-Plan ausgeführt.
Sie können bis zu neun Sidecar-Container für jede Linux-App in App Service hinzufügen. Sie können beispielsweise Überwachungs-, Protokollierungs-, Konfigurations- und Netzwerkdienste als Sidecar-Container hinzufügen. Ein OpenTelemetry-Collector-Sidecar ist ein Beispiel für die Überwachung.
Weitere Informationen zu Bring-your-own-Code-Linux-Apps finden Sie im Tutorial: Konfigurieren eines Sidecar-Containers für eine Linux-App in Azure App Service.
Voraussetzungen
-
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Sie können die Befehle in diesem Lernprogramm mithilfe von Azure Cloud Shell ausführen, einer interaktiven Shell, die Sie über Ihren Browser verwenden, um mit Azure-Diensten zu arbeiten. So verwenden Sie Cloud Shell:
Wählen Sie die folgende Schaltfläche " Cloud Shell starten " aus, oder wechseln Sie zum https://shell.azure.com Öffnen von Cloud Shell in Ihrem Browser.
Melden Sie sich bei Azure bei Bedarf an, und stellen Sie sicher, dass Sie sich in der Bash-Umgebung von Cloud Shell befinden.
Wählen Sie "Kopieren " in einem beliebigen Codeblock aus, fügen Sie den Code in Cloud Shell ein, und führen Sie ihn aus.
Die
azd
Befehle in diesem Lernprogramm verwenden die Azure Developer CLI, ein Open-Source-Tool, das die Bereitstellung und Bereitstellung von App-Ressourcen in Azure beschleunigt.
1. Einrichten der Tutorial-Ressourcen
Um das Beispiel-Repository zu klonen und die Ressourcen für dieses Lernprogramm zu erstellen, führen Sie die folgenden Befehle in Cloud Shell aus. Wenn Sie dazu aufgefordert werden, wählen Sie das Azure-Abonnement und die Azure-Region aus, die Sie verwenden möchten.
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs
cd app-service-sidecar-tutorial-prereqs
azd env new my-sidecar-env
azd provision
Der azd provision
Befehl verwendet die enthaltenen Vorlagen, um eine Azure-Ressourcengruppe my-sidecar-env_group
zu erstellen, die die folgenden Azure-Ressourcen enthält:
- Eine Containerregistrierung mit zwei Repositorys mit den folgenden Images:
- Ein
nginx
Bild mit dem OpenTelemetry-Modul. - Ein
otel-collector
OpenTelemetry Collector-Image, das für den Export in Azure Monitor konfiguriert ist.
- Ein
- Ein Log Analytics-Arbeitsbereich.
- Eine Application Insights-Komponente.
- Eine vom Benutzer zugewiesene verwaltete Identität genannt
id-my-sidecar-env_group
.
Wenn die Bereitstellung abgeschlossen ist, sollte ein Ergebnis angezeigt werden, das dem folgenden Beispiel ähnelt:
Success!
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=aaaaaaaa-0b0b-1c1c-2d2d-333333333333;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=00001111-aaaa-2222-bbbb-3333cccc4444
Azure container registry name = acro2lc774l6vjgg
Managed identity resource ID = /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id-my-sidecar-env_group
Managed identity client ID = 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group
Kopieren und speichern Sie den Wert für APPLICATIONINSIGHTS_CONNECTION_STRING
zur späteren Verwendung in diesem Lernprogramm.
Wählen Sie den Link aus Open resource group in the portal
, um die bereitgestellte Ressourcengruppe im Azure-Portal zu öffnen.
2. Erstellen einer Sidecar-fähigen App
Erstellen Sie in der Ressourcengruppe im Azure-Portal eine benutzerdefinierte Linux-Container-App mit Sidecar-Unterstützung, und konfigurieren Sie den Hauptcontainer.
Wählen Sie auf der Seite der Ressourcengruppe im Azure-Portal "Erstellen" aus.
Suchen Sie auf der Marketplace-Seite nach Web App, wählen Sie den Abwärtspfeil neben " Erstellen " auf der Web App-Kachel aus, und wählen Sie "Web App" aus.
Geben Sie auf der Registerkarte " Grundlagen " der Seite " Web App erstellen " die folgenden Informationen an:
- Name: Geben Sie einen eindeutigen Namen für die Web-App ein.
- Veröffentlichen: Container auswählen.
- Betriebssystem: Wählen Sie Linux aus.
- Region: Wählen Sie dieselbe Region aus, für
azd provision
die Sie sich entschieden haben. - Linux-Plan: Wählen Sie den bereitgestellten (neuen) App Service-Plan aus.
Behalten Sie die restlichen Einstellungen bei, und wählen Sie oben auf der Seite die Registerkarte "Container " aus.
Geben Sie auf der Registerkarte "Container " die folgenden Informationen an:
- Sidecar-Unterstützung: Auf Erweiterte Konfiguration mit aktivierter Sidecar-Unterstützung gesetzt.
- Image-Quelle: Wählen Sie Azure Container Registry.
- Name: Stellen Sie sicher, dass der Hauptteil angezeigt wird.
- Registrierungsdatenbank: Wählen Sie die von
azd provision
erstellte Registrierungsdatenbank. - Authentifizierung: Wählen Sie verwaltete Identität aus.
- Identität: Wählen Sie die verwaltete Identität, die über
azd provision
erstellt wurde. - Bild: Geben Sie "nginx" ein.
- Tag: Geben Sie "neueste" ein.
- Port: Geben Sie 80 ein, falls noch nicht festgelegt.
Hinweis
Diese Einstellungen werden in Sidecar-fähigen Apps anders konfiguriert als in Apps, die für Sidecars nicht aktiviert sind. Weitere Informationen finden Sie unter Was sind die Unterschiede bei benutzerdefinierten Containern mit Sidecar-Unterstützung?
Wählen Sie "Überprüfen" und "Erstellen" aus, und wenn die Überprüfung erfolgreich ist, wählen Sie "Erstellen" aus.
Wählen Sie nach Abschluss der Bereitstellung die Option Zu Ressource wechseln aus.
Öffnen Sie auf der Seite Ihrer App die URL neben " Standarddomäne"
https://<app-name>.azurewebsites.net
in einer neuen Browserregisterkarte, um die Standardmäßige nginx-Seite anzuzeigen.
3. Hinzufügen eines Sidecar-Containers zur App
Fügen Sie Ihrer benutzerdefinierten Linux-Container-App einen Sidecar-Container hinzu.
Wählen Sie auf der Seite der App im Azure-Portal im Linken Navigationsmenü unter "Bereitstellung" die Option "Bereitstellungscenter" aus. Auf der Seite "Bereitstellungscenter " werden alle Container in der App angezeigt, derzeit nur der Hauptcontainer.
Wählen Sie "Benutzerdefinierten Containerhinzufügen>" aus.
Füllen Sie im Bereich "Container hinzufügen " die folgenden Informationen aus:
- Name: Geben Sie otel-Collector ein.
- Bildquelle: Azure Container Registry auswählen.
- Registrierungsdatenbank: Wählen Sie die von
azd provision
erstellte Registrierungsdatenbank. - Authentifizierung: Wählen Sie verwaltete Identität aus.
- Identität: Unter User-zugewiesen, wählen Sie die von
azd provision
erstellte verwaltete Identität aus. - Bild: Geben Sie otel-collector ein.
- Bild-Tag: Geben Sie "neueste" ein.
- Port: Geben Sie 4317 ein.
Wählen Sie Übernehmen.
Es gibt nun zwei Container im Bereitstellungscenter mit der Bezeichnung "Main " und "Sidecar". Eine App muss über einen Hauptcontainer verfügen und kann mehrere Neben-Container besitzen.
4. Konfigurieren von Umgebungsvariablen
Im Beispielszenario ist das otel-collector
Sidecar so konfiguriert, dass die OpenTelemetry-Daten mithilfe der Verbindungszeichenfolge als Umgebungsvariable in Azure Monitor exportiert werden. Weitere Informationen finden Sie in der OpenTelemetry-Konfigurationsdatei für das Otel-Collector-Image.
Konfigurieren Sie die Umgebungsvariable für den Container, indem Sie App-Einstellungen für die App konfigurieren. Die App-Einstellungen sind für alle Container in der App zugänglich.
Wählen Sie auf der Seite der App im Azure-Portal unter "Einstellungen" im linken Navigationsmenü "Umgebungsvariablen" aus.
Wählen Sie auf der Registerkarte "App-Einstellungen" der Seite "Umgebungsvariablen" die Option "Hinzufügen" aus.
Geben Sie im Bereich "Anwendungseinstellung hinzufügen/bearbeiten " die folgenden Werte ein:
- Name: APPLICATIONINSIGHTS_CONNECTION_STRING
- Wert: Der Wert von
APPLICATIONINSIGHTS_CONNECTION_STRING
von der Ausgabe vonazd provision
. Sie finden diesen Wert auch als Verbindungszeichenfolge auf der Übersichtsseite der Application Insight-Ressource der Ressourcengruppe.
Wählen Sie "Übernehmen", dann erneut "Übernehmen", und anschließend "Bestätigen" aus. Die APPLICATIONINSIGHTS_CONNECTION_STRING App-Einstellung wird jetzt auf der Registerkarte "App-Einstellungen " angezeigt.
Hinweis
Einige App-Einstellungen gelten nicht für Sidecar-fähige Apps. Weitere Informationen finden Sie unter Was sind die Unterschiede bei benutzerdefinierten Containern mit Sidecar-Unterstützung?
5. Überprüfen in Application Insights
Das otel-collector
Sidecar sollte nun Daten an Application Insights exportieren.
Öffnen Sie Ihre App in einer neuen Browser-Registerkarte und aktualisieren Sie die Seite ein paar Mal, um einige HTTP-Anfragen zu generieren.
Wählen Sie auf der Seite "Ressourcengruppe" im Azure-Portal die Ressource "Application Insights" aus. Nun sollten einige Daten in den Standarddiagrammen auf der Seite "Application Insights Overview " angezeigt werden.
Hinweis
In diesem gängigen Überwachungsszenario ist Application Insights nur eines der OpenTelemetry-Ziele, die Sie verwenden können, z. B. Jaeger, Prometheus und Zipkin.
6. Bereinigen von Ressourcen
Wenn Sie die für dieses Lernprogramm erstellte Umgebung nicht mehr benötigen, können Sie die Ressourcengruppe löschen, die den App-Dienst und alle zugehörigen Ressourcen entfernt. Führen Sie den folgenden Befehl im geklonten Repository in Cloud Shell aus.
azd down