Integrar o State Configuration da Automação do Azure aos logs do Azure Monitor

Observação

Antes de você habilitar a State Configuration da Automação, gostaríamos de informar que uma versão mais recente da DSC agora está em disponibilidade geral, gerenciada por um recurso de Azure Policy chamado configuração de convidado. O serviço de configuração de convidado combina recursos de extensão de DSC, State Configuration da Automação do Azure e os recursos mais solicitados dos comentários dos clientes. A configuração de convidado também inclui suporte a computadores híbridos por meio de servidores habilitados para Arc.

A State Configuration de Automação do Azure retém os dados de status do nó por 30 dias. Você poderá enviar dados de status do nó para Logs do Azure Monitor se preferir reter esses dados por um período mais longo. O status de conformidade é visível no portal do Microsoft Azure, ou com o PowerShell, para nós e recursos individuais de DSC em configurações de nó.

Os logs do Azure Monitor oferecem maior visibilidade operacional para os dados do State Configuration da Automação e podem ajudar a tratar incidentes mais rapidamente. Com os logs do Azure Monitor, você pode:

  • Obter informações de conformidade para nós gerenciados e recursos individuais.
  • Disparar um email ou alerta com base no status de conformidade.
  • Escrever consultas avançadas em seus nós gerenciados.
  • Correlacionar o status de conformidade em contas de Automação.
  • Usar exibições personalizadas e consultas de pesquisa para visualizar os resultados do runbook, o status do trabalho de runbook e outros indicadores ou métricas principais relacionados.

Observação

Este artigo foi atualizado recentemente para usar o termo logs do Azure Monitor em vez de Log Analytics. Os dados de log ainda são armazenados em um espaço de trabalho do Log Analytics e ainda são coletados e analisados pelo mesmo serviço do Log Analytics. Estamos atualizando a terminologia para refletir melhor a função dos logs no Azure Monitor. Confira as alterações de terminologia do Azure Monitor para obter detalhes.

Pré-requisitos

Para começar a enviar seus relatórios de State Configuration da Automação para logs do Azure Monitor, você precisará do seguinte:

  • O Módulo Az do PowerShell instalado. Verifique se você tem a versão mais recente. Se for necessário, execute Update-Module -Name Az.

Configurar a integração com os logs do Azure Monitor

Para começar a importar dados do State Configuration da Automação do Azure para logs do Azure Monitor, conclua as etapas a seguir. Para saber quais são as etapas para usar o Portal, confira Encaminhar dados de trabalho da Automação do Azure para os logs do Azure Monitor.

  1. Em sua máquina, entre em sua assinatura do Azure com o cmdlet Connect-AzAccount do PowerShell e siga as instruções na tela.

    # 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. Forneça um valor apropriado para as variáveis automationAccount com o nome real de sua conta de Automação e workspaceName com o nome real de seu workspace do Log Analytics. Em seguida, execute o script.

    $automationAccount = "automationAccount"
    $law = "workspaceName"
    
  3. Obtenha a ID do recurso de sua conta de Automação executando os comandos do PowerShell a seguir.

    # Find the ResourceId for the Automation account
    $AutomationResourceId = (Get-AzResource `
       -ResourceType 'Microsoft.Automation/automationAccounts' | 
       WHERE {$_.Name -eq $automationAccount}).ResourceId
    
  4. Obtenha a ID do recurso do workspace do Log Analytics usando o comando do PowerShell a seguir.

     # Find the ResourceId for the Log Analytics workspace
     $WorkspaceResourceId = (Get-AzResource `
         -ResourceType 'Microsoft.OperationalInsights/workspaces' | 
         WHERE {$_.Name -eq $law}).ResourceId
    
  5. Para definir as configurações de diagnóstico na conta de Automação para encaminhar os dados do log de status do nó DSC para os logs do Azure Monitor, o cmdlet do PowerShell a seguir cria uma configuração de diagnóstico usando esse destino.

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

    Quando você quiser parar de encaminhar dados de log do State Configuration da Automação para os logs do Azure Monitor, execute o cmdlet do PowerShell a seguir.

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

Exibir os logs de configuração de estado

Você pode procurar operações de DSC nos logs do State Configuration. Para isso, pesquise por logs do Azure Monitor. Depois de configurar a integração com os logs do Azure Monitor para seus dados do State Configuration da Automação, navegue até sua conta de Automação no portal do Azure. Em Monitoramento, selecione Logs.

Logs

Feche a caixa de diálogo de Consultas. O painel Pesquisa de Logs é aberto com uma região de consulta com o escopo definido para o recurso de conta da Automação do Azure. Os registros de operações de DSC são armazenados na tabela AzureDiagnostics. Para encontrar nós que não são compatíveis, digite a consulta a seguir.

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

Detalhes da filtragem:

  • Filtre DscNodeStatusData para retornar operações para cada nó de State Configuration.
  • Filtre DscResourceStatusData para retornar as operações de cada recurso de DSC chamado na configuração de nó aplicada a esse recurso.
  • Filtre DscResourceStatusData para retornar informações de erro para todos os recursos de DSC que falharem.

Para saber mais sobre como construir consultas de log para localizar dados, consulte Visão geral das consultas de log no Azure Monitor.

Enviar um email quando uma verificação de conformidade da Configuração do Estado falhar

  1. Retorne à consulta criada anteriormente.

  2. Pressione o botão "+ Nova Regra de Alerta" para iniciar o fluxo de criação do alerta.

  3. Na consulta abaixo, substitua NODENAME pelo nome real do nó gerenciado e cole a consulta revisada na caixa de texto de Consulta de pesquisa:

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

    Se você tiver configurado logs de mais de uma Conta de automação ou assinatura para o workspace, também poderá agrupar os alertas por assinatura e por conta de Automação. Derive o nome da conta de Automação da propriedade Resource nos resultados da pesquisa de logs do DscNodeStatusData.

  4. Examine Criar, exibir e gerenciar alertas de métrica usando o Azure Monitor para concluir as etapas restantes.

Encontrar recursos DSC com falha em todos os nós

Uma vantagem de usar os logs do Azure Monitor é que você pode procurar falhas de verificações em nós. Para encontrar todas as instâncias de recursos de DSC que falharam, use a seguinte consulta:

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

Exibir status do nó DSC histórico

Para visualizar o histórico de status do nó DSC ao longo do tempo, use esta consulta:

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

Essa consulta exibe um gráfico do status do nó ao longo do tempo.

Registros de logs do Azure Monitor

O diagnóstico da Automação do Azure cria duas categorias de registros nos logs do Azure Monitor:

  • Dados do status do nó (DscNodeStatusData)
  • Dados do status do recurso (DscResourceStatusData)

DscNodeStatusData

Propriedade Descrição
TimeGenerated Data e hora quando a verificação de conformidade foi executada.
OperationName DscNodeStatusData.
ResultType Valor que indica se o nó está em conformidade.
NodeName_s O nome do nó gerenciado.
NodeComplianceStatus_s Valor de status que especifica se o nó é compatível.
DscReportStatus Valor de status que indica se a verificação de conformidade foi executada com êxito.
ConfigurationMode O modo usado para aplicar a configuração ao nó. Os valores possíveis são os seguintes:
  • ApplyOnly: o DSC só aplica a configuração e nada mais, exceto se uma nova configuração for enviada por push ao nó de destino ou quando uma nova configuração é efetuada por pull de um servidor. Depois da aplicação inicial de uma nova configuração, o DSC não procura descompasso de um estado previamente configurado. O DSC tenta aplicar a configuração até que seja bem-sucedida antes que o valor ApplyOnly entre em vigor.
  • ApplyAndMonitor: é o valor padrão. O LCM aplica as novas configurações. Depois da aplicação inicial de uma nova configuração, se o nó de destino tiver um descompasso do estado desejado, o DSC relatará a discrepância nos logs. O DSC tenta aplicar a configuração até que seja bem-sucedida antes que o valor ApplyAndMonitor entre em vigor.
  • ApplyAndAutoCorrect: o DSC aplica as novas configurações. Depois da aplicação inicial de uma nova configuração, se o nó de destino tiver um descompasso do estado desejado, o DSC relatará a discrepância nos logs e, em seguida, reaplicará a configuração atual.
HostName_s O nome do nó gerenciado.
EndereçoIP O endereço IPv4 do nó gerenciado.
Categoria DscNodeStatus.
Recurso O nome da conta de Automação do Azure.
Tenant_g GUID que identifica o locatário para o chamador.
NodeId_g A GUID que identifica o nó gerenciado.
DscReportId_g A GUID que identifica o relatório.
LastSeenTime_t Data e hora em que o relatório foi exibido pela última vez.
ReportStartTime_t Data e hora em que o relatório foi iniciado.
ReportEndTime_t Data e hora em que o relatório foi concluído.
NumberOfResources_d O número de recursos de DSC chamado na configuração aplicada ao nó.
SourceSystem O sistema de origem que identifica como os logs do Azure Monitor coletaram os dados. Sempre Azure para o diagnóstico do Azure.
ResourceId O identificador de recurso da conta de Automação do Azure.
ResultDescription A descrição de recurso para esta operação.
SubscriptionId A ID da assinatura do Azure (GUID) para a conta de Automação.
ResourceGroup O nome do grupo de recursos para a conta de Automação.
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId O GUID que é o identificador de correlação do relatório de conformidade.

DscResourceStatusData

Propriedade Descrição
TimeGenerated Data e hora quando a verificação de conformidade foi executada.
OperationName DscResourceStatusData.
ResultType Se o recurso está em conformidade.
NodeName_s O nome do nó gerenciado.
Categoria DscNodeStatus.
Recurso O nome da conta de Automação do Azure.
Tenant_g GUID que identifica o locatário para o chamador.
NodeId_g A GUID que identifica o nó gerenciado.
DscReportId_g A GUID que identifica o relatório.
DscResourceId_s O nome da instância do recurso de DSC.
DscResourceName_s O nome do recurso de DSC.
DscResourceStatus_s Se o recurso de DSC está em conformidade.
DscModuleName_s O nome do módulo do PowerShell que contém o recurso de DSC.
DscModuleVersion_s A versão do módulo do PowerShell que contém o recurso de DSC.
DscConfigurationName_s O nome da configuração aplicada ao nó.
ErrorCode_s O código de erro se o recurso tiver falhado.
ErrorMessage_s A mensagem de erro se o recurso tiver falhado.
DscResourceDuration_d O tempo, em segundos, em que o recurso de DSC foi executado.
SourceSystem Como os logs do Azure Monitor coletaram os dados. Sempre Azure para o diagnóstico do Azure.
ResourceId O identificador da conta de Automação do Azure.
ResultDescription A descrição para esta operação.
SubscriptionId A ID da assinatura do Azure (GUID) para a conta de Automação.
ResourceGroup O nome do grupo de recursos para a conta de Automação.
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId O GUID que é a ID de correlação do relatório de conformidade.

Próximas etapas