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 |
|
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 |
|
Stellen Sie Agent-Erweiterungen auf dem virtuellen Computer (VM) bereit. |
Jede Rolle, die die Aktion Microsoft.Resources/deployments/* enthält |
|
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.
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.
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.
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.
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.
Klicken Sie auf Vorlage bearbeiten, um eine bearbeitbare Version des JSON-Codes für die DCR zu öffnen. Ändern Sie die Parameterwerte nicht.
Nehmen Sie alle erforderlichen Änderungen an der DCR vor und klicken Sie dann auf Speichern.
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.
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.
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.
Ü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.
- Überprüfen Sie Metriken, z. B.
Logs Ingestion Bytes per Min
undLogs 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. - Ü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 mitLogs Rows Dropped per Min
sind, werden im Arbeitsbereich keine Daten aufgenommen. Überprüfen SieLogs Transformation Errors per Min
, um zu sehen, ob Transformationsfehler auftreten. - Ü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. - Ü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.