Пересылка журналов диагностики служба автоматизации 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), используемого Data Explorer Azure, которая подходит для простых запросов к журналам. Она также включает расширенные функции, такие как агрегаты, соединения и интеллектуальная аналитика. Доступно множество уроков для быстрого изучения этого языка.

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

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

Типы данных Описание
Журналы заданий Состояние задания Runbook в учетной записи службы автоматизации.
Потоки заданий Состояние потоков заданий в runbook, определенном в учетной записи службы автоматизации.
DSCNodeStatus Состояние узла DSC.
AuditEvent Все журналы ресурсов, записывающие взаимодействие клиента с данными или параметрами службы служба автоматизации 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.

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

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

      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 создаются и типы данных, отображаемые в результатах поиска по журналам.

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

Свойство Описание
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.

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

Свойство Описание
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.

Аудит событий

Свойство Описание
идентификатор клиента; GUID, идентифицирующий клиента для вызывающего объекта.
TimeGenerated (UTC) Дата и время выполнения задания Runbook.
Категория AuditEvent
ResourceGroup Имя группы ресурсов учетной записи службы автоматизации.
идентификатор подписки; GUID подписки Azure для учетной записи службы автоматизации.
ResourceProvider MICROSOFT.AUTOMATION
Ресурс Имя учетной записи службы автоматизации
ResourceType AUTOMATIONACCOUNTS
OperationName Возможные значения: Update, Create, Delete.
ResultType Состояние задания Runbook. Возможное значение: Completed.
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 AppID клиента.
clientInfo_ClientRequestId_g RequestID клиента
targetResources_Resource_s Учетная запись, задание, учетные данные, подключения, переменные, 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

Дальнейшие действия