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

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

Каждый тип ресурса Azure имеет уникальный набор категорий, перечисленных в параметрах диагностики. Таким образом, для каждого типа ресурса требуется отдельное определение политики. У некоторых типов имеются встроенные определения политик, которые можно назначать без изменений. Для других типов ресурсов можно создать пользовательское определение.

Группы категорий журналов

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

Встроенные определения политик для Azure Monitor

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

  • Рабочие области Log Analytics
  • Учетные записи хранения Azure
  • Центры событий

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

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

Полный список встроенных политик для Azure Monitor см. в Политика Azure встроенных определений для Azure Monitor.

Пользовательские определения политик

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

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

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

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

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

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

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

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

    Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -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. Каждый пример содержит метаданные, задающие категорию Мониторинг, чтобы добавить новое определение политики в соответствующую группу со встроенными определениями.

    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".

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

Устранение неполадок

Категория метрики не поддерживается

При развертывании параметра диагностики появляется сообщение об ошибке, подобное этому: Категория метрики "xxxx" не поддерживается. Эта ошибка может возникнуть, даже если предыдущее развертывание выполнено успешно.

Эта проблема возникает при использовании шаблона Resource Manager, REST API, Azure CLI или Azure PowerShell. Параметры диагностики, созданные с помощью портал Azure, не затрагиваются, так как отображаются только поддерживаемые имена категорий.

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

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

Параметр исчезает из-за использования в resourceID символов, не входящих в ASCII

Параметры диагностики не поддерживают идентификаторы ресурсов с символами, отличными от ASCII (например, Preproducción). Так как вы не можете переименовать ресурсы в Azure, единственным вариантом является создание нового ресурса без символов, отличных от ASCII. Если такие символы присутствуют в группе ресурсов, можно переместить ресурсы в новую. В противном случае вам нужно будет создать ресурс повторно.

Следующие шаги