策略和政策措施提供了一种方法,用于使用 Azure Monitor 的 诊断设置 大规模地启用日志记录。 本文介绍如何为没有内置策略的 Azure 资源创建自定义策略。 若要为具有内置策略的 Azure 资源创建诊断设置,请参阅 使用内置 Azure 策略大规模创建诊断设置。
使用日志类别组
日志类别组包含类似类型的日志。 使用类别组,可以轻松地在单个命令中引用多个日志。
allLogs类别组包含所有日志。
audit类别组包括所有审核日志。
通过使用类别组,可以定义在将新日志类别添加到组时动态更新的策略。
创建自定义策略定义
对于没有内置策略的资源类型,你需要创建自定义策略定义。 可以在 Azure 门户中手动创建策略,方法是复制现有的内置策略,然后针对资源类型对其进行修改。 也可以使用 PowerShell 库中的脚本以编程方式创建策略。
该脚本 Create-AzDiagPolicy 为可以使用 PowerShell 或 Azure CLI 安装的特定资源类型创建策略文件。 使用以下过程可为诊断设置创建自定义策略定义:
请确保已安装 Azure PowerShell。
使用以下命令安装脚本:
Install-Script -Name Create-AzDiagPolicy通过使用参数指定要将日志发送到何处来运行该脚本。 在提示符下指定订阅和资源类型。
例如,若要创建将日志发送到 Log Analytics 工作区和事件中心的策略定义,请使用以下命令:
Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"另外,还可以在命令中指定订阅和资源类型。 例如,若要为 SQL Server 数据库创建将日志发送到 Log Analytics 工作区和事件中心的策略定义,请使用以下命令:
Create-AzDiagPolicy.ps1 -SubscriptionID <subscription id> -ResourceType Microsoft.Sql/servers/databases -ExportLA -ExportEH -ExportDir ".\PolicyFiles"此脚本为每个策略定义创建单独的文件夹。 每个文件夹包含三个文件:
azurepolicy.json、azurepolicy.rules.json和azurepolicy.parameters.json。 如果要在 Azure 门户中手动创建策略,可以复制并粘贴其内容azurepolicy.json,因为它包括整个策略定义。 通过 PowerShell 或 Azure CLI 从命令行使用其他两个文件创建策略定义。以下示例演示了如何通过 PowerShell 和 Azure CLI 安装策略定义。 每个示例都包含一个元数据,用于指定一个类别
Monitoring,以使用内置策略定义对新策略定义进行分组。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
创建倡议
与为每个策略定义创建分配不同,一种常见的策略是创建一个计划,在其中包括策略定义,以便为每个 Azure 服务创建诊断设置。 根据你管理环境的方式,在计划与管理组、订阅或资源组之间创建分配。 此策略具有以下优势:
- 为计划创建单个分配,而不是为每个资源类型创建多个分配。 对多个监视组、订阅或资源组使用同一计划。
- 当需要添加新的资源类型或目标时,只需修改计划即可。 例如,你最初的要求可能是仅将数据发送到 Log Analytics 工作区,但之后想要添加事件中心。 请修改方案,而不要创建新任务。
有关创建计划的详细信息,请参阅创建和分配计划定义。 请考虑以下建议:
- 将类别设置为监视,以便与相关的内置和自定义策略定义分组。
- 使用一个通用的计划参数,而不是为计划中包含的策略定义指定 Log Analytics 工作区和事件中心的详细信息。 此参数允许为所有策略定义指定通用值,并在必要时更改该值。
分配举措
根据要监视的资源的范围,将计划分配给 Azure 管理组、订阅或资源组。 管理组可用于限定策略范围,尤其是当你的组织有多个订阅时。
通过使用计划参数,你可以同时为计划中的所有策略定义指定工作区或任何其他详细信息。
创建修正任务
该计划在创建时应用于每个虚拟机。 修正任务将该计划中的策略定义部署到现有资源,因此,你可以为已创建的任何资源创建诊断设置。
使用 Azure 门户创建分配时,可以选择同时创建修正任务。 有关修正的详细信息,请参阅 使用 Azure Policy 修正不符合资源。