Share via


Erstellen von Diagnoseeinstellungen im großen Stil mithilfe von Azure Policy und Initiativen

Zum Überwachen von Azure-Ressourcen müssen Diagnoseeinstellungen für jede Ressource erstellt werden. Wenn Sie über viele Ressourcen verfügen, kann dieser Prozess schwierig zu verwalten sein. Damit Sie Diagnoseeinstellungen leichter im großen Stil erstellen und anwenden können, verwenden Sie Azure Policy, um Diagnoseeinstellungen sowohl für neue als auch für vorhandene Ressourcen automatisch zu generieren.

Jeder Azure-Ressourcentyp verfügt über einen eindeutigen Satz von Kategorien, die in der Diagnoseeinstellung aufgelistet werden. Für jeden Ressourcentyp ist deshalb eine separate Richtliniendefinition erforderlich. Einige Ressourcentypen verfügen über integrierte Richtliniendefinitionen, die Sie ohne Änderungen zuweisen können. Für andere Ressourcentypen können Sie eine benutzerdefinierte Definition erstellen.

Protokollkategoriegruppen

Protokollkategoriengruppen dienen zum Gruppieren ähnlicher Protokolltypen. Kategoriegruppen erleichtern es, in einem einzigen Befehl auf mehrere Protokolle zu verweisen. Es gibt eine allLogs-Kategoriegruppe, die alle Protokolle enthält. Es gibt auch eine Kategoriegruppe Überwachung, die alle Überwachungsprotokolle enthält. Mithilfe einer Kategoriegruppe können Sie eine Richtlinie definieren, die dynamisch aktualisiert wird, wenn einer Gruppe neue Protokollkategorien hinzugefügt werden.

Integrierte Richtliniendefinitionen für Azure Monitor

In der Regel gibt es drei integrierte Richtliniendefinitionen für jeden Ressourcentyp, die den drei Zielen entsprechen, an die die Diagnose gesendet werden soll:

  • Log Analytics-Arbeitsbereiche
  • Azure Storage-Konten
  • Event Hubs

Weisen Sie die Richtlinien für den Ressourcentyp je nach den benötigten Zielen zu.

Es wurden eine Reihe von integrierten Richtlinien und Initiativen entwickelt, die auf den Überwachungsprotokoll-Kategoriegruppen basieren, damit Sie Diagnoseeinstellungen mit nur wenigen Schritten anwenden können. Weitere Informationen finden Sie unter Aktivieren von Diagnoseeinstellungen nach Kategoriegruppe mit integrierten Richtlinien.

Eine vollständige Liste der integrierten Richtlinien für Azure Monitor finden Sie unter Integrierte Azure Policy-Definitionen für Azure Monitor.

Benutzerdefinierte Richtliniendefinitionen

Für Ressourcentypen, die über keine integrierte Richtlinie verfügen, müssen Sie eine benutzerdefinierte Richtliniendefinition erstellen. Sie können im Microsoft Azure-Portal eine neue Richtlinie manuell erstellen, indem Sie eine vorhandene integrierte Richtlinie kopieren und dann für Ihren Ressourcentyp ändern. Stattdessen können Sie die Richtlinie auch programmgesteuert mithilfe eines Skripts im PowerShell-Katalog erstellen.

Das Skript Create-AzDiagPolicy erstellt Richtliniendateien für einen bestimmten Ressourcentyp, die Sie mithilfe von PowerShell oder der Azure CLI installieren können. Erstellen Sie mit folgendem Verfahren eine benutzerdefinierte Richtliniendefinition für Diagnoseeinstellungen:

  1. Vergewissern Sie sich, dass Azure PowerShell installiert ist.

  2. Installieren Sie das Skript mit dem folgenden Befehl:

    Install-Script -Name Create-AzDiagPolicy
    
  3. Führen Sie das Skript mit den Parametern aus, die angeben, wohin die Protokolle gesendet werden sollen. Sie werden aufgefordert, ein Abonnement und einen Ressourcentyp anzugeben.

    Wenn Sie z. B. eine Richtliniendefinition erstellen möchten, die Protkolle an einen Log Analytics-Arbeitsbereich und einen Event Hub sendet, verwenden Sie den folgenden Befehl:

    Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    

    Alternativ können Sie ein Abonnement und einen Ressourcentyp im Befehl angeben. Wenn Sie z. B. eine Richtliniendefinition erstellen möchten, die an einen Log Analytics-Arbeitsbereich und einen Event Hub für Azure SQL Server-Datenbanken sendet, verwenden Sie den folgenden Befehl:

    Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ResourceType Microsoft.Sql/servers/databases  -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    
  4. Das Skript erstellt separate Ordner für jede Richtliniendefinition. Jeder Ordner enthält drei Dateien mit den Namen azurepolicy.json, azurepolicy.rules.json und azurepolicy.parameters.json. Wenn Sie die Richtlinie manuell im Azure-Portal erstellen möchten, können Sie den Inhalt von azurepolicy.json kopieren und einfügen, da diese Datei die gesamte Richtliniendefinition enthält. Verwenden Sie die anderen beiden Dateien mit PowerShell oder der Azure CLI, um die Richtliniendefinition über eine Befehlszeile zu erstellen.

    In den folgenden Beispielen wird gezeigt, wie die Richtliniendefinition sowohl über PowerShell als auch über die Azure CLI installiert wird. Beide Beispiele enthalten Metadaten zum Angeben einer Kategorie zur Überwachung, um die neue Richtliniendefinition mit den integrierten Richtliniendefinitionen zu gruppieren.

    New-AzPolicyDefinition -name "Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace" -policy .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json -parameter .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json -mode All -Metadata '{"category":"Monitoring"}'
    
    az policy definition create --name 'deploy-diag-setting-sql-database--workspace' --display-name 'Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace'  --rules 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json' --params 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json' --subscription 'AzureMonitor_Docs' --mode All
    

Initiative

Anstatt für jede Richtliniendefinition eine Zuweisung zu erstellen, ist es eine gängige Strategie, eine Initiative zu erstellen, die die Richtliniendefinitionen umfasst, um Diagnoseeinstellungen für jeden Azure-Dienst zu erstellen. Erstellen Sie abhängig von der Art der Verwaltung Ihrer Umgebung eine Zuweisung zwischen der Initiative und einer Verwaltungsgruppe, einem Abonnement oder einer Ressourcengruppe. Diese Strategie bietet folgende Vorteile:

  • Erstellen Sie eine einzelne Zuweisung für die Initiative anstelle mehrerer Zuweisungen für jeden Ressourcentyp. Verwenden Sie dieselbe Initiative für mehrere Überwachungsgruppen, Abonnements oder Ressourcengruppen.
  • Ändern Sie die Initiative, wenn Sie einen neuen Ressourcentyp oder ein neues Ziel hinzufügen müssen. Beispielsweise können die ersten Anforderungen darin bestehen, Daten nur an einen Log Analytics-Arbeitsbereich zu senden, aber später möchten Sie einen Event Hub hinzufügen. Ändern Sie die Initiative, anstatt neue Zuweisungen zu erstellen.

Ausführliche Informationen zum Erstellen einer Initiative finden Sie unter Erstellen und Zuweisen einer Initiativdefinition. Beachten Sie die folgenden Empfehlungen:

  • Legen Sie Kategorie auf Überwachung fest, um sie mit zugehörigen integrierten und benutzerdefinierten Richtliniendefinitionen zu gruppieren.
  • Anstatt die Details für den Log Analytics-Arbeitsbereich und den Event Hub für die Richtliniendefinition in der Initiative anzugeben, verwenden Sie einen allgemeinen Initiativparameter. Mit diesem Parameter können Sie auf einfache Weise einen allgemeinen Wert für alle Richtliniendefinitionen angeben und diesen Wert bei Bedarf ändern.

Screenshot that shows settings for initiative definition.

Zuweisung

Weisen Sie die Initiative abhängig vom Umfang ihrer zu überwachenden Ressourcen einer Azure-Verwaltungsgruppe, einem Abonnement oder einer Ressourcengruppe zu. Eine Verwaltungsgruppe ist nützlich für bereichsbezogene Richtlinien, insbesondere wenn Ihre Organisation über mehrere Abonnements verfügt.

Screenshot of the settings for the Basics tab in the Assign initiative section of the Diagnostic settings to Log Analytics workspace in the Azure portal.

Mithilfe von Initiativparametern können Sie den Arbeitsbereich oder andere Details einmal für alle Richtliniendefinitionen in der Initiative angeben.

Screenshot that shows initiative parameters on the Parameters tab.

Wiederherstellung

Die Initiative wird auf jeden virtuellen Computer angewendet, während er erstellt wird. Mit einem Wartungstask werden die Richtliniendefinitionen in der Initiative für vorhandene Ressourcen bereitgestellt, sodass Sie Diagnoseeinstellungen für alle Ressourcen erstellen können, die bereits erstellt wurden.

Wenn Sie die Zuweisung mithilfe des Azure-Portals erstellen, können Sie gleichzeitig einen Wartungstask erstellen. Weitere Informationen zur Wartung finden Sie unter Korrigieren nicht konformer Ressourcen mit Azure Policy.

Screenshot that shows initiative remediation for a Log Analytics workspace.

Problembehandlung

Nicht unterstützte Metrikkategorie

Beim Bereitstellen einer Diagnoseeinstellung erhalten Sie eine Fehlermeldung ähnlich wie Metrikkategorie „xxxx“ wird nicht unterstützt. Dieser Fehler wird möglicherweise angezeigt, auch wenn Ihre vorherige Bereitstellung erfolgreich war.

Das Problem tritt auf, wenn Sie eine Resource Manager-Vorlage, die REST-API, die Azure CLI oder Azure PowerShell verwenden. Über das Microsoft Azure-Portal erstellte Diagnoseeinstellungen sind nicht betroffen, da nur die unterstützten Kategorienamen angezeigt werden.

Das Problem wird von einer vor Kurzem erfolgten Änderung an der zugrunde liegenden API verursacht. Andere Metrikkategorien als „AllMetrics“ werden nicht unterstützt und wurden mit Ausnahme einiger weniger spezifischer Azure-Dienste auch nie unterstützt. In der Vergangenheit wurden andere Kategorienamen beim Bereitstellen einer Diagnoseeinstellung ignoriert. Das Azure Monitor-Backend leitete diese Kategorien auf "AllMetrics" um. Im Februar 2021 wurde das Back-End aktualisiert, sodass speziell dafür gesorgt ist, dass die bereitgestellte Metrikkategorie korrekt ist. Diese Änderungen führt zu Fehlern bei einigen Bereitstellungen.

Wenn Sie diesen Fehler erhalten, aktualisieren Sie Ihre Bereitstellungen, sodass alle Metrikkategorienamen durch 'AllMetrics' ersetzt werden, um das Problem zu beheben. Wenn bei der Bereitstellung zuvor mehrere Kategorien hinzugefügt wurden, sollten Sie nur den 'AllMetrics'-Verweis beibehalten. Wenn das Problem weiterhin besteht, wenden Sie sich an den Azure-Support über das Azure-Portal.

Einstellung wird aufgrund von Nicht-ASCII-Zeichen in resourceID nicht mehr angezeigt

Diagnoseeinstellungen unterstützen keine Ressourcen-IDs mit Nicht-ASCII-Zeichen (z. B. „Präproduktion“). Da Sie Ressourcen in Azure nicht umbenennen können, besteht Ihre einzige Möglichkeit darin, eine neue Ressource ohne Nicht-ASCII-Zeichen zu erstellen. Wenn sich die Zeichen in einer Ressourcengruppe befinden, können Sie die darin enthaltenen Ressourcen in eine neue verschieben. Andernfalls müssen Sie die Ressource neu erstellen.

Nächste Schritte