Интеграция State Configuration службы автоматизации Azure с журналами Azure Monitor

Примечание.

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

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

Журналы Azure Monitor предоставляют расширенный оперативный контроль над данными Automation State Configuration и позволяют быстрее устранять инциденты. С помощью журналов Azure Monitor вы можете:

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

Примечание.

Сведения из данной статьи были недавно обновлены. Теперь вместо термина "Log Analytics" используется термин "журналы Azure Monitor". Данные журнала по-прежнему хранятся в рабочей области Log Analytics, собираются и анализируются той же службой Log Analytics. Целью обновления терминологии является лучшее отражение роли журналов в Azure Monitor. Дополнительные сведения см. в статье Изменения фирменной символики Azure Monitor.

Необходимые компоненты

Чтобы начать отправку отчетов Automation State Configuration в журналы Azure Monitor, необходимо следующее:

  • Установите модуль Az для PowerShell. Убедитесь, что у вас установлена последняя версия. При необходимости выполните командлет Update-Module -Name Az.

Настройка интеграции с журналами Azure Monitor

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

  1. На своем компьютере войдите в подписку Azure с помощью командлета PowerShell Connect-AzAccount и следуйте инструкциям на экране.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # If you have multiple subscriptions, set the one to use
    # Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"
    
  2. Укажите подходящие значения для переменных automationAccount (используйте фактическое имя своей учетной записи службы автоматизации) и workspaceName (используйте фактическое имя своей рабочей области Log Analytics). Затем выполните скрипт.

    $automationAccount = "automationAccount"
    $law = "workspaceName"
    
  3. Получите идентификатор ресурса учетной записи службы автоматизации с помощью следующих команд PowerShell.

    # Find the ResourceId for the Automation account
    $AutomationResourceId = (Get-AzResource `
       -ResourceType 'Microsoft.Automation/automationAccounts' | 
       WHERE {$_.Name -eq $automationAccount}).ResourceId
    
  4. Получите идентификатор ресурса рабочей области Log Analytics с помощью следующих команд PowerShell.

     # Find the ResourceId for the Log Analytics workspace
     $WorkspaceResourceId = (Get-AzResource `
         -ResourceType 'Microsoft.OperationalInsights/workspaces' | 
         WHERE {$_.Name -eq $law}).ResourceId
    
  5. Чтобы настроить параметры диагностики в учетной записи службы автоматизации для пересылки данных журнала состояния узла DSC в журналы Azure Monitor, следующий командлет PowerShell создает параметр диагностики с этим местом назначения.

     Set-AzDiagnosticSetting `
         -ResourceId $AutomationResourceId `
         -WorkspaceId $WorkspaceResourceId `
         -Enabled $true `
         -Category 'DscNodeStatus'
    

    Если вы хотите остановить пересылку данных из State Configuration службы автоматизации в журналы Azure Monitor, выполните следующий командлет PowerShell.

     Set-AzDiagnosticSetting `
         -ResourceId $AutomationResourceId `
         -WorkspaceId $WorkspaceResourceId `
         -Enabled $false `
         -Category 'DscNodeStatus'
    

Просмотр журналов State Configuration

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

Logs

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

AzureDiagnostics
| where Category == "DscNodeStatus"
| where OperationName contains "DSCNodeStatusData"
| where ResultType != "Compliant"

Сведения о фильтрации:

  • Выполните фильтрацию по DscNodeStatusData, чтобы вернуть операции для каждого узла State Configuration.
  • Выполните фильтрацию по DscResourceStatusData, чтобы вернуть операции для каждого ресурса DSC, который вызывается в конфигурации узла, примененной к этому ресурсу.
  • Выполните фильтрацию по DscResourceStatusData, чтобы получить сведения об ошибке для всех ресурсов DSC, которые не удалось выполнить.

Дополнительные сведения о создании запросов журналов для поиска данных см. в разделе Обзор запросов журналов в Azure Monitor.

Отправка сообщения электронной почты при сбое проверки соответствия State Configuration

  1. Вернитесь к созданному ранее запросу.

  2. Нажмите кнопку + New Alert Rule (+ Новое правило генерации оповещений), чтобы запустить поток создания оповещений.

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

    AzureDiagnostics
    | where Category == "DscNodeStatus"
    | where NodeName_s == "NODENAME"
    | where OperationName == "DscNodeStatusData"
    | where ResultType == "Failed"
    

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

  4. Инструкции по выполнению оставшихся действий см. в статье Создание и просмотр оповещений метрик, а также управление ими с помощью Azure Monitor.

Поиск ресурсов DSC со сбоями по всем узлам

Одно из преимуществ журналов Azure Monitor — возможность поиска проверок со сбоями по узлам. Чтобы найти все экземпляры ресурсов DSC со сбоями, используйте следующий запрос:

AzureDiagnostics 
| where Category == "DscNodeStatus"
| where OperationName == "DscResourceStatusData"
| where ResultType == "Failed"

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

Визуализируйте изменение состояния узла DSC с течением времени с помощью следующего запроса:

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" 
| where Category == "DscNodeStatus"
| where ResultType != "started"
| summarize count() by ResultType

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

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

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

  • Данные о состоянии узла (DscNodeStatusData)
  • Данные о состоянии ресурса (DscResourceStatusData)

DscNodeStatusData

Свойство Description
TimeGenerated Дата и время запуска проверки соответствия.
OperationName DscNodeStatusData.
ResultType Значение, указывающее, соответствует ли узел требованиям.
NodeName_s Имя управляемого узла.
NodeComplianceStatus_s Значение состояния, указывающее, соответствует ли узел требованиям.
DscReportStatus Значение состояния, указывающее, успешно ли выполнена проверка соответствия.
ConfigurationMode Режим, используемый для применения конфигурации к узлу. Возможные значения:
  • ApplyOnly: DSC применяет конфигурацию и ничего больше не делает, если новая конфигурация не отправляется на целевой узел или когда новая конфигурация извлекается с сервера. После первоначального применения новой конфигурации DSC не проверяет наличие отклонений от ранее настроенного состояния. Перед вступлением в силу значения ApplyOnly DSC пытается применить конфигурацию, пока это не удается успешно сделать.
  • ApplyAndMonitor — это значение по умолчанию. LCM применяет любую новую конфигурацию. Если после начального применения новой конфигурации состояние целевого узла отклоняется от требуемого, DSC сообщает о расхождении в журналах. Перед вступлением в силу значения ApplyAndMonitor DSC пытается применить конфигурацию, пока это не удается успешно сделать.
  • ApplyAndAutoCorrect: DSC применяет любые новые конфигурации. Если после начального применения новой конфигурации состояние целевого узла отклоняется от требуемого, DSC сообщает о расхождении в журналах, а затем повторно применяет текущую конфигурацию.
HostName_s Имя управляемого узла.
IPAddress Адрес IPv4 управляемого узла.
Категория DscNodeStatus.
Ресурс Имя учетной записи службы автоматизации Azure.
Tenant_g GUID, идентифицирующий клиента для вызывающего объекта.
NodeId_g Идентификатор GUID для определения управляемого узла.
DscReportId_g Идентификатор GUID для определения отчета.
LastSeenTime_t Дата и время последнего просмотра отчета.
ReportStartTime_t Дата и время начала отчета.
ReportEndTime_t Дата и время завершения отчета.
NumberOfResources_d Количество ресурсов DSC, которые вызывались в примененной к узлу конфигурации.
SourceSystem Исходная система, определяющая, как журналы Azure Monitor собирают данные. Всегда имеет значение Azure для системы диагностики Azure.
ResourceId Идентификатор ресурса учетной записи службы автоматизации Azure.
ResultDescription Описание ресурса для этой операции.
SubscriptionId Идентификатор подписки Azure (GUID) для учетной записи службы автоматизации.
ResourceGroup имя группы ресурсов для учетной записи службы автоматизации;
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId Идентификатор GUID для корреляции отчета о соответствии.

DscResourceStatusData

Свойство Description
TimeGenerated Дата и время запуска проверки соответствия.
OperationName DscResourceStatusData.
ResultType Подтверждено ли соответствие ресурса.
NodeName_s Имя управляемого узла.
Категория DscNodeStatus.
Ресурс Имя учетной записи службы автоматизации Azure.
Tenant_g GUID, идентифицирующий клиента для вызывающего объекта.
NodeId_g Идентификатор GUID для определения управляемого узла.
DscReportId_g Идентификатор GUID для определения отчета.
DscResourceId_s Имя для экземпляра ресурса DSC.
DscResourceName_s Имя ресурса DSC.
DscResourceStatus_s Подтверждено ли соответствие ресурса DSC.
DscModuleName_s Имя модуля PowerShell, который содержит ресурс DSC.
DscModuleVersion_s Версия модуля PowerShell, который содержит ресурс DSC.
DscConfigurationName_s Имя примененной к узлу конфигурации.
ErrorCode_s Код ошибки при сбое ресурса.
ErrorMessage_s Сообщение об ошибке при сбое ресурса.
DscResourceDuration_d Период выполнения ресурса DSC в секундах.
SourceSystem Определяет, как журналы Azure Monitor собирали данные. Всегда имеет значение Azure для системы диагностики Azure.
ResourceId Идентификатор учетной записи службы автоматизации Azure.
ResultDescription Описание для этой операции.
SubscriptionId Идентификатор подписки Azure (GUID) для учетной записи службы автоматизации.
ResourceGroup имя группы ресурсов для учетной записи службы автоматизации;
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId Идентификатор GUID для корреляции отчета о соответствии.

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