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.
Log Analytics-Arbeitsbereiche bieten einen zentralen Ort zum Speichern und Abfragen von Protokolldaten – sowohl für Azure-Ressourcen als auch für lokale Ressourcen und Ressourcen in anderen Clouds. In Azure Container Instances ist die Unterstützung für das Senden von Protokollen und Ereignisdaten an Azure Monitor-Protokolle bereits integriert.
Wenn Sie Containergruppenprotokoll- und Ereignisdaten an Azure Monitor Protokolle senden möchten, geben Sie beim Konfigurieren einer Containergruppe einen vorhandenen Log Analytics Arbeitsbereichs-ID und einen Arbeitsbereichsschlüssel an.
In den folgenden Abschnitten wird beschrieben, wie Sie eine für die Protokollierung konfigurierte Containergruppe erstellen und Protokolle abfragen. Sie können eine Containergruppe auch mit einer Arbeitsbereichs-ID und einem Arbeitsbereichsschlüssel aktualisieren, um die Protokollierung zu aktivieren.
Note
Dieser Artikel wurde kürzlich aktualisiert, um den Begriff Azure Monitor-Protokolle anstelle von Log Analytics aufzunehmen. Protokolldaten werden immer noch in einem Log Analytics-Arbeitsbereich gespeichert und weiterhin mit dem gleichen Log Analytics-Dienst erfasst und analysiert. Die Terminologie hat sich geändert, um der Rolle von Protokollen in Azure Monitor besser Rechnung zu tragen. Weitere Informationen finden Sie unter Terminologieänderungen bei Azure Monitor.
Prerequisites
Um die Protokollierung in Ihren Containerinstanzen zu aktivieren, benötigen Sie die folgenden Voraussetzungen:
Log Analytics-Anmeldeinformationen abrufen
Azure Container Instances benötigt die Berechtigung zum Senden von Daten an Ihren Log Analytics Arbeitsbereich. Um diese Berechtigung zu erteilen und die Protokollierung zu aktivieren, müssen Sie beim Erstellen der Containergruppe die Log Analytics Arbeitsbereichs-ID und einen der zugehörigen Schlüssel (primär oder sekundär) angeben.
Important
In diesem Abschnitt wird die ältere Log Analytics Integration beschrieben, die den Arbeitsbereichsschlüssel erfordert. Die Legacy-Integration hat die folgenden Einschränkungen:
- Der Log Analytics Arbeitsbereich muss öffentlich zugänglich sein (private Endpunkte werden nicht unterstützt).
- Die lokale Authentifizierung muss im Arbeitsbereich aktiviert sein.
Für eine umfassendere Integration, die private Endpunkte unterstützt, sollten Sie stattdessen Diagnoseeinstellungen verwenden.
Um die Log Analytics Arbeitsbereichs-ID und den Primärschlüssel abzurufen, verwenden Sie die Azure CLI:
# Get the workspace ID
az monitor log-analytics workspace show \
--resource-group <resource-group> \
--workspace-name <workspace-name> \
--query customerId \
--output tsv
# Get the primary shared key
az monitor log-analytics workspace get-shared-keys \
--resource-group <resource-group> \
--workspace-name <workspace-name> \
--query primarySharedKey \
--output tsv
Containergruppe erstellen
Nachdem Sie nun über die Log Analytics-Arbeitsbereichs-ID und den Primärschlüssel verfügen, können Sie eine protokollierungsfähige Containergruppe erstellen.
Die folgenden Beispiele veranschaulichen zwei Möglichkeiten zum Erstellen einer Containergruppe, die aus einem einzelnen fluentd-Container besteht: Azure CLI und Azure CLI mit einer YAML-Vorlage. Der Fluentd-Container erzeugt in seiner Standardkonfiguration mehrere Ausgabezeilen. Da diese Ausgabe an Ihren Log Analytics Arbeitsbereich gesendet wird, eignet sich dies gut zum Anzeigen und Abfragen von Protokollen.
Bereitstellen mit Azure CLI
Verwenden Sie zum Bereitstellen mit der Azure CLI im Befehl az container create die Parameter --log-analytics-workspace und --log-analytics-workspace-key. Ersetzen Sie die beiden Arbeitsbereichswerte durch die Werte, die Sie im vorherigen Schritt erhalten haben (und den Ressourcengruppennamen aktualisieren), bevor Sie den folgenden Befehl ausführen.
Note
Im folgenden Beispiel wird ein öffentliches Container-Image von Docker Hub abgerufen. Es wird empfohlen, einen Pullschlüssel einzurichten, um sich mit einem Docker Hub Konto zu authentifizieren, anstatt eine anonyme Pullanforderung zu erstellen. Um die Zuverlässigkeit beim Arbeiten mit öffentlichen Inhalten zu verbessern, importieren und verwalten Sie das Image in einer privaten Azure Containerregistrierung. Erfahren Sie mehr über die Arbeit mit öffentlichen Images.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd:v1.3-debian-1 \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Bereitstellen mit YAML
Verwenden Sie diese Methode, wenn Sie containergruppen mit YAML bereitstellen möchten. Im folgenden YAML wird eine Containergruppe mit einem einzelnen Container definiert. Kopieren Sie das YAML in eine neue Datei und ersetzen Sie dann LOG_ANALYTICS_WORKSPACE_ID und LOG_ANALYTICS_WORKSPACE_KEY durch die Werte, die Sie im vorherigen Schritt erhalten haben. Speichern Sie die Datei als deploy-aci.yaml.
Note
Im folgenden Beispiel wird ein öffentliches Container-Image von Docker Hub abgerufen. Es wird empfohlen, einen Pullschlüssel einzurichten, um sich mit einem Docker Hub Konto zu authentifizieren, anstatt eine anonyme Pullanforderung zu erstellen. Um die Zuverlässigkeit beim Arbeiten mit öffentlichen Inhalten zu verbessern, importieren und verwalten Sie das Image in einer privaten Azure Containerregistrierung. Erfahren Sie mehr über die Arbeit mit öffentlichen Images.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd:v1.3-debian-1
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
diagnostics:
logAnalytics:
workspaceId: LOG_ANALYTICS_WORKSPACE_ID
workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups
Führen Sie als Nächstes den folgenden Befehl aus, um die Containergruppe bereitzustellen. Ersetzen Sie myResourceGroup sie durch eine Ressourcengruppe in Ihrem Abonnement (oder erstellen Sie zuerst eine Ressourcengruppe mit dem Namen "myResourceGroup"):
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Sie sollten eine Antwort von Azure erhalten, die Bereitstellungsdetails kurz nach dem Ausgeben des Befehls enthält.
Protokolle anzeigen
Nachdem Sie die Containergruppe bereitgestellt haben, kann es mehrere Minuten (bis zu 10) dauern, bis die ersten Protokolleinträge im Azure-Portal angezeigt werden.
So zeigen Sie die Protokolle der Containergruppe in der ContainerInstanceLog_CL Tabelle an:
- Navigieren Sie im Azure Portal zu Ihrem Log Analytics Arbeitsbereich.
- Wählen Sie unter "Allgemein" die Option "Protokolle" aus.
- Geben Sie die folgende Abfrage ein:
ContainerInstanceLog_CL | limit 50 - Wählen Sie "Ausführen" aus.
Sie sollten mehrere Ergebnisse sehen, die von der Abfrage ausgegeben werden. Wenn zunächst keine Ergebnisse angezeigt werden, warten Sie einige Minuten, und wählen Sie dann die Schaltfläche "Ausführen " aus, um die Abfrage erneut auszuführen. Standardmäßig werden Protokolleinträge im Tabellenformat angezeigt. Anschließend können Sie eine Zeile erweitern, um den Inhalt eines einzelnen Protokolleintrags anzuzeigen.
Anzeigen von Ereignissen
Sie können auch Ereignisse für Containerinstanzen im Azure-Portal anzeigen. Ereignisse umfassen den Zeitpunkt, zu dem die Instanz erstellt wird und wann sie gestartet wird. So zeigen Sie die Ereignisdaten in der Tabelle ContainerEvent_CL an:
- Navigieren Sie im Azure Portal zu Ihrem Log Analytics Arbeitsbereich.
- Wählen Sie unter "Allgemein" die Option "Protokolle" aus.
- Geben Sie die folgende Abfrage ein:
ContainerEvent_CL | limit 50 - Wählen Sie "Ausführen" aus.
Sie sollten mehrere Ergebnisse sehen, die von der Abfrage ausgegeben werden. Wenn zunächst keine Ergebnisse angezeigt werden, warten Sie einige Minuten, und wählen Sie dann die Schaltfläche "Ausführen " aus, um die Abfrage erneut auszuführen. Standardmäßig werden Einträge im Tabellenformat angezeigt. Anschließend können Sie eine Zeile erweitern, um den Inhalt eines einzelnen Eintrags anzuzeigen.
Containerprotokolle abfragen
Azure Monitor Protokolle enthalten eine umfangreiche Abfragesprache zum Abrufen von Informationen aus potenziell Tausenden von Protokollausgabezeilen.
Die grundlegende Struktur einer Abfrage ist die Quelltabelle (in diesem Artikel ContainerInstanceLog_CL oder ContainerEvent_CL) gefolgt von einer Reihe von Operatoren, die durch das Pipezeichen (|) getrennt sind. Sie können mehrere Operatoren verketten, um die Ergebnisse einzugrenzen und erweiterte Funktionen auszuführen.
Fügen Sie zum Anzeigen von Beispielabfrageergebnissen die folgende Abfrage in das Abfragetextfeld ein, und wählen Sie die Schaltfläche Ausführen aus, um die Abfrage auszuführen. Diese Abfrage zeigt alle Protokolleinträge an, deren Feld „Message“ das Wort „warn“ enthält:
ContainerInstanceLog_CL
| where Message contains "warn"
Komplexere Abfragen werden ebenfalls unterstützt. Diese Abfrage zeigt beispielsweise nur die Protokolleinträge für die Containergruppe „mycontainergroup001“ an, die innerhalb der letzten Stunde generiert wurden:
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Protokollschema
Weitere Informationen zum Azure Monitor Legacyschema für Log Analytics finden Sie in legacy Log Analytics Tabellen.
Diagnoseeinstellungen verwenden
Verwenden Sie Diagnoseeinstellungen, um Containergruppenprotokolle und -ereignisse an Log Analytics weiterzuleiten. Dieses Feature bietet mehrere Vorteile gegenüber der in diesem Artikel beschriebenen Legacyintegration:
- Unterstützung privater Endpunkte – funktioniert mit Log Analytics Arbeitsbereichen, die private Endpunkte verwenden.
- Kein Arbeitsbereichsschlüssel erforderlich – Azure Resource Manager behandelt die Authentifizierung, sodass Sie keine Arbeitsbereichsschlüssel verwalten oder drehen müssen.
- Azure Monitor-Standardtabellen – Protokolle werden statt in benutzerdefinierte Protokolltabellen in Azure Monitor-Standardtabellen geschrieben.
Weitere Informationen finden Sie in Azure Monitor Log Analytics Tabellen.
Nächste Schritte
Azure Monitor Protokolle
Weitere Informationen zum Abfragen von Protokollen und Konfigurieren von Warnungen in Azure Monitor-Protokollen finden Sie in den folgenden Themen:
- Grundlagen der Protokollsuche in Azure Monitor-Protokollen
- Vereinheitlichte Warnungen in Azure Monitor
Überwachen von Container-CPU und -Arbeitsspeicher
Informationen zur Überwachung der CPU- und Arbeitsspeicherressourcen von Containerinstanzen finden Sie unter folgendem Link: