Encaminhar os logs de diagnóstico da Automação do Azure para o Azure Monitor

A Automação do Azure pode enviar fluxos de trabalho e status de trabalho de runbook para seu workspace do Log Analytics. Esse processo não envolve vinculação de workspace e é completamente independente e permite que você execute investigações simples. Os logs e fluxos de trabalho podem ser vistos no portal do Azure ou com o PowerShell para trabalhos individuais. Com os logs do Azure Monitor da sua conta de Automação, você pode:

  • Obter insights sobre o status de seus trabalhos de Automação.
  • Disparar um email ou um alerta com base no status de trabalho de runbook (por exemplo, com falha ou suspenso).
  • Escrever consultas avançadas em seus fluxos de trabalho.
  • Correlacionar trabalhos 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 por meio de um painel do Azure.
  • Obter os logs de auditoria relacionados a contas de Automação, runbooks e outras operações de criação, modificação e exclusão de ativos.

Usando os logs do Azure Monitor, você pode consolidar logs de diferentes recursos no mesmo espaço de trabalho, onde podem ser analisados com consultas para recuperar, consolidar e analisar rapidamente os dados coletados. É possível criar e testar consultas usando o Log Analytics no portal do Azure e, em seguida, analisar diretamente os dados usando essas ferramentas ou salvar consultas para uso com visualização ou regras de alerta.

O Azure Monitor usa uma versão da linguagem de consulta Kusto (KQL) usada pelo Azure Data Explorer que é adequada para consultas de log simples. Ele também contém funcionalidade avançada, como agregações, junções e análise inteligente. É possível aprender a linguagem de consulta rapidamente por meio de várias lições.

Configurações de diagnóstico de Automação do Azure

Você pode encaminhar os seguintes logs de plataforma e dados de métricas usando o suporte de configurações de diagnóstico de Automação:

Tipos de dados Descrição
Logs de trabalho Status do trabalho de runbook na conta de Automação.
Transmissões de trabalho Status dos fluxos de trabalho no runbook definido na conta de Automação.
DSCNodeStatus Status do nó DSC.
AuditEvent Todos os logs de recursos que registram interações do cliente com os dados ou as configurações do serviço de Automação do Azure.
Métrica Total de trabalhos, atualização total, execuções de máquina de implantação, total de execuções de implantação de atualização.

Definir configurações de diagnóstico no portal do Azure

Você pode definir as configurações de diagnóstico no portal do Azure no menu do recurso da conta de Automação.

  1. No menu da conta de Automação, em Monitoramento, selecione Configurações de diagnóstico.

    Screenshot showing selection of diagnostic setting option.

  2. Clique em Adicionar configuração de diagnóstico.

    Screenshot showing selection of add diagnostic setting.

  3. Insira um nome de configuração no Nome da configuração de diagnóstico se ele ainda não tiver um.

    Você também pode exibir todas as categorias de logs e métricas.

    Screenshot showing all categories of logs and metrics.

    • Logs e métricas para rota: para logs, escolha um grupo de categorias ou marque as caixas de seleção individuais para cada categoria de dados que você deseja enviar para os destinos especificados. Escolha AllMetrics se quiser armazenar métricas nos logs do Azure Monitor.

    • Detalhes de destino: marque a caixa de seleção para cada destino. De acordo com a seleção de cada caixa, as opções parecem permitir que você adicione informações extras.

      Screenshot showing selections in destination details section.

      • Análise de logs: insira a ID de assinatura e o nome do workspace. Caso você não tenha um workspace, precisará criar um antes de prosseguir.

      • Hubs de eventos – especifique os seguintes critérios:

        • Assinatura: a mesma assinatura do hub de eventos.
        • Namespace do hub de eventos: crie um Hub de Eventos se você ainda não tiver um.
        • Nome do hub de eventos (opcional): se você não especificar um nome, um hub de eventos será criado para cada categoria de log. Se você estiver enviando várias categorias,especifique um nome para limitar o número de hubs de eventos criados. Confira Limites e cotas dos Hubs de Eventos do Azure para obter detalhes.
        • Uma política de hub de eventos (opcional): uma política define as permissões do mecanismo de streaming. Confira o recurso Hubs de eventos.
      • Armazenamento: escolha a assinatura, a conta de armazenamento e a política de retenção. Screenshot showing the storage account.

      • Integração de parceiros: você deve primeiro instalar uma integração de parceiro em sua assinatura. As opções de configuração variam de acordo com o parceiro. Para saber mais, confira Integração do Azure Monitor.

  4. Clique em Save (Salvar).

Após alguns instantes, a nova configuração aparece na lista de configurações desse recurso, e os logs de diagnóstico serão enviados para os destinos especificados assim que os novos dados de evento forem gerados. Pode haver uma diferença de tempo de 15 minutos entre o evento emitido e sua aparência no workspace do Log Analytics.

Consultar os logs

Para consultar os logs gerados:

  1. Na sua conta de Automação, em Monitoramento, selecione Logs.

  2. Em Todas as consultas, selecione Trabalhos de automação.

    Screenshot showing how to navigate to select Automation jobs.

  3. Selecione uma das consultas que deseja executar e clique em Executar.

  4. Para executar uma consulta personalizada, feche a janela Consultas, cole sua consulta personalizada na nova janela de consulta e clique em Executar.

    A saída da consulta é exibida no painel Resultados.

  5. Clique em Nova regra de alerta para configurar o alerta do Azure Monitor para essa consulta.

    Screenshot showing how to query logs.

Registros de log do Azure Monitor

Os diagnósticos de Automação do Azure criam os seguintes tipos de registros em logs do Azure Monitor, marcados como AzureDiagnostics. As tabelas nas próximas seções são exemplos de registros que a Automação do Azure gera e os tipos de dados que aparecem nos resultados da pesquisa de logs.

Logs de trabalho

Propriedade Descrição
TimeGenerated Data e hora da execução do trabalho de runbook.
RunbookName_s O nome/os nomes do runbook.
Caller_s O chamador que iniciou a operação. Os valores possíveis são um endereço de email ou o sistema para trabalhos agendados.
Tenant_g GUID (identificador global exclusivo) que identifica o locatário do chamador.
JobId_g A GUID que identifica o trabalho do runbook.
ResultType O status do trabalho de runbook. Os valores possíveis são:
- Novo
– Criado
- Iniciado
- Parado
- Suspenso
- Com falha
– Concluído
Categoria Classificação do tipo de dados. Para a Automação, o valor é JobLogs.
OperationName O tipo de operação executada no Azure. Para a Automação, o valor é Job.
Recurso Nome da Conta de automação
SourceSystem O sistema que os logs do Azure Monitor usam para coletar os dados. O valor é sempre Azure para o diagnóstico do Azure.
ResultDescription O estado do resultado do trabalho de runbook. Os valores possíveis são:
- O trabalho foi iniciado
- O trabalho falhou
- Trabalho Concluído
CorrelationId O GUID de correlação do trabalho de runbook.
ResourceId A ID de recurso da conta de Automação do Azure do runbook.
SubscriptionId O GUID da assinatura do Azure para a conta de Automação.
ResourceGroup Nome do grupo de recursos para a Conta de automação.
ResourceProvider Nome do provedor de recursos. O valor é MICROSOFT.AUTOMATION.
ResourceType Tipo de recurso. O valor é AUTOMATIONACCOUNTS.

Transmissões de trabalho

Propriedade Descrição
TimeGenerated Data e hora em que o trabalho de runbook foi executado.
RunbookName_s Nome do runbook.
Caller_s O chamador que iniciou a operação. Os valores possíveis são um endereço de email ou o sistema para trabalhos agendados.
StreamType_s O tipo de fluxo de trabalho. Os valores possíveis são:
- Andamento
- Saída
- Aviso
- Erro
- Depurar
- Detalhado
Tenant_g GUID que identifica o locatário para o chamador.
JobId_g A GUID que identifica o trabalho do runbook.
ResultType O status do trabalho de runbook. Os valores possíveis são:
- em andamento
Categoria Classificação do tipo de dados. Para a Automação, o valor é JobStreams.
OperationName O tipo de operação executada no Azure. Para a Automação, o valor é Job.
Recurso O nome da conta de Automação.
SourceSystem O sistema que os logs do Azure Monitor usam para coletar os dados. O valor é sempre Azure para o diagnóstico do Azure.
ResultDescription Descrição que inclui o fluxo de saída do runbook.
CorrelationId O GUID de correlação do trabalho de runbook.
ResourceId A ID de recurso da conta de Automação do Azure do runbook.
SubscriptionId O GUID da assinatura do Azure para a conta de Automação.
ResourceGroup Nome do grupo de recursos para a Conta de automação.
ResourceProvider Provedor de recursos. O valor é MICROSOFT.AUTOMATION.
ResourceType Tipo de recurso. O valor é AUTOMATIONACCOUNTS.

Eventos de auditoria

Propriedade Descrição
TenantID GUID que identifica o locatário para o chamador.
TimeGenerated (UTC) Data e hora em que o trabalho de runbook é executado.
Categoria AuditEvent
ResourceGroup O nome do grupo de recursos da conta de Automação.
ID da assinatura O GUID da assinatura do Azure para a conta de Automação.
ResourceProvider MICROSOFT.AUTOMATION
Recurso Nome da conta da Automação
ResourceType AUTOMATIONACCOUNTS
OperationName Os valores possíveis são Atualizar, Criar, Excluir.
ResultType O status do trabalho de runbook. O valor possível é: Concluído.
CorrelationId O GUID de correlação do trabalho de runbook.
ResultDescription O estado do resultado do trabalho de runbook. Os valores possíveis são Atualizar, Criar, Excluir.
Tenant_g GUID que identifica o locatário para o chamador.
SourceSystem O sistema que os logs do Azure Monitor usam para coletar os dados. O valor é sempre Azure para o diagnóstico do Azure.
clientInfo_IpAddress_s {scrubbed}
clientInfo_PrincipalName_s {scrubbed}
clientInfo_TenantId_g A ID do locatário do cliente.
clientInfo_Issuer_s
clientInfo_ObjectId_g A ID do objeto do cliente.
clientInfo_AppId_g AppID do cliente.
clientInfo_ClientRequestId_g RequestID do cliente
targetResources_Resource_s Conta, Trabalho, Credencial, Conexões, Variáveis, Runbook.
Tipo AzureDiagnostics
_ResourceId A ID de recurso da conta de Automação do Azure do runbook.

Exibir logs de Automação em logs do Azure Monitor

Agora que você começou a enviar seus fluxos de logs e logs de trabalho de Automação para os logs do Azure Monitor, vamos ver o que é possível fazer com eles nos logs do Azure Monitor.

Para ver os logs, execute a seguinte consulta: kusto AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"

Realizar amostragem consultas para logs de trabalho e fluxos de trabalho

Localizar todos os trabalhos que foram concluídos com erros

Além de cenários como alertas de falhas, você pode descobrir quando um trabalho de runbook tem um erro não fatal. Nesses casos, o PowerShell produz um fluxo de erro, mas os erros de não encerramento não fazem com que seu trabalho seja suspenso ou falhe.

  1. No workspace do Log Analytics, clique em Logs.
  2. No campo de consulta, digite:
    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g. 
    
  3. Clique em Pesquisar.

Exibir fluxos de trabalho para um trabalho

Ao depurar um trabalho, também pode ser conveniente examinar os fluxos de trabalho. A consulta abaixo mostra todos os fluxos para um único trabalho com 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

Exibir o status do histórico de trabalho

Por fim, você pode visualizar o histórico de trabalhos ao longo do tempo. Você pode usar essa consulta para pesquisar o status dos trabalhos ao longo do tempo.

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

Encontre logs relatando erros nos trabalhos de automação.

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

Encontrar trabalhos de Automação do Azure concluídos

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

Encontrar trabalhos de Automação do Azure que falharam, foram suspensos ou interrompidos

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 

Listar todos os runbooks & trabalhos que foram concluídos com êxito com erros

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

Enviar um email quando um trabalho de runbook falhar ou for suspenso

As etapas a seguir explicam como configurar alertas de email no Azure Monitor para notificar quando algo der errado com um trabalho de runbook.

Para criar uma regra de alerta, crie uma pesquisa de logs para os registros de trabalho de runbook que devem invocar o alerta, como descrito em Consultar os logs. Clique em +Nova regra de alerta configurar a regra de alerta.

  1. Na sua conta de Automação, em Monitoramento, selecione Logs.

  2. Crie uma consulta de pesquisa de logs para seu alerta digitando um critério de pesquisa no campo de consulta.

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

    Você também pode agrupar pelo nome do runbook usando:

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and     Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s 
    
  3. Para abrir a tela Criar regra de alerta, clique em +Nova regra de alerta na parte superior da página. Para obter mais informações sobre as opções para configurar o alerta, consulte Alertas de log no Azure

Logs de auditoria de diagnóstico de Automação do Azure

Agora, você pode enviar logs de auditoria também para o workspace do Azure Monitor. Isso permite que as empresas monitorem as principais atividades da conta de automação para segurança e conformidade. Quando habilitado por meio das configurações do Diagnóstico do Azure, você poderá coletar telemetria sobre criar, atualizar e excluir operações para os runbooks, trabalhos e ativos de automação de automação, como conexão, credencial, variável & certificado. Você também pode configurar os alertas para condições de log de auditoria como parte de seus requisitos de monitoramento de segurança.

Diferença entre logs de atividades e logs de auditoria

O log de atividades é um log de plataforma do Azure que fornece insights sobre eventos no nível da assinatura. O log de atividades da conta de Automação inclui informações sobre quando um recurso de automação é modificado ou criado ou excluído. No entanto, ele não captura o nome ou a ID do recurso.

Os logs de auditoria para contas de Automação capturam o nome e a ID do recurso, como variável de automação, a credencial, a conexão e assim por diante, juntamente com o tipo da operação executada para o recurso, e a Automação do Azure removerá alguns detalhes, como dados de IP do cliente que obedecem a conformidade do GDPR.

Os logs de atividades mostrarão detalhes como o IP do cliente porque um log de atividades é um log de plataforma que fornece informações detalhadas de diagnóstico e auditoria para recursos do Azure. Eles são gerados automaticamente para atividades que ocorrem no ARM e enviados por push para o provedor de recursos do log de atividades. Como os logs de atividades fazem parte do monitoramento do Azure, serão mostrados alguns dados do cliente para fornecer insights sobre a atividade do cliente.  

Consultas de amostra para logs de auditoria

Consulta para exibir logs de auditoria de recursos de Automação

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

Consulta para monitorar qualquer operação de atualização, criação ou exclusão de variáveis

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

Consulta para monitorar qualquer operação de runbook, como criação, rascunho ou atualização

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

Consultar para monitorar qualquer criação, atualização ou exclusão de certificado

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

Consultar para monitorar qualquer criação, atualização ou exclusão de credenciais

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

Filtrar saída de status de trabalho convertida em um objeto JSON

Recentemente alteramos o comportamento de como os dados de log de Automação são gravados na tabela AzureDiagnostics no serviço do Log Analytics, em que ele não divide as propriedades JSON em campos separados. Se você tiver configurado seu runbook para formatar objetos no fluxo de saída no formato JSON como colunas separadas, será necessário reconfigurar suas consultas para analisar esse campo para um objeto JSON a fim de acessar essas propriedades. Isso é feito usando parse json para acessar um elemento JSON específico em um caminho conhecido.

Por exemplo, um runbook formata a propriedade ResultDescription no fluxo de saída no formato JSON com vários campos. Para procurar o status de seus trabalhos que estão em um estado de falha, conforme especificado em um campo chamado Status, use esta consulta de exemplo para pesquisar o ResultDescription com um status de Falha:

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

Log Analytics Historical Job Stream JSON format

Próximas etapas