Создание параметров диагностики на уровне с помощью пользовательских политик Azure

Политика Azure и инициативы политики предоставляют метод для включения ведения журнала в масштабе с помощью параметров диагностики для Azure Monitor. В этой статье описывается создание настраиваемой политики для ресурсов Azure, которые не имеют встроенной политики. Сведения о создании параметров диагностики для ресурсов Azure со встроенными политиками см. в статье "Создание параметров диагностики в масштабе с помощью встроенных политик Azure".

Необходимые условия

  • Чтобы создать определения политик, инициативы и назначения, вам потребуется роль участника политики ресурсов или роль, которая включает эти разрешения, такие как владелец, в области, в которой вы работаете.
  • Для deployIfNotExists исправления назначение политики требует управляемого удостоверения. Предоставьте удостоверению роль с разрешением на создание параметров диагностики в области назначения, например участника мониторинга или участникаLog Analytics.

Применение групп категорий журналов

Группы категорий журналов содержат аналогичные типы журналов. Группы категорий позволяют легко ссылаться на несколько журналов в одной команде.

Группа категорий Содержимое
allLogs Все доступные журналы для ресурса.
audit Все журналы аудита для ресурса.

Используйте группу категорий для определения политики, которая динамически обновляется при добавлении новых категорий журналов в группу.

Создание определения настраиваемой политики

Для типов ресурсов, у которых нет встроенной политики, создайте определение настраиваемой политики. Создайте политику вручную на портале Azure, скопируйте существующую встроенную политику и измените ее для типа ресурса. В качестве альтернативы создайте политику программным способом с помощью скрипта в коллекция PowerShell.

Скрипт Create-AzDiagPolicy создает файлы политики для определенного типа ресурса. Установите файлы с помощью PowerShell или Azure CLI. Чтобы создать настраиваемое определение политики для параметров диагностики, выполните указанные ниже действия.

  1. Убедитесь, чтоб у вас установлен Azure PowerShell.

  2. Установите этот скрипт, используя следующую команду:

    Install-Script -Name Create-AzDiagPolicy
    
  3. Запустите скрипт с помощью параметров, которые указывают место отправки журналов. Укажите подписку и тип ресурса в запросе.

    Например, чтобы создать определение политики, которое отправляет журналы в рабочую область Log Analytics и Центры событий Azure, используйте следующую команду:

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

    Кроме того, укажите подписку и тип ресурса в команде. Например, чтобы создать определение политики, которое отправляет журналы в рабочую область Log Analytics и Центры событий Azure для баз данных SQL Server, используйте следующую команду:

    Create-AzDiagPolicy.ps1 -SubscriptionID <subscription id> -ResourceType Microsoft.Sql/servers/databases -ExportLA -ExportEH -ExportDir ".\PolicyFiles"
    
  4. Скрипт создает отдельные папки для каждого определения политики. Каждая папка содержит три файла: 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, но позже вы хотите добавить Центры событий Azure. Измените инициативу, а не создавайте новые задачи.

Сведения о создании инициативы см. в статье Создание определения инициативы и его назначение. Рассмотрите следующие рекомендации.

  • Установите Категорию на Мониторинг, чтобы сгруппировать его с связанными встроенными и настраиваемыми определениями политики.
  • Вместо указания сведений о рабочей области Log Analytics и Центры событий Azure для определений политик, включенных в инициативу, используйте общий параметр инициативы. Этот параметр позволяет указать общее значение для всех определений политик и изменить это значение при необходимости.

Снимок экрана: параметры определения инициативы.

Назначьте инициативу

Назначьте инициативу группе управления Azure, подписке или группе ресурсов в зависимости от области отслеживаемых ресурсов. Группа управления полезна для установления областей действия политики, особенно если в вашей организации несколько подписок.

Снимок экрана: основные параметры назначения инициативы рабочей области Log Analytics на портале Azure.

Параметры инициативы позволяют указать рабочую область или любые другие сведения один раз для всех определений политик в инициативе.

Снимок экрана: параметры инициативы на вкладке

Создание задачи исправления

Политика Azure применяет инициативу к каждому ресурсу при создании ресурса. Задача исправления развертывает определения политики в инициативе в существующих ресурсах и создает параметры диагностики для этих ресурсов.

При создании назначения с помощью портала Azure можно сразу же создать задачу исправления. Дополнительные сведения об исправлении см. в статье "Исправление несоответствующих ресурсов с политикой Azure".

Снимок экрана, который показывает корректировку инициативы для рабочей области Log Analytics.

Проверка параметров диагностики

После завершения назначения и любой задачи исправления убедитесь, что параметры диагностики существуют в ресурсах:

  1. На портале Azure перейдите к ресурсу в области назначения и выберите параметры диагностики в разделе "Мониторинг". Убедитесь, что параметр отправляет журналы в настроенные назначения.

  2. Кроме того, выведите список параметров диагностики для ресурса с помощью Azure CLI:

    az monitor diagnostic-settings list --resource <resource-id>