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 |
|
Skapa eller redigera domänkontrollanter, tilldela regler till datorn, distribuera associationer. |
Virtuell datordeltagare Resursadministratör för azure-ansluten dator |
|
Distribuera agenttillägg på den virtuella datorn (virtuell dator). |
Alla roller som innehåller åtgärden Microsoft.Resources/deployments/* |
|
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-vyn på menyn Översikt.
Kontrollera att den senaste versionen av API:et har valts i listrutan API-version . Om inte, kanske en del av JSON inte visas.
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.
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.
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.
Klicka på Redigera mall för att öppna en redigerbar version av JSON för DCR. Ändra inte parametervärdena.
Gör nödvändiga ändringar i DCR och klicka sedan på Spara.
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.
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.
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.
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.
- Kontrollera mått som
Logs Ingestion Bytes per Min
ochLogs 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. - 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 somLogs 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. - 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. - Kontrollera tabellen
DCRLogErrors
efter eventuella inmatningsfel som kan ha loggats. Detta kan ge ytterligare information om hur du identifierar rotorsaken till problemet.