Regels voor gegevensverzameling (DCR's) maken met behulp van JSON

Er zijn meerdere methoden voor het maken van een regel voor gegevensverzameling (DCR) in Azure Monitor. Voor veel scenario's kunt u Azure Portal gebruiken om een DCR te maken zonder de structuur van de DCR-definitie te begrijpen. Voor andere scenario's moet u mogelijk uw eigen DCR's maken of bestaande DCR's bewerken door rechtstreeks te werken met hun definitie in JSON. Dit kan zijn voor het gebruik van geavanceerde functies, zoals transformaties of voor het gebruik van opdrachtregelprogramma's voor het maken en beheren van DCR's.

Waarschuwing

Als u een bestaande regel voor gegevensverzameling (DCR) bewerkt met behulp van Azure Portal, worden alle wijzigingen overschreven die zijn aangebracht door de JSON van de DCR rechtstreeks te bewerken als deze functies niet worden ondersteund in de portal. Als u bijvoorbeeld een transformatie toevoegt aan een DCR voor een gegevensbron die niet toestaat dat er een transformatie in de portal wordt gemaakt, wordt die transformatie verwijderd als u vervolgens de DCR in de portal bewerkt. In dit geval moet u eventuele wijzigingen aan de DCR blijven aanbrengen door de JSON rechtstreeks te bewerken.

Machtigingen

U hebt de volgende machtigingen nodig om DCR's te maken:

Ingebouwde rol Toepassingsgebieden Reden
Monitoringbijdrager
  • Abonnement en/of
  • Resourcegroep en/of
  • Een bestaande DCR
Maak of bewerk DCR's, wijs regels toe aan de computer, implementeer koppelingen.
Elke rol die de actie Microsoft.Resources/deployments/ bevat*
  • Abonnement en/of
  • Resourcegroep en/of
  • Een bestaande DCR
Azure Resource Manager-sjablonen implementeren.

Belangrijk

Maak uw DCR in dezelfde regio als uw beoogde Log Analytics-werkruimte of Azure Monitor-werkruimte. U kunt de DCR koppelen aan machines of containers vanuit elk abonnement of elke resourcegroep in de tenant. Als u gegevens wilt verzenden tussen tenants, moet u eerst Azure Lighthouse inschakelen.

DCR-definitie

In plaats van een volledig nieuwe DCR-definitie te maken, begint u met een DCR die u in Azure Portal hebt gemaakt en downloadt u de JSON-definitie die u wilt wijzigen. U kunt ook een van de voorbeeld-DCR's gebruiken die de JSON bieden voor verschillende veelvoorkomende scenario's. Gebruik informatie in structuur van een regel voor gegevensverzameling in Azure Monitor om het JSON-bestand voor uw specifieke omgeving en vereisten te wijzigen.

Zie DcR-definitie weergeven om de JSON-definitie van een DCR weer te geven.

Een DCR maken of bewerken

Zodra u de definitie van uw DCR hebt, kunt u deze implementeren in Azure Monitor met behulp van een van de volgende methoden. Het is dezelfde methode om een nieuwe DCR te maken of een bestaande te bewerken.

DCR maken of bewerken met CLI

Gebruik de opdracht az monitor data-collection rule create om een DCR te maken op basis van uw JSON-bestand.

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'

Opmerking

Hoewel u ervoor kunt kiezen om de PowerShell- of CLI-opdrachten te gebruiken om een DCR te maken en te bewerken, bieden de API- en ARM-methoden meer gedetailleerde foutberichten als er compilatiefouten zijn.

In het volgende voorbeeld geeft de DCR een tabelnaam op die niet bestaat in de log analytics-doelwerkruimte. De PowerShell-opdracht retourneert een algemeen foutbericht, maar de API-aanroep retourneert een gedetailleerd foutbericht dat de exacte fout aangeeft.

Schermopname van een foutbericht voor een DCR wanneer u een PowerShell-opdracht gebruikt.

Schermopname van een foutbericht voor een DCR wanneer u de API gebruikt.

Strategieën voor het bewerken en testen van een DCR

Wanneer u een DCR maakt of bewerkt met behulp van de JSON-definitie, moet u vaak meerdere updates uitvoeren om de gewenste functionaliteit te bereiken. U hebt een efficiënte methode nodig om de DCR bij te werken, problemen op te lossen als u niet de verwachte resultaten krijgt en vervolgens extra updates kunt aanbrengen. Dit geldt met name als u een transformatie toevoegt aan de DCR, omdat u moet controleren of de query werkt zoals verwacht. Aangezien u de JSON niet rechtstreeks in Azure Portal kunt bewerken, volgen enkele strategieën die u kunt gebruiken.

Lokaal bestand gebruiken als bron van DCR

Als u een lokaal JSON-bestand gebruikt als de bron van de DCR's die u maakt en bewerkt, bent u ervan verzekerd dat u altijd toegang hebt tot de nieuwste versie van de DCR-definitie. Dit is ideaal als u hulpprogramma's voor versiebeheer zoals GitHub of Azure DevOps wilt gebruiken om uw wijzigingen te beheren. U kunt ook een editor zoals VS Code gebruiken om wijzigingen aan te brengen in de DCR en vervolgens opdrachtregelprogramma's gebruiken om de DCR in Azure Monitor bij te werken zoals hierboven beschreven.

Hieronder volgt een PowerShell-voorbeeldscript dat u kunt gebruiken om vanuit een bronbestand wijzigingen naar een DCR te pushen. Hiermee wordt gecontroleerd of het bronbestand geldige JSON is voordat het naar Azure Monitor wordt verzonden.

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

DCR-inhoud opslaan in tijdelijk bestand

Als u de DCR-definitie niet in een lokaal bestand hebt, kunt u de definitie ophalen uit Azure Monitor en deze opslaan in een tijdelijk bestand. Vervolgens kunt u het bestand bewerken met behulp van een editor zoals VS Code voordat u de updates naar Azure Monitor pusht.

Hieronder volgt een PowerShell-voorbeeldscript dat u kunt gebruiken om een bestaande DCR in Azure Monitor te bewerken. Met het script wordt de DCR-definitie opgehaald en opgeslagen in een tijdelijk bestand voordat VS Code wordt gestart. Zodra u aangeeft welk script u uw wijzigingen hebt opgeslagen, wordt de DCR bijgewerkt met de nieuwe inhoud en wordt het tijdelijke bestand verwijderd.

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

ARM-sjabloon gebruiken om een DCR direct te bewerken

Als u uw bewerkingen volledig wilt uitvoeren in Azure Portal, kunt u de functie Sjabloon exporteren gebruiken om de ARM-sjabloon voor een DCR op te halen. Vervolgens kunt u de definitie in JSON wijzigen en opnieuw implementeren in Azure Portal.

  1. Selecteer de DCR die u wilt wijzigen in de Azure-portal en klik op sjabloon exporteren. Klik vervolgens op Implementeren om dezelfde sjabloon opnieuw te implementeren.

    Schermopname van de optie Sjabloon exporteren voor een regel voor gegevensverzameling in Azure Portal.

  2. Klik op Sjabloon bewerken om een bewerkbare versie van de JSON voor de DCR te openen. Wijzig de parameterwaarden niet.

    Schermopname van de optie Sjabloon bewerken voor een regel voor gegevensverzameling in Azure Portal.

  3. Breng de vereiste wijzigingen aan in de DCR en klik vervolgens op Opslaan.

    Schermopname van de bewerkbare JSON voor een regel voor gegevensverzameling in Azure Portal.

  4. Als u een nieuwe DCR wilt maken, wijzigt u de naamparameter. Laat anders de parameters ongewijzigd. Klik op Controleren en maken om de gewijzigde sjabloon te implementeren en maken om de nieuwe DCR te maken.

    Schermopname van de optie Beoordelen en maken voor een regel voor gegevensverzameling in Azure Portal.

  5. Als de DCR zonder fouten geldig is, slaagt de implementatie en wordt de DCR bijgewerkt met de nieuwe configuratie. Klik op Ga naar de resource om de gewijzigde DCR te openen.

    Schermopname van een geslaagde implementatie voor een regel voor gegevensverzameling in Azure Portal.

  6. Als de DCR compilatiefouten bevat, ontvangt u een bericht dat uw implementatie is mislukt. Klik op Foutdetails en Bewerkingsdetails om details van de fout weer te geven. Klik op Opnieuw implementeren en vervolgens opnieuw sjabloon bewerken om de benodigde wijzigingen aan te brengen in de DCR en sla deze vervolgens opnieuw op en implementeer deze opnieuw.

    Schermopname van een mislukte implementatie voor een regel voor gegevensverzameling in Azure Portal.

Gegevensverzameling controleren en problemen oplossen

Nadat u de DCR hebt geïnstalleerd, kan het enkele minuten duren voordat de wijzigingen van kracht worden en gegevens worden verzameld met de bijgewerkte DCR. Als u geen gegevens ziet die worden verzameld, gebruikt u de DCR-bewakingsfuncties , waaronder metrische gegevens en logboeken om problemen op te lossen.

DCR-metrische gegevens worden automatisch verzameld voor alle DCR's en u kunt ze analyseren met behulp van Metrics Explorer, zoals de metrische platformgegevens voor andere Azure-resources. Schakel DCR-foutenlogboeken in om gedetailleerde foutinformatie te krijgen wanneer gegevensverwerking niet lukt.

  • Controleer metrische gegevens, zoals Logs Ingestion Bytes per Min en Logs Rows Received per Min om ervoor te zorgen dat de gegevens Azure Monitor bereiken. Als dat niet het probleem is, controleert u de gegevensbron om ervoor te zorgen dat deze gegevens verzendt zoals verwacht.
  • Controleer Logs Rows Dropped per Min of er rijen worden verwijderd. Dit duidt mogelijk niet op een fout omdat de rijen kunnen worden verwijderd door een transformatie. Als de verwijderde rijen echter dezelfde zijn als Logs Rows Dropped per Min, worden er geen gegevens opgenomen in de werkruimte. Bekijk de Logs Transformation Errors per Min om te zien of er transformatiefouten zijn.
  • Controleer Logs Transformation Errors per Min of er fouten zijn opgetreden in transformaties die zijn toegepast op de binnenkomende gegevens. Dit kan worden veroorzaakt door wijzigingen in de gegevensstructuur of de transformatie zelf.
  • Controleer de DCRLogErrors tabel op eventuele opnamefouten die mogelijk zijn vastgelegd. Dit kan aanvullende informatie bieden bij het identificeren van de hoofdoorzaak van het probleem.

Volgende stappen