Создание параметров диагностики для отправки журналов платформы и метрик в различные места назначения

Журналы платформы в Azure, в том числе журнал действий Azure и журналы ресурсов, предоставляют подробные сведения о диагностике и аудите для ресурсов Azure и платформы Azure, от которых они зависят. Метрики платформы собираются по умолчанию и обычно хранятся в базе данных метрик Azure Monitor. В этой статье приведены сведения о создании и настройке параметров диагностики для отправки метрик и журналов платформы в разные назначения.

Важно!

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

Для каждого ресурса Azure требуется собственный параметр диагностики, который определяет следующие критерии:

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

Один параметр диагностики может определять не более одного назначения каждого типа. Если необходимо отправить данные в места назначения нескольких типов (например, в две разные рабочие области Log Analytics), создайте несколько параметров. Каждый ресурс может иметь до 5 параметров диагностики.

В этом видео показано, как выполнить маршрутизацию журналов платформы с помощью параметров диагностики.

Примечание

Метрики платформы отправляются автоматически в раздел метрик Azure Monitor. Параметры диагностики позволяют настроить отправку метрик из определенных служб Azure в журналы Azure Monitor, чтобы анализировать их совместно с другими данными мониторинга с помощью запросов по журналам (с некоторыми ограничениями).

Отправка многомерных метрик с помощью параметров диагностики сейчас не поддерживается. Метрики с измерениями экспортируются как преобразованные в плоскую структуру одномерные метрики, агрегированные по значениям измерений. Например, метрику IOReadBytes на основе блокчейна можно исследовать и отображать на диаграмме на уровне каждого узла. Однако при экспорте с помощью параметров диагностики эта метрика представляется как все считанные байты для всех узлов. Кроме того, из-за внутренних ограничений не все метрики можно экспортировать в журналы Azure Monitor. Для получения дополнительных сведений см. список экспортируемых метрик.

Чтобы обойти эти ограничения для конкретных метрик, мы рекомендуем вручную извлечь их с помощью REST API метрик и импортировать их в журналы Azure Monitor с помощью API сборщика данных Azure Monitor .

Места назначения

Журналы и метрики платформы можно отправлять в места назначения, приведенные в следующей таблице:

Назначение Описание
Рабочая область Log Analytics Отправка журналов и метрик в рабочую область Log Analytics, которая позволяет анализировать их вместе с другими данными мониторинга, собранными Azure Monitor, используя эффективные запросы журналов, а также другие возможности Azure Monitor, такие как оповещения и визуализации.
Центры событий Отправка журналов и метрик позволяет выполнять потоковую передачу данных во внешние системы, такие как сторонние решения SIEM и другие решения Log Analytics.
Учетная запись хранения Azure Архивирование журналов и метрик в учетную запись хранения Azure оптимально использовать для аудита, статического анализа и резервного копирования. По сравнению с журналами Azure Monitor и рабочей области Log Analytics служба хранилища Azure предполагает меньше затрат, а журналы могут храниться в течение неопределенного срока.

Требования к назначениям

Перед созданием параметра диагностики необходимо создать для него все назначения. Назначение не обязательно должно находиться в той же подписке, что и ресурс, отправляющий журналы, если пользователь, настраивающий параметр, обладает соответствующим доступом Azure RBAC к обеим подпискам. С помощью Azure Lighthouse также можно обеспечить отправку параметров диагностики в рабочую область в другом клиенте Azure Active Directory. В следующей таблице приведены уникальные требования к каждому назначению, включая региональные ограничения:

Назначение Требования
Рабочая область Log Analytics Рабочая область не обязательно должна находиться в том же регионе, что и отслеживаемый ресурс.
Центры событий Политика общего доступа для пространства имен определяет разрешения, предоставленные механизму потоковой передачи. Для потоковой передачи журналов в Центры событий нужны разрешения на управление, отправку и прослушивание. Чтобы обновить параметр диагностики для включения потоковой передачи, необходимо иметь разрешение ListKey для правила авторизации этих Центров событий.

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

Чтобы отправить данные в неизменяемое хранилище, задайте политику неизменяемости для учетной записи хранения, как описано в статье Настройка и администрирование политик неизменяемости для хранилища BLOB-объектов. Необходимо выполнить все действия, описанные в этой статье, в том числе включить защищенные операции записи для добавления BLOB-объектов.

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

Примечание

Учетные записи Azure Data Lake Storage 2-го поколения в настоящее время не поддерживаются в качестве назначения для параметров диагностики, хотя они могут быть указаны на портале Azure в качестве допустимого параметра.

Примечание

Azure Monitor (параметры диагностики) не может получить доступ к ресурсам Центров событий, если включены виртуальные сети. Необходимо включить параметр "Разрешить доверенным службам Майкрософт обходить этот брандмауэр" в Центре событий, чтобы служба Azure Monitor (параметры диагностики) получила доступ к ресурсам Центров событий.

Создание на портале Azure

Параметры диагностики можно настроить на портале Azure в меню Azure Monitor или в меню для ресурса.

  1. Настройка параметров диагностики на портале Azure зависит от ресурса.

    • Для одного ресурса: выберите пункт Параметры диагностики в разделе Мониторинг в меню ресурса.

      Снимок экрана: раздел "Мониторинг" в меню ресурса на портале Azure и выделенный пункт "Параметры диагностики".

    • Для одного или нескольких ресурсов: выберите пункт Параметры диагностики в разделе Параметры меню Azure Monitor, а затем щелкните ресурс.

      Снимок экрана: раздел "Параметры" в меню Azure Monitor с выделенным пунктом "Параметры диагностики".

    • Для журнала действий: выберите пункт Журнал действий в меню Azure Monitor, а затем щелкните Параметры диагностики. Убедитесь, что отключены все устаревшие конфигурации для журнала действий. См. дополнительные сведения об отключении существующих параметров.

      Снимок экрана: меню Azure Monitor с выбранным пунктом "Журнал действий" и выделенный пункт "Параметры диагностики" в строке меню.

  2. Если параметров для выбранного ресурса не существует, вам будет предложено создать параметр. Щелкните Добавить параметр диагностики.

    Добавление параметра диагностики — имеющиеся параметры отсутствуют

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

    Добавление параметра диагностики — имеющиеся параметры

  3. Присвойте параметру имя, если его еще нет.

    Добавление параметра диагностики

  4. Сведения о категории (что нужно маршрутизировать). Установите флажок для каждой категории данных, которые вы хотите отправлять в назначения, которые будут заданы позже. Списки категорий для разных служб Azure различаются.

    • AllMetrics направляет метрики платформы для ресурса в хранилище журналов Azure в форме журнала. Эти метрики обычно отправляются только в базу данных временных рядов метрик Azure Monitor. Отправив их в хранилище журналов Azure Monitor (которое доступно через журналы Azure Monitor), вы сможете интегрировать их в запросы, которые выполняют поиск в других журналах. Этот параметр может быть недоступен для некоторых типов ресурсов. Если он поддерживается, вам будет полезно просмотреть статью Метрики, поддерживаемые Azure Monitor, чтобы узнать, какие метрики собираются для тех или иных типов ресурсов.

      Примечание

      См. сведения об ограничении для маршрутизации метрик в журналы Azure Monitor выше в этой статье.

    • В разделе Журналы перечислены различные категории, доступные в зависимости от типа ресурса. Проверьте все категории, которые вы хотите перенаправлять в место назначения.

  5. Сведения о назначении. Установите флажок для каждого назначения. При установке каждого флажка отображаются параметры, позволяющие добавлять дополнительные сведения.

    Отправка в журналы Azure Monitor или в Центры событий

    1. Отправить в Log Analytics. Укажите подписку и рабочую область. Если у вас нет рабочей области, нужно ее создать.

    2. Передать в концентратор событий. Укажите следующие данные:

      • Подписка, к которой относится концентратор событий.
      • Пространство имен концентратора событий. Если у вас его еще нет, его нужно создать.
      • Имя концентратора событий (необязательно) для отправки всех данных. Если имя не указано, для каждой категории журналов создается концентратор событий. При отправке нескольких категорий может потребоваться указать имя, чтобы ограничить число создаваемых концентраторов событий. Дополнительные сведения см. в статье Квоты и ограничения Центров событий Azure.
      • Политика концентратора событий (необязательно). Она определяет разрешения, которые предоставляются механизму потоковой передачи. Дополнительные сведения см. в статье о возможностях Центров событий.
    3. Архивировать в учетной записи хранения. Выберите подписку, учетную запись хранения и политику хранения.

      Отправка в хранилище

      Совет

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

      Во-первых, если вы используете хранилище для архивирования, обычно требуется, чтобы данные хранились более 365 дней. Во-вторых, если выбрать для политики хранения значение больше 0, дата окончания срока действия будет прикреплена к журналам во время хранения. После сохранения журналов вы не сможете изменить эту дату.

      Например, если установить политику хранения для WorkflowRuntime равной 180 дням, а через 24 часа поменять это значение на 365 дней, то журналы, сохраненные в течение первых 24 часов, будут автоматически удалены через 180 дней, а все последующие журналы этого типа будут автоматически удалены по истечении 365 дней. Изменение политики хранения в дальнейшем не приведет к хранению журналов, сохраненных в первые 24 часа, в течение 365 дней.

  6. Выберите команду Сохранить.

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

Создание с помощью PowerShell

Чтобы создать параметр диагностики с помощью Azure PowerShell, используйте командлет Set-AzDiagnosticSetting. Описание параметров командлета см. в документации о нем.

Важно!

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

Ниже приведен пример командлета PowerShell для создания параметра диагностики с использованием всех трех назначений.

Set-AzDiagnosticSetting -Name KeyVault-Diagnostics -ResourceId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mykeyvault -Category AuditEvent -MetricCategory AllMetrics -Enabled $true -StorageAccountId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount -WorkspaceId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/oi-default-east-us/providers/microsoft.operationalinsights/workspaces/myworkspace  -EventHubAuthorizationRuleId /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.EventHub/namespaces/myeventhub/authorizationrules/RootManageSharedAccessKey

Создание с помощью Azure CLI

Чтобы создать параметр диагностики с помощью Azure CLI, используйте команду az monitor diagnostic-settings create. Описание параметров команды см. в документации по этой команде.

Важно!

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

Ниже приведен пример команды CLI для создания параметра диагностики с использованием всех трех назначений. Синтаксис немного отличается в зависимости от клиента.

az monitor diagnostic-settings create  ^
--name KeyVault-Diagnostics ^
--resource /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mykeyvault ^
--logs    "[{""category"": ""AuditEvent"",""enabled"": true}]" ^
--metrics "[{""category"": ""AllMetrics"",""enabled"": true}]" ^
--storage-account /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount ^
--workspace /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/microsoft.operationalinsights/workspaces/myworkspace ^
--event-hub-rule /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.EventHub/namespaces/myeventhub/authorizationrules/RootManageSharedAccessKey

Создание с помощью шаблона Resource Manager

В статье Примеры шаблонов Resource Manager для параметров диагностики в Azure Monitor описано, как создать и обновить параметры диагностики с помощью шаблона Resource Manager.

Создание с помощью REST API

Сведения о создании и обновлении параметров диагностики с помощью REST API Azure Monitor см. в разделе Параметры диагностики.

Создание с помощью Политики Azure

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

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

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

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

Например:

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

При этом раньше такая ошибка не возникала.

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

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

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

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

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

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