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

Kommentar

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

För att aktivera loggning i dina containerinstanser behöver du följande krav:

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:

  1. Navigera till Log Analytics-arbetsytan i Azure-portalen
  2. Under Inställningar väljer du Agenthantering
  3. 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 sin standardkonfiguration. 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.

Kommentar

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:v1.3-debian-1 \
    --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.

Kommentar

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: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

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) innan de första loggposterna visas i Azure-portalen.

Så här visar du containergruppens loggar i ContainerInstanceLog_CL tabellen:

  1. Navigera till Log Analytics-arbetsytan i Azure-portalen
  2. Under Allmänt väljer du Loggar
  3. Skriv följande fråga: ContainerInstanceLog_CL | limit 50
  4. 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.

Logga sökresultat i Azure-portalen

Visa händelser

Du kan också visa händelser för containerinstanser i Azure-portalen. Händelser inkluderar den tid då instansen skapas och när den startar. Så här visar du händelsedata i ContainerEvent_CL tabellen:

  1. Navigera till Log Analytics-arbetsytan i Azure-portalen
  2. Under Allmänt väljer du Loggar
  3. Skriv följande fråga: ContainerEvent_CL | limit 50
  4. 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.

Händelsesökningsresultat i Azure-portalen

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 eller ContainerInstanceLog_CL 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

Mer information om det äldre Azure Monitor-schemat för Log Analytics finns i Äldre Log Analytics-tabeller.

Använda diagnostikinställningar

De nyare tabellerna kräver användning av diagnostikinställningar för att dirigera information till Log Analytics. Funktionen för diagnostikinställningar för Container Instances är i offentlig förhandsversion och kan aktiveras via alternativ för förhandsversionsfunktioner i Azure-portalen.

Mer information finns i Azure Monitor Log Analytics-tabeller.

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: