Freigeben über


Erstellen von Datensammlungsregeln (Data Collection Rules, DCRs) in Azure Monitor

Es gibt mehrere Methoden zum Erstellen einer Datensammlungsregel (Data Collection Rule, DCR) in Azure Monitor. In einigen Fällen erstellt und verwaltet Azure Monitor die DCR entsprechenden Einstellungen, die Sie im Azure-Portal konfigurieren. Möglicherweise merken Sie nicht einmal, dass Sie in einigen dieser Fälle mit einer DCR arbeiten. Für andere Szenarien müssen Sie jedoch möglicherweise eigene DCRs erstellen oder vorhandene bearbeiten, indem Sie direkt mit ihrer Definition in JSON arbeiten. In diesem Artikel werden die verschiedenen Methoden zum Erstellen einer DCR und Empfehlungen zur Bearbeitung und Problembehandlung beschrieben.

Hinweis

In diesem Artikel wird beschrieben, wie Sie die DCR selbst erstellen und bearbeiten. Informationen zum Erstellen und Bearbeiten von Regelzuordnungen für die Datensammlung finden Sie unter Erstellen und Verwalten von Datensammlungsregelzuordnungen.

Berechtigungen

Sie benötigen die folgenden Berechtigungen zum Erstellen von DCRs und DCR-Zuordnungen zu erstellen:

Integrierte Rolle Bereiche `Reason`
Überwachungsmitwirkender
  • Abonnement und/oder
  • Ressourcengruppe und/oder
  • Eine vorhandene DCR
Erstellen oder bearbeiten Sie DCRs, weisen Sie dem Computer Regeln zu, stellen Sie Zuordnungen bereit.
Mitwirkender von virtuellen Computern
Ressourcenadministrator für Azure Connected Machine
  • VMs, VM-Skalierungsgruppen
  • Server mit Azure Arc-Unterstützung
Stellen Sie Agent-Erweiterungen auf dem virtuellen Computer (VM) bereit.
Jede Rolle, die die Aktion Microsoft.Resources/deployments/* enthält
  • Abonnement und/oder
  • Ressourcengruppe und/oder
  • Eine vorhandene DCR
Stellen Sie die Azure Resource Manager-Vorlagen bereit.

Wichtig

Erstellen Sie Ihre DCR in derselben Region wie Ihren Log Analytics- oder Azure Monitor-Zielarbeitsbereich. Sie können die DCR Computern oder Containern aus einer beliebigen Abonnement- oder Ressourcengruppe im Mandanten zuordnen. Zum mandantenübergreifenden Senden von Daten müssen Sie zuerst Azure Lighthouse aktivieren.

Erstellen oder Bearbeiten einer DCR mithilfe des Azure-Portals

Das Azure-Portal bietet eine vereinfachte Erfahrung zum Erstellen einer DCR für bestimmte Szenarien. Mit dieser Methode müssen Sie die Struktur einer DCR nicht verstehen, obwohl Sie möglicherweise bei der ausführbaren Konfiguration eingeschränkt sind, und die DCR-Definition möglicherweise später bearbeiten müssen, um ein erweitertes Feature wie eine Transformation zu implementieren. Die Benutzeroberfläche variiert in jedem Szenario. Weitere Informationen finden Sie in der Dokumentation für das jeweilige Szenario, mit dem Sie arbeiten, wie in der folgenden Tabelle beschrieben.

Szenario Beschreibung
Aktivieren von VM Insights Wenn Sie VM Insights auf einer VM aktivieren, wird der Azure Monitor-Agent installiert und eine Datensammlungsregel erstellt und der VM zugeordnet. Diese DCR erfasst einen vordefinierten Satz von Leistungsindikatoren und sollte nicht geändert werden. Siehe Aktivieren von VM Insights.
Sammeln von Clientdaten von einer VM Erstellen Sie eine DCR im Azure-Portal mithilfe einer geführten Schnittstelle, um verschiedene Datenquellen aus dem Clientbetriebssystem einer VM auszuwählen. Beispiele sind Windows-Ereignisse, Syslog-Ereignisse und Textprotokolle. Der Azure Monitor-Agent wird bei Bedarf automatisch installiert, und es wird eine Zuordnung zwischen der DCR und jedem ausgewählten virtuellen Computer erstellt. Siehe Sammeln von Daten mit Azure Monitor-Agent.
Metrikexport Erstellen Sie eine DCR im Azure-Portal mithilfe einer geführten Schnittstelle, um Metriken verschiedener Ressourcentypen auszuwählen, die erfasst werden sollen. Eine Zuordnung wird zwischen der DCR und jeder ausgewählten Ressource erstellt. Siehe Erstellen einer Datensammlungsregel (Data Collection Rule, DCR) für den Export von Metriken.
Tabellenerstellung Wenn Sie eine neue Tabelle in einem Log Analytics-Arbeitsbereich mithilfe des Azure-Portals erstellen, laden Sie Beispieldaten hoch, die Azure Monitor zum Erstellen einer DCR verwendet, einschließlich einer Transformation, die mit der Protokollerfassungs-API verwendet werden kann. Sie können diese DCR nicht im Azure-Portal ändern, sie aber mithilfe einer der in diesem Artikel beschriebenen Methoden ändern. Siehe Erstellen einer benutzerdefinierten Tabelle.
Kubernetes-Überwachung Um ein Kubernetes-Cluster zu überwachen, aktivieren Sie Container Insights für Protokolle und Prometheus für Metriken. Es wird für jedes eine DCR erstellt und der containerisierten Version des Azure Monitor-Agents im Cluster zugeordnet. Möglicherweise müssen Sie die Container Insights DCR ändern, um eine Transformation hinzuzufügen. Siehe Aktivieren der Überwachung für Kubernetes-Cluster und Datentransformationen in Container-Insights.
Arbeitsbereichstransformations-DCR DCRs für die Arbeitsbereichstransformation bieten Transformationen für Datensammlungsszenarien, die noch keine DCRs verwenden. Sie können diese DCR mithilfe des Azure-Portals erstellen, um eine Transformation für eine bestimmte Tabelle zu erstellen. Siehe Erstellen einer Arbeitsbereichstransformations-DCR.

DCR-Definition

Unabhängig davon, wie sie erstellt wird, verfügt jede DCR über eine Definition, die einem standardmäßigen JSON-Schema folgt. Um eine DCR mit einer anderen Methode als dem Azure-Portal zu erstellen oder zu bearbeiten, müssen Sie direkt mit ihrer JSON-Definition arbeiten. Für einige Szenarien müssen Sie mit der JSON-Definition arbeiten, da das Azure-Portal keine Möglichkeit zum Konfigurieren der DCR bei Bedarf bietet.

Sie können den JSON-Code für eine DCR im Azure-Portal anzeigen, indem Sie im Menü Übersicht auf JSON-Ansicht klicken.

Screenshot der Option zum Anzeigen des JSON-Codes für eine DCR im Azure-Portal.

Vergewissern Sie sich, dass die neueste Version der API im Dropdownmenü API-Version ausgewählt ist. Wenn nicht, werden einige JSON möglicherweise nicht angezeigt.

Screenshot, der den JSON-Code für eine DCR im Azure-Portal zeigt.

Sie können auch den JSON-Code für die DCR abrufen, indem Sie die DCR-REST-API aufrufen. Das folgende PowerShell-Skript ruft z. B. den JSON-Code für eine DCR ab und speichert ihn in einer Datei.

$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

Hinweis

Sie können die Details für eine DCR mithilfe von Get-AzDataCollectionRule-Cmdlets in PowerShell oder dem az monitor data-collection rule show-Befehl in Azure CLI abrufen, aber sie stellen den JSON-Code nicht im Format bereit, das Sie für die Bearbeitung benötigen. Verwenden Sie stattdessen PowerShell oder CLI, um die REST-API aufzurufen, wie im Beispiel gezeigt.

Erstellen oder Bearbeiten einer DCR mit JSON

Zusätzlich zum Bearbeiten einer vorhandenen DCR können Sie eine neue erstellen, indem Sie eine der Beispiel-DCRs verwenden, die den JSON-Code für mehrere gängige Szenarien bereitstellen. Verwenden Sie die Informationen unter Struktur einer Datensammlungsregel in Azure Monitor, um die JSON-Datei für Ihre Umgebung und Ihre Anforderungen entsprechend anzupassen.

Sobald Sie über die Definition Ihrer DCR verfügen, können Sie sie mithilfe des Azure-Portals, der CLI, PowerShell, der API oder den ARM-Vorlagen in Azure Monitor bereitstellen.

Erstellen oder Bearbeiten der DCR mit CLI

Verwenden Sie den Befehl az monitor data-collection rule create, um eine Datensammlungsregel aus Ihrer JSON-Datei zu erstellen. Sie können diesen Befehl verwenden, um eine vorhandene DCR zu aktualisieren.

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'

Hinweis

Sie können zwar die PowerShell- oder CLI-Befehle verwenden, um eine DCR zu erstellen und zu bearbeiten, die API- und ARM-Methoden bieten jedoch detailliertere Fehlermeldungen, wenn Kompilierungsfehler auftreten.

Im folgenden Beispiel gibt die DCR einen Tabellennamen an, der im Ziel-Log Analytics-Arbeitsbereich nicht existiert. Der PowerShell-Befehl gibt eine generische Fehlermeldung zurück, der API-Aufruf gibt jedoch eine detaillierte Fehlermeldung zurück, die den genauen Fehler angibt.

Screenshot einer Fehlermeldung für eine DCR bei Verwendung eines PowerShell-Befehls.

Screenshot einer Fehlermeldung für eine DCR bei Verwendung der API.

Strategien zum Bearbeiten und Testen einer DCR

Wenn Sie eine DCR mit ihrer JSON-Definition erstellen oder bearbeiten, müssen Sie häufig mehrere Aktualisierungen vornehmen, um die gewünschte Funktionalität zu erzielen. Sie benötigen eine effiziente Methode zum Aktualisieren der DCR. Nutzen Sie die Problembehandlung, wenn Sie nicht die erwarteten Ergebnisse erhalten und dann zusätzliche Updates vornehmen. Dies gilt insbesondere, wenn Sie eine Transformation zur DCR hinzufügen, da Sie überprüfen müssen, ob die Abfrage wie erwartet funktioniert. Da Sie den JSON-Code nicht direkt im Azure-Portal bearbeiten können, befolgen Sie einige Strategien, die Sie verwenden können.

Lokale Datei als Quelle der DCR verwenden

Wenn Sie eine lokale JSON-Datei als Quelle der DCRs, die Sie erstellen und bearbeiten, verwenden, sind Sie sicher, dass Sie immer Zugriff auf die neueste Version der DCR-Definition haben. Dies ist ideal, wenn Sie Versionssteuerungstools wie GitHub oder Azure DevOps verwenden möchten, um Ihre Änderungen zu verwalten. Sie können auch einen Editor wie VS Code verwenden, um Änderungen an der DCR vorzunehmen, und dann Befehlszeilentools zu verwenden, um den DCR in Azure Monitor wie oben beschrieben zu aktualisieren.

Nachfolgend finden Sie ein PowerShell-Beispielskript, mit dem Sie Änderungen aus einer Quelldatei an eine DCR übertragen können. Dadurch wird überprüft, ob die Quelldatei gültiger JSON-Code ist, bevor sie an Azure Monitor gesendet wird.

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		

Speichern von DCR-Inhalten in einer temporären Datei

Wenn Sie nicht über die DCR-Definition in einer lokalen Datei verfügen, können Sie die Definition von Azure Monitor abrufen und in einer temporären Datei speichern. Sie können die Datei dann mit einem Editor wie VS Code bearbeiten, bevor Sie die Updates an Azure Monitor übertragen.

Nachfolgend finden Sie ein PowerShell-Beispielskript, das Sie zum Bearbeiten einer vorhandenen DCR in Azure Monitor verwenden können. Das Skript ruft die DCR-Definition ab und speichert sie in einer temporären Datei, bevor VS Code gestartet wird. Nachdem Sie das Skript angegeben haben, in dem Sie ihre Änderungen gespeichert haben, wird die DCR mit dem neuen Inhalt aktualisiert, und die temporäre Datei wird gelöscht.

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

Verwenden einer ARM-Vorlage zum Bearbeiten einer DCR

Wenn Sie Ihre Bearbeitungen vollständig im Azure-Portal ausführen möchten, können Sie das Exportvorlagen-Feature verwenden, um die ARM-Vorlage für eine DCR abzurufen. Anschließend können Sie die Definition in JSON ändern und erneut im Azure-Portal bereitstellen.

  1. Wählen Sie die DCR aus, die Sie im Azure-Portal ändern möchten, und wählen Sie Vorlage exportieren aus. Klicken Sie dann auf Bereitstellen, um dieselbe Vorlage erneut bereitzustellen.

    Screenshot der Option „Vorlage exportieren“ für eine Datensammlungsregel im Azure-Portal.

  2. Klicken Sie auf Vorlage bearbeiten, um eine bearbeitbare Version des JSON-Codes für die DCR zu öffnen. Ändern Sie die Parameterwerte nicht.

    Screenshot der Option „Vorlage bearbeiten“ für eine Datensammlungsregel im Azure-Portal.

  3. Nehmen Sie alle erforderlichen Änderungen an der DCR vor und klicken Sie dann auf Speichern.

    Screenshot der bearbeitbaren JSON für eine Datensammlungsregel im Azure-Portal.

  4. Wenn Sie eine neue DCR erstellen möchten, ändern Sie den Namensparameter. Lassen Sie andernfalls die Parameter unverändert. Klicken Sie auf Überprüfen und erstellen, um die geänderte Vorlage bereitzustellen, und Erstellen, um die neue DCR zu erstellen.

    Screenshot der Option „Überprüfen und Erstellen“ für eine Datensammlungsregel im Azure-Portal.

  5. Wenn die DCR ohne Fehler gültig ist, wird die Bereitstellung erfolgreich ausgeführt, und die DCR wird mit der neuen Konfiguration aktualisiert. Klicken Sie auf Zur Ressource wechseln, um die geänderte DCR zu öffnen.

    Screenshot einer erfolgreichen Bereitstellung für eine Datensammlungsregel im Azure-Portal.

  6. Wenn die DCR Kompilierungsfehler aufweist, wird eine Meldung angezeigt, dass die Bereitstellung fehlgeschlagen ist. Klicken Sie auf Fehlerdetails und Vorgangsdetails, um Einzelheiten des Fehlers anzuzeigen. Klicken Sie auf Erneut bereitstellen und wieder auf Vorlage bearbeiten, um die erforderlichen Änderungen an der DCR vorzunehmen und sie dann erneut zu speichern und bereitzustellen.

    Screenshot einer fehlgeschlagenen Bereitstellung für eine Datensammlungsregel im Azure-Portal.

Überprüfen und Behandeln von Problemen bei der Datensammlung

Nachdem Sie den DCR installiert haben, kann es mehrere Minuten dauern, bis die Änderungen wirksam werden und Daten mit der aktualisierten DCR gesammelt werden. Wenn keine Daten erfasst werden, kann es schwierig sein, die Ursache des Problems zu ermitteln. Verwenden Sie die DCR-Überwachungsfeatures, die Metriken und Protokolle enthalten, um Problembehandlungen zu unterstützen.

DCR-Metriken werden automatisch für alle DCRs gesammelt, und Sie können sie mithilfe des Metrik-Explorers wie die Plattformmetriken für andere Azure-Ressourcen analysieren. Aktivieren Sie DCR-Fehlerprotokolle, um detaillierte Fehlerinformationen zu erhalten, wenn die Datenverarbeitung nicht erfolgreich ist.

Wenn die gesammelten Daten nicht angezeigt werden, führen Sie die folgenden grundlegenden Schritte aus, um das Problem zu beheben.

  1. Überprüfen Sie Metriken, z. B. Logs Ingestion Bytes per Min und Logs Rows Received per Min stellen Sie sicher, dass die Daten Azure Monitor erreichen. Wenn nicht, überprüfen Sie Die Datenquelle, um sicherzustellen, dass sie Daten wie erwartet sendet.
  2. Überprüfen Sie Logs Rows Dropped per Min, um zu sehen, ob Zeilen gelöscht werden. Dies weist möglicherweise nicht auf einen Fehler hin, da die Zeilen durch eine Transformation verworfen werden können. Wenn die verworfenen Zeilen identisch mit Logs Rows Dropped per Min sind, werden im Arbeitsbereich keine Daten aufgenommen. Überprüfen Sie Logs Transformation Errors per Min, um zu sehen, ob Transformationsfehler auftreten.
  3. Überprüfen Sie Logs Transformation Errors per Min, um zu sehen, ob Fehler von Transformationen auf die eingehenden Daten angewendet wurden. Dies kann auf Änderungen der Datenstruktur oder der Transformation selbst zurückzuführen sein.
  4. Überprüfen Sie die DCRLogErrors-Tabelle auf Erfassungsfehler, die möglicherweise protokolliert wurden. Dies kann zusätzliche Details zur Identifizierung der Ursache des Problems liefern.

Nächste Schritte