Delen via


Regels voor gegevensverzameling (DCR's) maken in Azure Monitor

Er zijn meerdere methoden voor het maken van een regel voor gegevensverzameling (DCR) in Azure Monitor. In sommige gevallen maakt en beheert Azure Monitor de DCR op basis van de instellingen die u in Azure Portal configureert. U realiseert zich misschien niet eens dat u in sommige gevallen met een DCR werkt. 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. In dit artikel worden de verschillende methoden beschreven voor het maken van een DCR en aanbevelingen voor het bewerken en oplossen van problemen.

Notitie

In dit artikel wordt beschreven hoe u de DCR zelf maakt en bewerkt. Zie Koppelingen voor gegevensverzamelingsregels maken en beheren om koppelingen voor gegevensverzamelingsregels te maken en te bewerken.

Machtigingen

U hebt de volgende machtigingen nodig om DCR-koppelingen en DCR-koppelingen te maken:

Ingebouwde rol Bereiken Reden
Bijdrager voor bewaking
  • Abonnement en/of
  • Resourcegroep en/of
  • Een bestaande DCR
Maak of bewerk DCR's, wijs regels toe aan de computer, implementeer koppelingen.
Inzender voor virtuele machines
Resourcebeheerder van Azure Connected Machine
  • Virtuele machines, virtuele-machineschaalsets
  • Servers met Azure Arc
Agentextensies implementeren op de VIRTUELE machine (virtuele machine).
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 doel-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.

Een DCR maken of bewerken met behulp van Azure Portal

Azure Portal biedt een vereenvoudigde ervaring voor het maken van een DCR voor bepaalde scenario's. Met deze methode hoeft u de structuur van een DCR niet te begrijpen, hoewel u mogelijk beperkt bent in de configuratie die u kunt uitvoeren en de DCR-definitie later moet bewerken om een geavanceerde functie zoals een transformatie te implementeren. De ervaring varieert voor elk scenario, dus raadpleeg de documentatie voor het specifieke scenario waarmee u werkt, zoals beschreven in de volgende tabel.

Scenario Beschrijving
VM-inzichten inschakelen Wanneer u VM Insights inschakelt op een virtuele machine, wordt de Azure Monitor-agent geïnstalleerd en wordt er een DCR gemaakt en gekoppeld aan de virtuele machine. Deze DCR verzamelt een vooraf gedefinieerde set prestatiemeteritems en mag niet worden gewijzigd. Zie VM-inzichten inschakelen.
Clientgegevens verzamelen van VM Maak een DCR in Azure Portal met behulp van een begeleide interface om verschillende gegevensbronnen te selecteren in het clientbesturingssysteem van een VIRTUELE machine. Voorbeelden hiervan zijn Windows-gebeurtenissen, Syslog-gebeurtenissen en tekstlogboeken. De Azure Monitor-agent wordt indien nodig automatisch geïnstalleerd en er wordt een koppeling gemaakt tussen de DCR en elke vm die u selecteert. Zie Gegevens verzamelen met De Azure Monitor-agent.
Export van metrische gegevens Maak een DCR in Azure Portal met behulp van een begeleide interface om metrische gegevens van verschillende resourcetypen te selecteren die moeten worden verzameld. Er wordt een koppeling gemaakt tussen de DCR en elke resource die u selecteert. Zie Een regel voor gegevensverzameling (DCR) maken voor het exporteren van metrische gegevens.
Tabellen maken Wanneer u een nieuwe tabel maakt in een Log Analytics-werkruimte met behulp van Azure Portal, uploadt u voorbeeldgegevens die Azure Monitor gebruikt om een DCR te maken, inclusief een transformatie, die kan worden gebruikt met de Logboekopname-API. U kunt deze DCR niet wijzigen in Azure Portal, maar u kunt deze wijzigen met behulp van een van de methoden die in dit artikel worden beschreven. Zie Een aangepaste tabel maken.
Kubernetes-bewaking Als u een Kubernetes-cluster wilt bewaken, schakelt u Container Insights in voor logboeken en Prometheus voor metrische gegevens. Er wordt een DCR gemaakt en gekoppeld aan de containerversie van de Azure Monitor-agent in het cluster. Mogelijk moet u de DCR van Container Insights wijzigen om een transformatie toe te voegen. Zie Bewaking inschakelen voor Kubernetes-clusters en gegevenstransformaties in Container Insights.
DCR voor werkruimtetransformatie DCR's voor werkruimtetransformatie bieden transformaties voor scenario's voor gegevensverzameling die nog geen GEBRUIK maken van DCR's. U kunt deze DCR maken met behulp van Azure Portal om een transformatie voor een bepaalde tabel te maken. Zie DcR voor werkruimtetransformatie maken.

DCR-definitie

Ongeacht hoe deze wordt gemaakt, heeft elke DCR een definitie die volgt op een standaard JSON-schema. Als u een DCR wilt maken of bewerken met een andere methode dan Azure Portal, moet u rechtstreeks met de JSON-definitie werken. Voor sommige scenario's moet u werken met de JSON-definitie, omdat Azure Portal geen manier biedt om de DCR indien nodig te configureren.

U kunt de JSON voor een DCR weergeven in Azure Portal door te klikken op de JSON-weergave in het menu Overzicht .

Schermopname van de optie voor het weergeven van de JSON voor een DCR in Azure Portal.

Controleer of de nieuwste versie van de API is geselecteerd in de vervolgkeuzelijst API-versie . Zo niet, dan wordt een deel van de JSON mogelijk niet weergegeven.

Schermopname van de JSON voor een DCR in Azure Portal.

U kunt ook de JSON voor de DCR ophalen door de REST API van DCR aan te roepen. Met het volgende PowerShell-script wordt bijvoorbeeld de JSON voor een DCR opgehaald en opgeslagen in een bestand.

$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

Notitie

U kunt de details voor een DCR ophalen met behulp van Get-AzDataCollectionRule de cmdlet in PowerShell of az monitor data-collection rule show de opdracht in Azure CLI, maar ze bieden de JSON niet in de indeling die u nodig hebt om te bewerken. Gebruik in plaats daarvan PowerShell of CLI om de REST API aan te roepen, zoals wordt weergegeven in het voorbeeld.

Een DCR maken of bewerken met JSON

Naast het bewerken van een bestaande DCR kunt u een nieuwe maken met behulp van een van de voorbeeld-DCR's 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.

Zodra u de definitie van uw DCR hebt, kunt u deze implementeren in Azure Monitor met behulp van Azure Portal, CLI, PowerShell, API of ARM-sjablonen.

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. U kunt dezelfde opdracht gebruiken om een bestaande DCR bij te werken.

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'

Notitie

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 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 Azure Portal en selecteer 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, kan het lastig zijn om de hoofdoorzaak van het probleem te bepalen. Gebruik 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.

Als u geen gegevens ziet die worden verzameld, volgt u deze basisstappen om het probleem op te lossen.

  1. 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.
  2. 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 hetzelfde zijn als Logs Rows Dropped per Min deze, worden er geen gegevens opgenomen in de werkruimte. Bekijk de Logs Transformation Errors per Min om te zien of er transformatiefouten zijn.
  3. 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.
  4. 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