Freigeben über


Überwachen von Protokollen in Azure Container Apps mit Log Analytics

Azure Container Apps ist in Azure Monitor Log Analytics integriert, um die Protokolle Ihrer Container-App zu überwachen und zu analysieren. Wenn Ihre Container Apps-Umgebung als Ihre Protokollüberwachungslösung ausgewählt ist, umfasst sie einen Log Analytics-Arbeitsbereich, der einen zentralen Ort zum Speichern der Anwendungsprotokolldaten aus allen in der Umgebung ausgeführten Containern bereitstellt.

Protokolleinträge sind durch Abfragen von Log Analytics-Tabellen über die Azure-Portal oder eine Befehlsshell mit der Azure CLI zugänglich.

Es gibt zwei Arten von Protokollen für Container Apps.

  • Konsolenprotokolle, die von Ihrer App ausgegeben werden.
  • Systemprotokolle, die vom Container Apps-Dienst ausgegeben werden.

Systemprotokolle

Der Container Apps-Dienst stellt Systemprotokollmeldungen auf Container-App-Ebene bereit. Systemprotokolle geben die folgenden Meldungen aus:

Quelle type Meldung
Dapr Info Erfolgreich erstellte Dapr-Komponente <Komponentenname> mit Bereich <Dapr-Komponentenbereich>
Dapr Info Erfolgreich aktualisierte Dapr-Komponente <Komponentenname>mit Bereich <Komponententyp>
Dapr Fehler Fehler beim Erstellen von Dapr-Komponente <Komponentenname>
Volumebereitstellungen Info Erfolgreich bereitgestelltes Volume <Volumename> für Revision <Revisionsbereich>
Volumebereitstellungen Fehler Fehler bei der Bereitstellung des Volumes <Volumename>
Domänenbindung Info Domäne <Domäne> erfolgreich an die Container-App <Container-App-Name> gebunden
Authentifizierung Info Authentifizierung für App aktiviert. Erstellen der Authentifizierungskonfiguration
Authentifizierung Info Auth-Konfiguration erfolgreich erstellt
Verkehrsgewicht Info Festlegen eines Verkehrsgewicht von <Prozentsatz> % für Revision <Revisionssname\>
Revisionsbereitstellung Info Erstellen einer neuen Revision: <Revisionsname>
Revisionsbereitstellung Info Erfolgreich bereitgestellter <Revisionsname>
Revisionsbereitstellung Info Deaktivieren alter Überarbeitungen seit „ActiveRevisionsMode=Single“
Revisionsbereitstellung Fehler Fehler bei der Bereitstellungsrevision <Revisionsname>. Fehlercode: <[ErrImagePull]|[Timeout]|[ContainerCrashing]>

Auf die Systemprotokolldaten kann durch Abfragen der ContainerAppSystemLogs_CL-Tabelle zugegriffen werden. Die am häufigsten verwendeten Container Apps-spezifischen Spalten in der Tabelle sind:

Spalte BESCHREIBUNG
ContainerAppName_s Name der Container-App
EnvironmentName_s Name der Container Apps-Umgebung
Log_s Protokollnachricht
RevisionName_s Revisionsname

Konsolenprotokolle

Konsolenprotokolle stammen aus den stderr- und stdout-Nachrichten aus den Containern in Ihren Container-App- und Dapr-Sidecars. Sie können Konsolenprotokolle anzeigen, indem Sie die ContainerAppConsoleLogs_CL-Tabelle abfragen.

Tipp

Die Instrumentierung Ihres Codes mit gut definierten Protokollnachrichten kann Ihnen helfen, zu verstehen, wie Ihr Code ausgeführt wird, und Probleme zu debuggen. Weitere Informationen zu bewährten Methoden finden Sie unter Entwurf für Vorgänge.

Die folgenden Container Apps-spezifischen Spalten in „ContainerAppConsoleLogs_CL“ werden am häufigsten verwendet:

Spalte BESCHREIBUNG
ContainerAppName_s Name der Container-App
ContainerGroupName_g Replikatname
ContainerId_s Containerbezeichner
ContainerImage_s Containerimagename
EnvironmentName_s Name der Container Apps-Umgebung
Log_s Protokollnachricht
RevisionName_s Revisionsname

Abfrageprotokoll mit Log Analytics

Log Analytics ist ein Tool im Azure-Portal, das Sie zum Anzeigen und Analysieren von Protokolldaten verwenden können. Mithilfe von Log Analytics können Sie einfache oder erweiterte Abfragen schreiben und die Ergebnisse dann in Diagrammen sortieren, filtern und visualisieren, um Trends zu erkennen und Probleme zu identifizieren. Sie können interaktiv mit den Abfrageergebnissen arbeiten oder sie mit anderen Features wie Warnungen, Dashboards und Arbeitsmappen verwenden.

Azure-Portal

Starten Sie Log Analytics, indem Sie auf der Seite Ihrer Container-App im Randleistenmenü die Option Protokolle auswählen. Sie können Log Analytics auch über Überwachen > Protokolle starten.

Sie können die Protokolle mithilfe der Tabellen abfragen, die auf der Kategorie CustomLogs auf der Registerkarte Tabellen aufgeführt sind. Die Tabellen in dieser Kategorie sind die ContainerAppSystemlogs_CL- und ContainerAppConsoleLogs_CL-Tabellen.

Screenshot des Log Analytics-Arbeitsbereichs.

Im Folgenden sehen Sie ein Beispiel für eine Kusto-Abfrage, die Konsolenprotokolleinträge für die Container-App album-api anzeigt.

ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100

Im Folgenden sehen Sie ein Beispiel für eine Kusto-Abfrage, die Systemprotokolleinträge für die Container-App album-api anzeigt.

ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100

Weitere Informationen zu Log Analytics und Protokollabfragen finden Sie im Log Analytics-Tutorial.

Azure-Befehlszeilenschnittstelle/PowerShell

Container Apps-Protokolle können mithilfe der Azure CLI abgefragt werden.

In diesem Beispiel für Azure CLI-Abfragen wird eine Tabelle ausgegeben, die Protokolleinträge für die Container-App-Name Album-API enthält. Die Tabellenspalten werden durch die Parameter nach dem project-Operator angegeben. Die Variable $WORKSPACE_CUSTOMER_ID enthält die GUID des Log Analytics-Arbeitsbereichs.

In diesem Beispiel wird die ContainerAppConsoleLogs_CL-Tabelle abgefragt:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s, LogLevel_s | take 5" --out table

In diesem Beispiel wird die ContainerAppSystemLogs_CL-Tabelle abgefragt:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppSystemLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s, LogLevel_s | take 5" --out table

Nächste Schritte