Partilhar via


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

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

  • Obtenha informações sobre o status de seus trabalhos de automação.
  • Dispare um e-mail ou alerta com base no status do seu trabalho runbook (por exemplo, falha ou suspensão).
  • Escrever consultas avançadas nos fluxos de tarefas.
  • Correlacionar tarefas em contas de Automatização.
  • Use exibições personalizadas e consultas de pesquisa para visualizar os resultados do runbook, o status do trabalho do runbook e outros indicadores-chave ou métricas relacionados por meio de um painel do Azure.
  • Obtenha 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 logs do Azure Monitor, você pode consolidar logs de diferentes recursos no mesmo espaço de trabalho, onde pode ser analisado com consultas para recuperar, consolidar e analisar rapidamente os dados coletados. Você pode 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 regras de visualização ou 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 inclui funcionalidades avançadas, como agregações, junções e análises inteligentes. Você pode aprender rapidamente a linguagem de consulta usando várias lições.

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

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

Tipos de dados Description
Registos de Tarefas Status do trabalho de runbook na conta de automação.
Fluxos 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 as interações do cliente com dados ou as configurações do serviço de Automação do Azure.
Métricas Total de trabalhos, atualização total, execução da máquina de implantação, execução total da implantação da atualização.

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

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

  1. No menu Conta de automação, em Monitoramento , selecione Configurações de diagnóstico.

    Captura de tela mostrando a seleção da opção de configuração de diagnóstico.

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

    Captura de tela mostrando a seleção de adicionar configuração de diagnóstico.

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

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

    Captura de tela mostrando todas as categorias de logs e métricas.

    • Logs e métricas para rotear : 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 do destino : Marque a caixa de seleção para cada destino. De acordo com a seleção de cada caixa, as opções aparecem para permitir que você adicione informações adicionais.

      Captura de tela mostrando seleções na seção de detalhes do destino.

      • Log Analytics : insira o ID da assinatura e o nome do espaço de trabalho. Se você não tiver um espaço de trabalho, deverá 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 o 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. Consulte Cotas e limites dos Hubs de Eventos do Azure para obter detalhes.
        • Política do Hub de Eventos (opcional): uma política define as permissões que o mecanismo de streaming tem. Consulte Funcionalidade Hubs de Eventos.
      • Armazenamento: escolha a assinatura, a conta de armazenamento e a política de retenção. Captura de ecrã a mostrar a conta de armazenamento.

      • Integração de parceiros: primeiro tem de instalar uma integração de parceiros na sua subscrição. As opções de configuração variam de acordo com o parceiro. Para obter mais informações, consulte Integração do Azure Monitor.

  4. Clique em Guardar.

Após alguns momentos, a nova configuração aparece na sua lista de configurações para este recurso e os logs são transmitidos para os destinos especificados à medida que novos dados de evento são gerados. Pode haver uma diferença de tempo de 15 minutos entre o evento emitido e sua aparência no espaço de trabalho 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.

    Captura de tela mostrando como navegar para selecionar trabalhos de automação.

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

  4. Para executar uma consulta personalizada, feche a janela Consultas , cole a 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 um alerta do Azure Monitor para esta consulta.

    Captura de ecrã a mostrar como consultar registos.

Registos de registo do Azure Monitor

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

Registos de trabalhos

Property Description
TimeGenerated Data e hora da execução do trabalho do runbook.
RunbookName_s Nome/nomes do runbook.
Caller_s Chamador que iniciou a operação. Os valores possíveis são um endereço de e-mail ou o sistema para trabalhos agendados.
Tenant_g GUID (identificador global exclusivo) que identifica o locatário do chamador.
JobId_g GUID que identifica o trabalho de runbook.
ResultType Status do trabalho do runbook. Os valores possíveis são:
- Criado
- Iniciado
- Parado
- Suspenso
- Falhado
- Concluído
Categoria Classificação do tipo de dados. Para a Automatização, o valor é JobLogs.
OperationName Tipo de operação executada no Azure. Para automação, o valor é Job.
Recurso Nome da conta de automação
SourceSystem Sistema que os logs do Azure Monitor usam para coletar os dados. O valor é sempre Azure para diagnóstico do Azure.
ResultDescription Estado do resultado do trabalho do runbook. Os valores possíveis são:
- Trabalho iniciado
- Trabalho falhado
- Trabalho Concluído
CorrelationId GUID de correlação do trabalho de runbook.
ResourceId ID do recurso de conta da Automação do Azure do runbook.
SubscriptionId GUID de 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. AUTOMAÇÃO.
ResourceType Tipo de recurso. O valor é AUTOMATIONACCOUNTS.

Fluxos de trabalho

Property Description
TimeGenerated Data e hora em que o trabalho de runbook foi executado.
RunbookName_s Nome do runbook.
Caller_s Chamador que iniciou a operação. Os valores possíveis são um endereço de e-mail ou o sistema para trabalhos agendados.
StreamType_s Tipo de fluxo de trabalho. Os valores possíveis são:
- Em Curso
- Saída
- Aviso
- Erro
- Depuração
- Verboso
Tenant_g GUID que identifica o locatário do chamador.
JobId_g GUID que identifica o trabalho de runbook.
ResultType O estado do trabalho do runbook. Os valores possíveis são:
- Em curso
Categoria Classificação do tipo de dados. Para a Automatização, o valor é JobStreams.
OperationName Tipo de operação executada no Azure. Para automação, o valor é Job.
Recurso Nome da conta de automação.
SourceSystem Sistema que os logs do Azure Monitor usam para coletar os dados. O valor é sempre Azure para diagnóstico do Azure.
ResultDescription Descrição que inclui o fluxo de saída do runbook.
CorrelationId GUID de correlação do trabalho de runbook.
ResourceId ID do recurso de conta da Automação do Azure do runbook.
SubscriptionId GUID de 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. AUTOMAÇÃO.
ResourceType Tipo de recurso. O valor é AUTOMATIONACCOUNTS.

Nota

Verifique se as credenciais não são enviadas para fluxos de trabalho. O serviço remove credenciais antes de exibir fluxos de trabalho em logs de diagnóstico.

Eventos de auditoria

Property Description
TenantID GUID que identifica o locatário do chamador.
TimeGenerated (UTC) Data e hora em que o trabalho de runbook é executado.
Categoria AuditEvent
ResourceGroup Nome do grupo de recursos da conta de automação.
ID da Subscrição GUID de assinatura do Azure para a conta de automação.
ResourceProvider MICROSOFT. AUTOMAÇÃO
Recurso Nome da Conta de Automatização
ResourceType AUTOMAÇÃOCONTAS
OperationName Os valores possíveis são Update, Create, Delete.
ResultType Status do trabalho do runbook. O valor possível é: Concluído.
CorrelationId GUID de correlação do trabalho de runbook.
ResultDescription Estado do resultado do trabalho do runbook. Os valores possíveis são Update, Create, Delete.
Tenant_g GUID que identifica o locatário do chamador.
SourceSystem Sistema que os logs do Azures Monitor usam para coletar os dados. O valor é sempre Azure para diagnóstico do Azure.
clientInfo_IpAddress_s {esfregado}
clientInfo_PrincipalName_s {esfregado}
clientInfo_TenantId_g ID do locatário do cliente.
clientInfo_Issuer_s
clientInfo_ObjectId_g 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.
Type AzureDiagnostics
_ResourceId ID do recurso de conta da Automação do Azure do runbook.

Exibir logs de automação nos logs do Azure Monitor

Agora que você começou a enviar seus fluxos de trabalho de automação e logs para logs do Azure Monitor, vamos ver o que você pode fazer com esses logs dentro dos logs do Azure Monitor.

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

Consultas de exemplo para logs e fluxos de tarefas

Localizar todos os trabalhos concluídos com erro

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

  1. No espaço de trabalho 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 Procurar.

Exibir fluxos de trabalho para um trabalho

Ao depurar um trabalho, você também pode querer examinar os fluxos de trabalho. A consulta a seguir 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

Ver estado histórico do trabalho

Finalmente, você pode querer visualizar seu histórico de trabalho ao longo do tempo. Você pode usar essa consulta para pesquisar o status de seus trabalhos ao longo do tempo.

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

Gráfico de status histórico do trabalho do Log Analytics

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 

Encontre 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

Localizar 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 e-mail quando um trabalho 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 log para os registros de trabalho do runbook que devem invocar o alerta conforme descrito em Consultar os logs. Clique em +Nova regra de alerta para configurá-la.

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

  2. Crie uma consulta de pesquisa de log para seu alerta inserindo 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 os alertas, consulte Registrar alertas no Azure

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

Agora você pode enviar logs de auditoria também para o espaço de trabalho 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 de Diagnóstico do Azure, você poderá coletar telemetria sobre criar, atualizar e excluir operações para os runbooks de automação, trabalhos e ativos de automação, como conexão, credencial, variável ou 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 logde plataforma no Azure que fornece informações sobre eventos no nível de assinatura. O log de atividades da conta de automação inclui informações sobre quando um recurso de automação é modificado, criado ou excluído. No entanto, ele não captura o nome ou 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, credencial, conexão e assim por diante, juntamente com o tipo de operação executada para o recurso e a Automação do Azure eliminaria alguns detalhes, como dados IP do cliente em conformidade com a conformidade com o GDPR.

Os logs de atividade mostrariam detalhes como 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 são enviados por push para o provedor de recursos do log de atividades. Como os logs de atividade fazem parte do monitoramento do Azure, ele mostraria alguns dados do cliente para fornecer informações sobre a atividade do cliente.  

Consultas de exemplo 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 variável de atualização, criação ou operação de exclusão

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

Consulta para monitorar qualquer operação de runbook, como criar, rascunhar ou atualizar

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

Consulta 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" 

Consulta 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 a saída do status do trabalho convertida em um objeto JSON

Recentemente, alteramos o comportamento de como os dados de log de automação são gravados AzureDiagnostics na tabela no serviço Log Analytics, onde não dividem mais as propriedades JSON em campos separados. Se você configurou seu runbook para formatar objetos no fluxo de saída no formato JSON como colunas separadas, é necessário reconfigurar suas consultas para analisar esse campo em um objeto JSON para 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'

Formato JSON do Log Analytics Historical Job Stream

Próximos passos