Ü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.
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