Пересылка журналов диагностики служба автоматизации Azure в Azure Monitor

Служба автоматизации Azure может отправлять состояние задания runbook и потоки заданий в рабочую область Log Analytics. Этот процесс не включает связывание рабочих областей и является полностью независимым и позволяет выполнять простые исследования. Журналы заданий и потоки заданий отображаются в портал Azure или PowerShell для отдельных заданий. С помощью журналов Azure Monitor для учетной записи службы автоматизации можно:

  • Получите аналитические сведения о состоянии заданий службы автоматизации.
  • активировать отправку электронного сообщения или оповещения в соответствии с состоянием задания runbook (например, сбой или приостановка);
  • создавать сложные запросы для потоков заданий;
  • коррелировать задания и учетные записи службы автоматизации;
  • Используйте настраиваемые представления и поисковые запросы, чтобы визуализировать результаты runbook, состояние задания Runbook и другие связанные ключевые индикаторы или метрики с помощью панели мониторинга Azure.
  • Получение журналов аудита, связанных с учетными записями службы автоматизации, модулями Runbook и другими операциями создания, изменения и удаления ресурсов.

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

Azure Monitor использует версию языка запросов Kusto (KQL), используемого Обозреватель данных Azure, которая подходит для простых запросов журналов. Она также включает расширенные функциональные возможности, такие как агрегаты, соединения и смарт-аналитика. Доступно множество уроков для быстрого изучения этого языка.

параметры диагностики служба автоматизации Azure

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

Типы данных Description
Журналы заданий Состояние задания Runbook в учетной записи службы автоматизации.
Потоки заданий Состояние потоков заданий в runbook, определенных в учетной записи службы автоматизации.
DSCNodeStatus Состояние узла DSC.
События аудита Все журналы ресурсов, которые записывают взаимодействие клиента с данными или параметрами службы служба автоматизации Azure.
Метрики Общее количество заданий, общее обновление, запуски компьютера развертывания развертывания, общее количество запусков развертывания обновлений.

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

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

  1. В меню учетной записи службы автоматизации в разделе "Мониторинг " выберите параметры диагностики.

    Screenshot showing selection of diagnostic setting option.

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

    Screenshot showing selection of add diagnostic setting.

  3. Введите имя параметра в имени параметра диагностики, если он еще не имеет его.

    Вы также можете просмотреть все категории журналов и метрик.

    Screenshot showing all categories of logs and metrics.

    • Журналы и метрики для маршрутизации: для журналов выберите группу категорий или выберите отдельные проверка boxes для каждой категории данных, которые необходимо отправить в указанные назначения. Выберите AllMetrics , если вы хотите хранить метрики в журналах Azure Monitor.

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

      Screenshot showing selections in destination details section.

      • Log Analytics : введите идентификатор подписки и имя рабочей области. Если у вас нет рабочей области, необходимо создать ее перед продолжением.

      • Центры событий. Укажите следующие критерии:

        • Подписка: та же подписка, что и концентратор событий.
        • Пространство имен Концентратора событий: создайте концентратор событий, если у вас еще нет.
        • Имя концентратора событий (необязательно): если имя не указано, для каждой категории журналов создается концентратор событий. Если вы отправляете несколько категорий, укажите имя, чтобы ограничить количество созданных Центров событий. Дополнительные сведения см. в статье Квоты и ограничения Центров событий Azure.
        • Политика концентратора событий (необязательно): политика определяет разрешения, которые имеет механизм потоковой передачи. См . функцию Центров событий.
      • служба хранилища. Выберите подписку, учетную запись хранения и политику хранения. Screenshot showing the storage account.

      • Интеграция партнеров. Сначала необходимо установить интеграцию партнера в подписку. Доступные параметры зависят от партнера. Дополнительные сведения см. в статье об интеграции Azure Monitor.

  4. Нажмите кнопку Сохранить.

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

Выполнение запросов к журналам

Чтобы запросить созданные журналы, выполните описанные ниже действия.

  1. В учетной записи службы автоматизации в разделе "Мониторинг" выберите "Журналы".

  2. В разделе "Все запросы" выберите "Задания автоматизации".

    Screenshot showing how to navigate to select Automation jobs.

  3. Выберите один из запросов, которые вы хотите выполнить, и нажмите кнопку "Выполнить".

  4. Чтобы выполнить настраиваемый запрос, закройте окно "Запросы " и вставьте настраиваемый запрос в новое окно запроса и нажмите кнопку "Выполнить".

    Выходные данные запроса отображаются в области результатов .

  5. Щелкните Новое правило генерации оповещений, чтобы настроить оповещение Azure Monitor для этого запроса.

    Screenshot showing how to query logs.

Записи журнала Azure Monitor

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

Журналы заданий

Свойство Description
TimeGenerated Дата и время выполнения задания Runbook.
RunbookName_s Имя и имена модуля Runbook.
Caller_s Вызывающий объект, инициирующий операцию. Допустимые значения: электронный адрес или system для запланированных заданий.
Tenant_g GUID (глобальный уникальный идентификатор), определяющий клиент для вызывающего объекта.
JobId_g GUID, идентифицирующий задание runbook.
ResultType Состояние задания Runbook. Возможны следующие значения:
- Создать
- Создано
Started
- Остановлена
Приостановлено
Сбой
Завершено
Категория Классификация типа данных. Для службы автоматизации значением является JobLogs.
OperationName Тип операции, выполняемой в Azure. Для службы автоматизации значением является Job.
Ресурс Имя учетной записи службы автоматизации
SourceSystem Система, которую используют журналы Azure Monitor для сбора данных. Для системы диагностики Azure здесь всегда указано значение "Azure".
ResultDescription Состояние результата задания Runbook. Возможны следующие значения:
— Job is started;
— Job Failed;
- Job Completed.
CorrelationId GUID корреляции задания Runbook.
ResourceId служба автоматизации Azure идентификатор ресурса учетной записи модуля Runbook.
SubscriptionId GUID подписки Azure для учетной записи службы автоматизации.
ResourceGroup Имя группы ресурсов для учетной записи службы автоматизации.
ResourceProvider Имя поставщика ресурсов. Имеет значение MICROSOFT.AUTOMATION.
ResourceType Тип ресурса. Имеет значение AUTOMATIONACCOUNTS.

Потоки заданий

Свойство Description
TimeGenerated Дата и время выполнения задания Runbook.
RunbookName_s Имя модуля Runbook.
Caller_s Вызывающий объект, инициирующий операцию. Допустимые значения: электронный адрес или system для запланированных заданий.
StreamType_s Тип потока заданий. Возможны следующие значения:
ход выполнения
Выходные данные
- Предупреждение
error
debug
- Verbose.
Tenant_g GUID, идентифицирующий клиента для вызывающего объекта.
JobId_g GUID, идентифицирующий задание runbook.
ResultType Состояние задания Runbook. Возможны следующие значения:
- In Progress
Категория Классификация типа данных. Для службы автоматизации значением является JobStreams.
OperationName Тип операции, выполняемой в Azure. Для службы автоматизации значением является Job.
Ресурс Имя учетной записи службы автоматизации.
SourceSystem Система, которую используют журналы Azure Monitor для сбора данных. Для системы диагностики Azure здесь всегда указано значение "Azure".
ResultDescription Описание, в котором указан выходной поток этого runbook.
CorrelationId GUID корреляции задания Runbook.
ResourceId служба автоматизации Azure идентификатор ресурса учетной записи модуля Runbook.
SubscriptionId GUID подписки Azure для учетной записи службы автоматизации.
ResourceGroup Имя группы ресурсов для учетной записи службы автоматизации.
ResourceProvider Поставщик ресурсов. Имеет значение MICROSOFT.AUTOMATION.
ResourceType Тип ресурса. Имеет значение AUTOMATIONACCOUNTS.

События аудита

Свойство Description
TenantID GUID, идентифицирующий клиента для вызывающего объекта.
TimeGenerated (UTC) Дата и время выполнения задания Runbook.
Категория События аудита
ResourceGroup Имя группы ресурсов учетной записи службы автоматизации.
идентификатор подписки; GUID подписки Azure для учетной записи службы автоматизации.
ResourceProvider MICROSOFT.AUTOMATION
Ресурс Имя учетной записи службы автоматизации
ResourceType AUTOMATIONACCOUNTS
OperationName Возможные значения: Update, Create, Delete.
ResultType Состояние задания Runbook. Возможное значение: Завершено.
CorrelationId GUID корреляции задания Runbook.
ResultDescription Состояние результата задания Runbook. Возможные значения: Update, Create, Delete.
Tenant_g GUID, идентифицирующий клиента для вызывающего объекта.
SourceSystem Система, используемая в журналах Azures Monitor для сбора данных. Для системы диагностики Azure здесь всегда указано значение "Azure".
clientInfo_IpAddress_s {scrubbed}
clientInfo_PrincipalName_s {scrubbed}
clientInfo_TenantId_g Идентификатор клиента.
clientInfo_Issuer_s
clientInfo_ObjectId_g Идентификатор объекта клиента.
clientInfo_AppId_g Идентификатор приложения клиента.
clientInfo_ClientRequestId_g RequestID клиента
targetResources_Resource_s Учетная запись, задание, учетные данные, Подключение ions, переменные, Runbook.
Тип AzureDiagnostics
_ResourceId служба автоматизации Azure идентификатор ресурса учетной записи модуля Runbook.

Просмотр журналов службы автоматизации в журналах Azure Monitor

Теперь, когда успешно запущена передача журналов и потоков заданий службы автоматизации в журналы Azure Monitor, мы попробуем что-нибудь сделать с ними в среде журналов Azure Monitor.

Чтобы просмотреть журналы, выполните следующий запрос: kusto AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"

Примеры запросов для журналов заданий и потоков заданий

Поиск всех заданий, завершенных с ошибкой

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

  1. В рабочей области Log Analytics щелкните Журналы.
  2. В поле запроса введите следующее:
    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g. 
    
  3. Нажмите кнопку Поиск.

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

При отладке задания вам могут пригодиться потоки заданий. В следующем запросе показаны все потоки для одного задания с GUID 2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and JobId_g == "2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0"
| sort by TimeGenerated asc
| project ResultDescription

Просмотреть историческую статистику задания

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

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType != "started"
| summarize AggregatedValue = count() by ResultType, bin(TimeGenerated, 1h)

Log Analytics Historical Job Status Chart

Поиск журналов отчетов об ошибках в заданиях автоматизации.

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" 
| where StreamType_s == "Error" 
| project TimeGenerated, Category, JobId_g, OperationName, RunbookName_s, ResultDescription, _ResourceId 

Поиск завершенных заданий служба автоматизации Azure

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType == "Completed" 
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g

Поиск служба автоматизации Azure заданий, которые завершаются сбоем, приостановлены или остановлены

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Stopped" or ResultType == "Suspended") 
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g 

Вывод списка всех модулей Runbook и заданий, которые успешно завершили работу с ошибками

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" 
| project TimeGenerated, RunbookName_s, StreamType_s, _ResourceId, ResultDescription, JobId_g 

Отправка электронного сообщения при сбое или приостановке задания Runbook

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

Чтобы создать правило генерации оповещений, создайте поиск по журналам записей заданий Runbook, которые должны вызывать оповещение, как описано в разделе "Запрос журналов". Нажмите кнопку +Создать правило генерации оповещений, чтобы настроить правило генерации оповещений.

  1. В учетной записи службы автоматизации в разделе "Мониторинг" выберите "Журналы".

  2. Создайте запрос поиска по журналам для оповещения, введя условия поиска в поле запроса.

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended")   
    

    Вы также можете сгруппировать по имени модуля Runbook с помощью следующего:

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and     Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s 
    
  3. Чтобы открыть экран "Создать правило генерации оповещений", нажмите кнопку +Создать правило генерации оповещений в верхней части страницы. Дополнительные сведения о параметрах настройки оповещений см. в разделе "Оповещения журнала" в Azure

журналы аудита диагностики служба автоматизации Azure

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

Разница между журналами действий и журналами аудита

Журнал действий — это журналплатформы в Azure, который предоставляет аналитические сведения о событиях уровня подписки. Журнал действий для учетной записи службы автоматизации содержит сведения о том, когда ресурс автоматизации изменяется или создается или удаляется. Однако он не записывает имя или идентификатор ресурса.

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

В журналах действий будут отображаться такие сведения, как IP-адрес клиента, так как журнал действий — это журнал платформы, предоставляющий подробные диагностические и аудиты сведения о ресурсах Azure. Они автоматически создаются для действий, которые происходят в ARM и отправляются в поставщик ресурсов журнала действий. Так как журналы действий являются частью мониторинга Azure, они будут отображать некоторые клиентские данные для предоставления аналитических сведений о действиях клиента.  

Примеры запросов для журналов аудита

Запрос для просмотра журналов аудита ресурсов службы автоматизации

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" 

Запрос на мониторинг любой операции обновления переменной, создания или удаления

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s == "Variable" 

Запрос на мониторинг любой операции Runbook, например создание, черновик или обновление

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Runbook" 

Запрос для отслеживания создания сертификата, обновления или удаления

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Certificate" 

Запрос на мониторинг создания, обновления или удаления учетных данных

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Credential" 

Выходные данные состояния задания фильтрации, преобразованные в объект JSON

Недавно мы изменили порядок записи данных журнала автоматизации в AzureDiagnostics таблицу в службе аналитики журнала, таким образом свойства JSON больше не разбиваются на отдельные поля. Если модуль Runbook настроен для форматирования объектов в выходном потоке в формате JSON в виде отдельных столбцов, необходимо перенастроить запросы для анализа этого поля с объектом JSON для доступа к этим свойствам. Это достигается с помощью анализа json для доступа к определенному элементу JSON в известном пути.

Например, модуль runbook форматирует свойство ResultDescription в выходном потоке в формате JSON с несколькими полями. Чтобы найти состояние заданий, которые находятся в состоянии сбоя, как указано в поле Состояние, используйте следующий пример запроса для поиска свойства ResultDescription с состоянием Сбой:

AzureDiagnostics
| where Category == 'JobStreams'
| extend jsonResourceDescription = parse_json(ResultDescription)
| where jsonResourceDescription.Status == 'Failed'

Log Analytics Historical Job Stream JSON format

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