Diagnostische instellingen op schaal maken met behulp van Azure-beleid en -initiatieven

Als u Azure-resources wilt bewaken, moet u diagnostische instellingen maken voor elke resource. Dit proces kan moeilijk te beheren zijn wanneer u veel resources hebt. Als u het proces voor het maken en toepassen van diagnostische instellingen op schaal wilt vereenvoudigen, gebruikt u Azure Policy om automatisch diagnostische instellingen te genereren voor zowel nieuwe als bestaande resources.

Elk Azure-resourcetype heeft een unieke set categorieën die worden vermeld in de diagnostische instellingen. Elk resourcetype vereist daarom een afzonderlijke beleidsdefinitie. Sommige resourcetypen hebben ingebouwde beleidsdefinities die u zonder wijziging kunt toewijzen. Voor andere resourcetypen kunt u een aangepaste definitie maken.

Logboekcategoriegroepen

Logboekcategoriegroepen, groeperen vergelijkbare typen logboeken. Met categoriegroepen kunt u eenvoudig naar meerdere logboeken in één opdracht verwijzen. Er bestaat een categoriegroep allLogs die alle logboeken bevat. Er is ook een auditcategoriegroep die alle auditlogboeken bevat. Met behulp van een categoriegroep kunt u een beleid definiëren dat dynamisch wordt bijgewerkt als nieuwe logboekcategorieën worden toegevoegd aan de groep.

Ingebouwde beleidsdefinities voor Azure Monitor

Er zijn over het algemeen drie ingebouwde beleidsdefinities voor elk resourcetype, die overeenkomen met de drie bestemmingen voor het verzenden van diagnostische gegevens naar:

  • Log Analytics-werkruimten
  • Azure Storage-accounts
  • Event hubs

Wijs het beleid voor het resourcetype toe op basis van de bestemmingen die u nodig hebt.

Een set ingebouwde beleidsregels en initiatieven op basis van de categoriegroepen voor auditlogboeken is ontwikkeld om u te helpen diagnostische instellingen met slechts een paar stappen toe te passen. Zie Diagnostische instellingen inschakelen per categoriegroep met behulp van ingebouwd beleid voor meer informatie.

Zie ingebouwde Azure Policy-definities voor Azure Monitor voor een volledige lijst met ingebouwde beleidsregels voor Azure Monitor

Aangepaste beleidsdefinities

Voor resourcetypen die geen ingebouwd beleid hebben, moet u een aangepaste beleidsdefinitie maken. U kunt handmatig een nieuw beleid maken in Azure Portal door een bestaand ingebouwd beleid te kopiëren en dit vervolgens te wijzigen voor uw resourcetype. U kunt het beleid ook programmatisch maken met behulp van een script in de PowerShell Gallery.

Met het script Create-AzDiagPolicy worden beleidsbestanden gemaakt voor een bepaald resourcetype dat u kunt installeren met behulp van PowerShell of de Azure CLI. Gebruik de volgende procedure om een aangepaste beleidsdefinitie te maken voor diagnostische instellingen:

  1. Zorg ervoor dat Azure PowerShell is geïnstalleerd.

  2. Installeer het script met behulp van de volgende opdracht:

    Install-Script -Name Create-AzDiagPolicy
    
  3. Voer het script uit met behulp van de parameters om op te geven waar de logboeken moeten worden verzonden. U wordt gevraagd om een abonnement en resourcetype op te geven.

    Als u bijvoorbeeld een beleidsdefinitie wilt maken waarmee logboeken worden verzonden naar een Log Analytics-werkruimte en een Event Hub, gebruikt u de volgende opdracht:

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

    U kunt ook een abonnement en resourcetype opgeven in de opdracht. Als u bijvoorbeeld een beleidsdefinitie wilt maken waarmee logboeken worden verzonden naar een Log Analytics-werkruimte en een Event Hub voor SQL Server-databases, gebruikt u de volgende opdracht:

    Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ResourceType Microsoft.Sql/servers/databases  -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    
  4. Het script maakt afzonderlijke mappen voor elke beleidsdefinitie. Elke map bevat drie bestanden met de naam azurepolicy.json, azurepolicy.rules.json en azurepolicy.parameters.json. Als u het beleid handmatig wilt maken in Azure Portal, kunt u de inhoud van azurepolicy.json kopiëren en plakken omdat het de volledige beleidsdefinitie bevat. Gebruik de andere twee bestanden met PowerShell of de Azure CLI om de beleidsdefinitie te maken vanaf een opdrachtregel.

    In de volgende voorbeelden ziet u hoe u de beleidsdefinitie installeert vanuit Zowel PowerShell als de Azure CLI. Elk voorbeeld bevat metagegevens voor het opgeven van een categorie Bewaking om de nieuwe beleidsdefinitie te groeperen met de ingebouwde beleidsdefinities.

    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
    

Initiatief

In plaats van een toewijzing te maken voor elke beleidsdefinitie, is een algemene strategie het maken van een initiatief dat de beleidsdefinities omvat voor het maken van diagnostische instellingen voor elke Azure-service. Maak een toewijzing tussen het initiatief en een beheergroep, abonnement of resourcegroep, afhankelijk van hoe u uw omgeving beheert. Deze strategie biedt de volgende voordelen:

  • Maak één toewijzing voor het initiatief in plaats van meerdere toewijzingen voor elk resourcetype. Gebruik hetzelfde initiatief voor meerdere bewakingsgroepen, abonnementen of resourcegroepen.
  • Wijzig het initiatief wanneer u een nieuw resourcetype of een nieuw doel wilt toevoegen. Uw eerste vereisten zijn bijvoorbeeld om alleen gegevens te verzenden naar een Log Analytics-werkruimte, maar later wilt u een Event Hub toevoegen. Wijzig het initiatief in plaats van nieuwe toewijzingen te maken.

Zie Een initiatiefdefinitie maken en toewijzen voor meer informatie over het maken van een initiatief. Bekijk de volgende aanbevelingen:

  • Stel Categorie in op Bewaking om deze te groeperen met gerelateerde ingebouwde en aangepaste beleidsdefinities.
  • In plaats van de details op te geven voor de Log Analytics-werkruimte en de Event Hub voor beleidsdefinities die zijn opgenomen in het initiatief, gebruikt u een algemene initiatiefparameter. Met deze parameter kunt u eenvoudig een gemeenschappelijke waarde opgeven voor alle beleidsdefinities en deze waarde indien nodig wijzigen.

Screenshot that shows settings for initiative definition.

Toewijzing

Wijs het initiatief toe aan een Azure-beheergroep, -abonnement of -resourcegroep, afhankelijk van het bereik van uw resources dat u wilt bewaken. Een beheergroep is handig voor bereikbeleid, met name als uw organisatie meerdere abonnementen heeft.

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.

Met behulp van initiatiefparameters kunt u de werkruimte of andere details één keer opgeven voor alle beleidsdefinities in het initiatief.

Screenshot that shows initiative parameters on the Parameters tab.

Herstel

Het initiatief wordt toegepast op elke virtuele machine terwijl deze wordt gemaakt. Met een hersteltaak worden de beleidsdefinities in het initiatief geïmplementeerd voor bestaande resources, zodat u diagnostische instellingen kunt maken voor alle resources die al zijn gemaakt.

Wanneer u de toewijzing maakt met behulp van Azure Portal, hebt u de mogelijkheid om tegelijkertijd een hersteltaak te maken. Zie Niet-compatibele resources herstellen met Azure Policy voor meer informatie over het herstel.

Screenshot that shows initiative remediation for a Log Analytics workspace.

Problemen oplossen

De categorie Metrische gegevens wordt niet ondersteund

Wanneer u een diagnostische instelling implementeert, wordt er een foutbericht weergegeven dat vergelijkbaar is met de metrische categorie xxxx. Deze fout kan worden weergegeven, ook al is uw vorige implementatie geslaagd.

Het probleem treedt op wanneer u een Resource Manager-sjabloon, REST API, Azure CLI of Azure PowerShell gebruikt. Diagnostische instellingen die zijn gemaakt via Azure Portal, worden niet beïnvloed omdat alleen de ondersteunde categorienamen worden weergegeven.

Het probleem wordt veroorzaakt door een recente wijziging in de onderliggende API. Andere metrische categorieën dan 'AllMetrics' worden niet ondersteund en zijn nooit behalve voor een paar specifieke Azure-services. In het verleden werden andere categorienamen genegeerd bij het implementeren van een diagnostische instelling. De Back-end van Azure Monitor heeft deze categorieën omgeleid naar AllMetrics. Vanaf februari 2021 is de back-end bijgewerkt om te bevestigen dat de opgegeven metrische categorie juist is. Deze wijziging heeft ertoe geleid dat sommige implementaties mislukken.

Als u deze fout ontvangt, werkt u uw implementaties bij om namen van metrische categorieën te vervangen door AllMetrics om het probleem op te lossen. Als de implementatie eerder meerdere categorieën toevoegde, moet er slechts één met de verwijzing 'AllMetrics' worden bewaard. Als u het probleem blijft ondervinden, neemt u contact op met ondersteuning voor Azure via Azure Portal.

Instelling verdwijnt vanwege niet-ASCII-tekens in resourceID

Diagnostische instellingen bieden geen ondersteuning voor resource-ID's met niet-ASCII-tekens (bijvoorbeeld Preproducción). Omdat u de naam van resources in Azure niet kunt wijzigen, kunt u alleen een nieuwe resource maken zonder de niet-ASCII-tekens. Als de tekens zich in een resourcegroep bevinden, kunt u de resources eronder verplaatsen naar een nieuwe. Anders moet u de resource opnieuw maken.

Volgende stappen