Dela via


Skapa regler för datainsamling (DCR) i Azure Monitor

Det finns flera metoder för att skapa en datainsamlingsregel (DCR) i Azure Monitor. I vissa fall skapar och hanterar Azure Monitor domänkontrollanten enligt de inställningar som du konfigurerar i Azure Portal. Du kanske inte ens inser att du arbetar med en DCR i vissa av dessa fall. I andra scenarier kan du dock behöva skapa egna domänkontrollanter eller redigera befintliga genom att arbeta direkt med deras definition i JSON. Den här artikeln beskriver de olika metoderna för att skapa en DCR och rekommendationer för att redigera och felsöka dem.

Kommentar

I den här artikeln beskrivs hur du skapar och redigerar själva domänkontrollanten. Information om hur du skapar och redigerar regelassociationer för datainsamling finns i Skapa och hantera regelassociationer för datainsamling.

Behörigheter

Du behöver följande behörigheter för att skapa DCR och DCR-associationer:

Inbyggd roll Omfattningar Anledning
Övervakningsdeltagare
  • Prenumeration och/eller
  • Resursgrupp och/eller
  • En befintlig DCR
Skapa eller redigera domänkontrollanter, tilldela regler till datorn, distribuera associationer.
Virtuell datordeltagare
Resursadministratör för azure-ansluten dator
  • Virtuella datorer, VM-skalningsuppsättningar
  • Azure Arc-aktiverade servrar
Distribuera agenttillägg på den virtuella datorn (virtuell dator).
Alla roller som innehåller åtgärden Microsoft.Resources/deployments/*
  • Prenumeration och/eller
  • Resursgrupp och/eller
  • En befintlig DCR
Distribuera Azure Resource Manager-mallar.

Viktigt!

Skapa din DCR i samma region som log analytics-målarbetsytan eller Azure Monitor-arbetsytan. Du kan associera DCR till datorer eller containrar från valfri prenumeration eller resursgrupp i klientorganisationen. Om du vill skicka data mellan klienter måste du först aktivera Azure Lighthouse.

Skapa eller redigera en domänkontrollant med hjälp av Azure Portal

Azure Portal ger en förenklad upplevelse för att skapa en DCR för specifika scenarier. Med den här metoden behöver du inte förstå strukturen för en DCR, även om du kan vara begränsad i konfigurationen som du kan utföra och kan behöva redigera DCR-definitionen senare för att implementera en avancerad funktion, till exempel en transformering. Upplevelsen varierar för varje scenario, så se dokumentationen för det specifika scenariot som du arbetar med enligt beskrivningen i följande tabell.

Scenario beskrivning
Aktivera VM-insikter När du aktiverar VM Insights på en virtuell dator installeras Azure Monitor-agenten och en DCR skapas och associeras med den virtuella datorn. Denna DCR samlar in en fördefinierad uppsättning prestandaräknare och bör inte ändras. Se Aktivera VM Insights.
Samla in klientdata från en virtuell dator Skapa en DCR i Azure Portal med hjälp av ett guidat gränssnitt för att välja olika datakällor från klientoperativsystemet för en virtuell dator. Exempel är Windows-händelser, Syslog-händelser och textloggar. Azure Monitor-agenten installeras automatiskt om det behövs och en association skapas mellan DCR och varje virtuell dator som du väljer. Se Samla in data med Azure Monitor Agent.
Måttexport Skapa en DCR i Azure Portal med hjälp av ett guidat gränssnitt för att välja mått för olika resurstyper att samla in. En association skapas mellan domänkontrollanten och varje resurs som du väljer. Se Skapa en datainsamlingsregel (DCR) för måttexport.
Skapar tabell När du skapar en ny tabell på en Log Analytics-arbetsyta med hjälp av Azure Portal laddar du upp exempeldata som Azure Monitor använder för att skapa en DCR, inklusive en transformering, som kan användas med LOGS Ingestion API. Du kan inte ändra den här domänkontrollanten i Azure Portal men kan ändra den med någon av de metoder som beskrivs i den här artikeln. Se Skapa en anpassad tabell.
Kubernetes-övervakning Om du vill övervaka ett Kubernetes-kluster aktiverar du Container Insights för loggar och Prometheus för mått. En DCR för var och en skapas och associeras med den containerbaserade versionen av Azure Monitor-agenten i klustret. Du kan behöva ändra DCR för Container Insights för att lägga till en transformering. Se Aktivera övervakning för Kubernetes-kluster och datatransformeringar i Container Insights.
DCR för arbetsytetransformering DCR:er för arbetsytetransformering ger transformeringar för datainsamlingsscenarier som ännu inte använder DCR. Du kan skapa den här domänkontrollanten med hjälp av Azure Portal för att skapa en transformering för en viss tabell. Se Skapa dcr för arbetsytetransformering.

DCR-definition

Oavsett hur den skapas har varje domänkontrollant en definition som följer ett JSON-standardschema. Om du vill skapa eller redigera en domänkontrollant med en annan metod än Azure Portal måste du arbeta direkt med dess JSON-definition. I vissa scenarier måste du arbeta med JSON-definitionen eftersom Azure Portal inte ger något sätt att konfigurera DCR efter behov.

Du kan visa JSON för en DCR i Azure Portal genom att klicka på JSON-vynmenyn Översikt.

Skärmbild som visar alternativet att visa JSON för en DCR i Azure Portal.

Kontrollera att den senaste versionen av API:et har valts i listrutan API-version . Om inte, kanske en del av JSON inte visas.

Skärmbild som visar JSON för en DCR i Azure Portal.

Du kan också hämta JSON för DCR genom att anropa DCR REST API. Följande PowerShell-skript hämtar till exempel JSON för en DCR och sparar den i en fil.

$ResourceId = "<ResourceId>" # Resource ID of the DCR to edit
$FilePath = "<FilePath>" # File to store DCR content
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File -FilePath $FilePath

Kommentar

Du kan hämta information om en DCR med hjälp av Get-AzDataCollectionRule cmdleten i PowerShell eller az monitor data-collection rule show kommandot i Azure CLI, men de anger inte JSON i det format som du behöver för redigering. Använd i stället PowerShell eller CLI för att anropa REST-API:et enligt exemplet.

Skapa eller redigera en DCR med JSON

Förutom att redigera en befintlig DCR kan du skapa en ny med hjälp av en av de exempel-DCR:er som tillhandahåller JSON för flera vanliga scenarier. Använd information i Struktur för en datainsamlingsregel i Azure Monitor för att ändra JSON-filen för din specifika miljö och dina krav.

När du har definierat din DCR kan du distribuera den till Azure Monitor med hjälp av mallarna Azure Portal, CLI, PowerShell, API eller ARM.

Skapa eller redigera DCR med CLI

Använd kommandot az monitor data-collection rule create för att skapa en DCR från din JSON-fil. Du kan använda samma kommando för att uppdatera en befintlig DCR.

az monitor data-collection rule create --location 'eastus' --resource-group 'my-resource-group' --name 'my-dcr' --rule-file 'C:\MyNewDCR.json' --description 'This is my new DCR'

Kommentar

Du kan välja att använda PowerShell- eller CLI-kommandona för att skapa och redigera en DCR, men API- och ARM-metoderna ger mer detaljerade felmeddelanden om det finns kompileringsfel.

I följande exempel anger DCR ett tabellnamn som inte finns på log analytics-målarbetsytan. PowerShell-kommandot returnerar ett allmänt felmeddelande, men API-anropet returnerar ett detaljerat felmeddelande som anger det exakta felet.

Skärmbild som visar ett felmeddelande för en DCR när du använder ett PowerShell-kommando.

Skärmbild som visar ett felmeddelande för en DCR när du använder API:et.

Strategier för att redigera och testa en DCR

När du skapar eller redigerar en DCR med dess JSON-definition behöver du ofta göra flera uppdateringar för att uppnå de funktioner du vill ha. Du behöver en effektiv metod för att uppdatera domänkontrollanten, felsöka den om du inte får de resultat du förväntar dig och sedan göra ytterligare uppdateringar. Detta gäller särskilt om du lägger till en transformering till DCR eftersom du måste verifiera att frågan fungerar som förväntat. Eftersom du inte kan redigera JSON direkt i Azure Portal följer några strategier som du kan använda.

Använda lokal fil som källa för DCR

Om du använder en lokal JSON-fil som källa för de domänkontrollanter som du skapar och redigerar är du säker på att du alltid har åtkomst till den senaste versionen av DCR-definitionen. Det här är perfekt om du vill använda versionskontrollverktyg som GitHub eller Azure DevOps för att hantera dina ändringar. Du kan också använda en redigerare som VS Code för att göra ändringar i DCR och sedan använda kommandoradsverktyg för att uppdatera DCR i Azure Monitor enligt beskrivningen ovan.

Följande är ett PowerShell-exempelskript som du kan använda för att skicka ändringar till en DCR från en källfil. Detta verifierar att källfilen är giltig JSON innan den skickas till Azure Monitor.

param (
    [Parameter(Mandatory = $true)][string]$ResourceId,  # Resource ID of the DCR
    [Parameter(Mandatory = $true)][string]$FilePath  # Path to the DCR JSON file to upload
)

# Read the DCR content from the file
Write-Host "Reading new DCR content from: $FilePath" -ForegroundColor Green
$DCRContent = Get-Content $FilePath -Raw

# Ensure the DCR content is valid JSON
try {
    $ParsedDCRContent = $DCRContent | ConvertFrom-Json
} catch {
    Write-Host "Invalid JSON content in file: $FilePath" -ForegroundColor Red
    exit 1
}

# Create or update the DCR in the specified resource group
Write-Host "Deploying DCR $ResourceId ..." -ForegroundColor Green
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		

Spara DCR-innehåll i en temporär fil

Om du inte har DCR-definitionen i en lokal fil kan du hämta definitionen från Azure Monitor och spara den i en tillfällig fil. Du kan sedan redigera filen med hjälp av ett redigeringsprogram som VS Code innan du skickar uppdateringarna till Azure Monitor.

Följande är ett PowerShell-exempelskript som du kan använda för att redigera en befintlig DCR i Azure Monitor. Skriptet hämtar DCR-definitionen och sparar den i en tillfällig fil innan VS Code startas. När du anger för skriptet att du har sparat ändringarna uppdateras DCR med det nya innehållet och den tillfälliga filen tas bort.

param ([Parameter(Mandatory=$true)] $ResourceId)

# Get DCR content and save it to a local file
$FilePath = "temp.dcr"
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File $FilePath

# Open DCR in code editor
code $FilePath | Wait-Process

{ 
	#write DCR content back from the file
	$DCRContent = Get-Content $FilePath -Raw
	Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent		
}

#Delete temporary file
Remove-Item $FilePath

Använd ARM-mall för att redigera en DCR på plats

Om du vill utföra dina ändringar helt i Azure Portal kan du använda funktionen Exportera mall för att hämta ARM-mallen för en DCR. Du kan sedan ändra definitionen i JSON och distribuera om den i Azure Portal.

  1. Välj den domänkontrollant som du vill ändra i Azure Portal och välj Exportera mall. Klicka sedan på Distribuera för att distribuera om samma mall.

    Skärmbild som visar alternativet Exportera mall för en datainsamlingsregel i Azure Portal.

  2. Klicka på Redigera mall för att öppna en redigerbar version av JSON för DCR. Ändra inte parametervärdena.

    Skärmbild som visar alternativet Redigera mall för en datainsamlingsregel i Azure Portal.

  3. Gör nödvändiga ändringar i DCR och klicka sedan på Spara.

    Skärmbild som visar redigerbar JSON för en datainsamlingsregel i Azure Portal.

  4. Om du vill skapa en ny DCR ändrar du namnparametern. Annars lämnar du parametrarna oförändrade. Klicka på Granska + skapa för att distribuera den ändrade mallen och Skapa för att skapa den nya domänkontrollanten.

    Skärmbild som visar alternativet granska + skapa för en datainsamlingsregel i Azure Portal.

  5. Om DCR är giltig utan fel kommer distributionen att lyckas och DCR uppdateras med den nya konfigurationen. Klicka på Gå till resurs för att öppna den ändrade domänkontrollanten.

    Skärmbild som visar en lyckad distribution för en datainsamlingsregel i Azure Portal.

  6. Om DCR har kompileringsfel får du ett meddelande om att distributionen misslyckades. Klicka på Felinformation och Åtgärdsinformation för att visa information om felet. Klicka på Distribuera om och sedan på Redigera mall igen för att göra nödvändiga ändringar i DCR och spara och distribuera den igen.

    Skärmbild som visar en misslyckad distribution för en datainsamlingsregel i Azure Portal.

Verifiera och felsöka datainsamling

När du har installerat DCR kan det ta flera minuter innan ändringarna börjar gälla och data samlas in med den uppdaterade DOMÄNKONTROLLanten. Om du inte ser några data som samlas in kan det vara svårt att fastställa rotorsaken till problemet. Använd DCR-övervakningsfunktionerna, som innehåller mått och loggar för att felsöka.

DCR-mått samlas in automatiskt för alla domänkontrollanter och du kan analysera dem med hjälp av Metrics Explorer, till exempel plattformsmått för andra Azure-resurser. Aktivera DCR-felloggar för att få detaljerad felinformation när databearbetningen inte lyckas.

Om du inte ser att data samlas in följer du de här grundläggande stegen för att felsöka problemet.

  1. Kontrollera mått som Logs Ingestion Bytes per Min och Logs Rows Received per Min för att säkerställa att data når Azure Monitor. Om inte kontrollerar du datakällan för att se till att den skickar data som förväntat.
  2. Kontrollera Logs Rows Dropped per Min om några rader tas bort. Detta kan inte tyda på ett fel eftersom raderna kan tas bort av en transformering. Om de borttagna raderna är samma som Logs Rows Dropped per Min men matas inga data in på arbetsytan. Logs Transformation Errors per Min Granska för att se om det finns några transformeringsfel.
  3. Kontrollera Logs Transformation Errors per Min om det finns några fel från transformeringar som tillämpas på inkommande data. Detta kan bero på ändringar i datastrukturen eller själva omvandlingen.
  4. Kontrollera tabellen DCRLogErrors efter eventuella inmatningsfel som kan ha loggats. Detta kan ge ytterligare information om hur du identifierar rotorsaken till problemet.

Nästa steg