Containergrupps- och instansloggning med Azure Monitor-loggar
Log Analytics-arbetsytor ger en central plats för lagring och frågekörning av loggdata inte bara från Azure-resurser, utan även lokala resurser och resurser i andra moln. Azure Container Instances innehåller inbyggt stöd för att skicka loggar och händelsedata till Azure Monitor-loggar.
Om du vill skicka logg- och händelsedata för containergrupper till Azure Monitor-loggar anger du ett befintligt Log Analytics-arbetsyte-ID och en arbetsytenyckel när du konfigurerar en containergrupp.
I följande avsnitt beskrivs hur du skapar en loggningsaktiverad containergrupp och hur du frågar efter loggar. Du kan också uppdatera en containergrupp med ett arbetsyte-ID och en arbetsytenyckel för att aktivera loggning.
Anteckning
Den här artikeln uppdaterades nyligen för att använda termen Azure Monitor-loggar i stället för Log Analytics. Loggdata lagras fortfarande på en Log Analytics-arbetsyta och samlas fortfarande in och analyseras av samma Log Analytics-tjänst. Vi uppdaterar terminologin för att bättre återspegla loggarnas roll i Azure Monitor. Mer information finns i Terminologiändringar i Azure Monitor .
Förutsättningar
Om du vill aktivera loggning i dina containerinstanser, behöver du följande:
Hämta Log Analytics-autentiseringsuppgifter
Azure Container Instances behöver behörighet för att skicka data till din Log Analytics-arbetsyta. Om du vill ge behörighet och aktivera loggning, måste du ange ID för Log Analytics-arbetsytan och en av dess nycklar (primär eller sekundär) när du skapar containergrupp.
Gör följande för att hämta ID och den primära nyckeln för Log Analytics-arbetsytan:
- Navigera till Log Analytics-arbetsytan i Azure-portalen
- Under Inställningar väljer du Agenthantering
- Anteckna:
- Arbetsyte-ID
- Primärnyckel
Skapa containergrupp
Nu när du har Log Analytics-arbetsytans ID och primärnyckel är du redo att skapa en grupp för loggningsaktiverad containergrupp.
Följande exempel visar två sätt att skapa en containergrupp som består av en enda flytande container: Azure CLI och Azure CLI med en YAML-mall. Containern fluentd producerar flera rader med utdata i standardkonfigurationen. Eftersom dessa utdata skickas till din Log Analytics-arbetsyta fungerar det bra för att demonstrera visning och frågning av loggar.
Distribuera med Azure CLI
Om du vill distribuera med Azure CLI anger du värden för parametrarna --log-analytics-workspace
och --log-analytics-workspace-key
i kommandot az container create. Ersätt de två arbetsytevärdena med de värden du hämtade i föregående steg (och uppdatera resursgruppens namn) innan du kör följande kommando.
Anteckning
I följande exempel hämtas en offentlig containeravbildning från Docker Hub. Vi rekommenderar att du konfigurerar en pull-hemlighet för att autentisera med ett Docker Hub konto i stället för att göra en anonym pull-begäran. För att förbättra tillförlitligheten när du arbetar med offentligt innehåll importerar och hanterar du avbildningen i ett privat Azure-containerregister. Läs mer om hur du arbetar med offentliga avbildningar.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Distribuera med YAML
Använd den här metoden om du föredrar att distribuera containergrupper med YAML. Följande YAML definierar en containergrupp med en enda container. Kopiera YAML-koden till en ny fil och ersätt LOG_ANALYTICS_WORKSPACE_ID
och LOG_ANALYTICS_WORKSPACE_KEY
med värdena du hämtade i föregående steg. Spara filen som deploy-aci.yaml.
Anteckning
I följande exempel hämtas en offentlig containeravbildning från Docker Hub. Vi rekommenderar att du konfigurerar en pull-hemlighet för att autentisera med ett Docker Hub konto i stället för att göra en anonym pull-begäran. För att förbättra tillförlitligheten när du arbetar med offentligt innehåll importerar och hanterar du avbildningen i ett privat Azure-containerregister. Läs mer om hur du arbetar med offentliga avbildningar.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd
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
Kör sedan följande kommando för att distribuera containergruppen. Ersätt myResourceGroup
med en resursgrupp i din prenumeration (eller skapa först en resursgrupp med namnet "myResourceGroup"):
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Du bör få ett svar från Azure som innehåller distributionsinformation strax efter kommandot utfärdats.
Visa loggar
När du har distribuerat containergruppen, kan det ta flera minuter (upp till 10) för de första loggposterna att visas i Azure-portalen.
Så här visar du containergruppens loggar i ContainerInstanceLog_CL
tabellen:
- Navigera till Log Analytics-arbetsytan i Azure-portalen
- Under Allmänt väljer du Loggar
- Skriv följande fråga:
ContainerInstanceLog_CL | limit 50
- Välj Kör
Du bör se flera resultat som visas av frågan. Om du först inte ser några resultat väntar du några minuter och väljer sedan knappen Kör för att köra frågan igen. Som standard visas loggposter i tabellformat . Du kan därefter expandera en rad för att visa innehållet i en enskild loggpost.
Visa händelser
Du kan också visa händelser för containerinstanser i Azure Portal. Händelser inkluderar den tid då instansen skapas och när den startas. Så här visar du händelsedata i ContainerEvent_CL
tabellen:
- Navigera till Log Analytics-arbetsytan i Azure-portalen
- Under Allmänt väljer du Loggar
- Skriv följande fråga:
ContainerEvent_CL | limit 50
- Välj Kör
Du bör se flera resultat som visas av frågan. Om du först inte ser några resultat väntar du några minuter och väljer sedan knappen Kör för att köra frågan igen. Som standard visas poster i tabellformat . Du kan sedan expandera en rad för att se innehållet i en enskild post.
Fråga containerloggar
Azure Monitor-loggar innehåller ett omfattande frågespråk för att hämta information från potentiellt tusentals rader med loggutdata.
Den grundläggande strukturen för en fråga är källtabellen (i den här artikeln ContainerInstanceLog_CL
eller ContainerEvent_CL
) följt av en serie operatorer avgränsade med pipe-tecknet (|
). Du kan länka flera operatorer för att förfina resultatet och utför avancerade funktioner.
Om du vill se exempel på frågeresultat klistrar du in följande fråga i frågetextrutan och väljer knappen Kör för att köra frågan. Den här frågan visar alla loggposter vars Meddelande-fält innehåller ordet varning:
ContainerInstanceLog_CL
| where Message contains "warn"
Mer komplexa frågor stöds också. Den här frågan visar till exempel bara de loggposter för behållargruppen mycontainergroup001 som skapats den senaste timmen:
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Loggschema
Anteckning
Vissa av kolumnerna som anges nedan finns bara som en del av schemat och har inga data som genereras i loggarna. Dessa kolumner anges nedan med en beskrivning av "Tom".
ContainerInstanceLog_CL
Kolumn | Typ | Description |
---|---|---|
Dator | sträng | Tom |
ContainerGroup_s | sträng | Namnet på den containergrupp som är associerad med posten |
ContainerID_s | sträng | En unik identifierare för containern som är associerad med posten |
ContainerImage_s | sträng | Namnet på containeravbildningen som är associerad med posten |
Location_s | sträng | Platsen för resursen som är associerad med posten |
Meddelande | sträng | Om tillämpligt visas meddelandet från containern |
OSType_s | sträng | Namnet på det operativsystem som containern baseras på |
RawData | sträng | Tom |
ResourceGroup | sträng | Namnet på resursgruppen som posten är associerad med |
Source_s | sträng | Namnet på loggningskomponenten, "LoggingAgent" |
SubscriptionId | sträng | En unik identifierare för prenumerationen som posten är associerad med |
TimeGenerated | datetime | Tidsstämpel när händelsen genererades av Azure-tjänsten som bearbetar begäran som motsvarar händelsen |
Typ | sträng | Namnet på tabellen |
_ResourceId | sträng | En unik identifierare för resursen som posten är associerad med |
_SubscriptionId | sträng | En unik identifierare för prenumerationen som posten är associerad med |
ContainerEvent_CL
Kolumn | Typ | Description |
---|---|---|
Dator | sträng | Tom |
ContainerGroupInstanceId_g | sträng | En unik identifierare för den containergrupp som är associerad med posten |
ContainerGroup_s | sträng | Namnet på den containergrupp som är associerad med posten |
ContainerName_s | sträng | Namnet på containern som är associerad med posten |
Count_d | real | Hur många gånger händelsen har inträffat sedan den senaste undersökningen |
FirstTimestamp_t | datetime | Tidsstämpeln för första gången händelsen inträffade |
Location_s | sträng | Platsen för resursen som är associerad med posten |
Meddelande | sträng | Om tillämpligt visas meddelandet från containern |
OSType_s | sträng | Namnet på det operativsystem som containern baseras på |
RawData | sträng | Tom |
Reason_s | sträng | Containergruppens aktuella status |
ResourceGroup | sträng | Namnet på resursgruppen som posten är associerad med |
SubscriptionId | sträng | En unik identifierare för prenumerationen som posten är associerad med |
TimeGenerated | datetime | Tidsstämpel när händelsen genererades av Azure-tjänsten som bearbetar begäran som motsvarar händelsen |
Typ | sträng | Namnet på tabellen |
_ResourceId | sträng | En unik identifierare för resursen som posten är associerad med |
_SubscriptionId | sträng | En unik identifierare för prenumerationen som posten är associerad med |
Nästa steg
Azure Monitor-loggar
Mer information om att köra frågor mot loggar och konfigurera aviseringar i Azure Monitor-loggar finns i:
Övervaka containerns CPU och minne
Information om övervakning av containerinstansens CPU- och minnesresurser finns i: