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.
No menu Conta de automação, em Monitoramento , selecione Configurações de diagnóstico.
Clique em Adicionar configuração de diagnóstico.
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.
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.
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.
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.
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:
Na sua conta de Automação, em Monitoramento, selecione Logs.
Em Todas as Consultas, selecione Trabalhos de Automação.
Selecione uma das consultas que deseja executar e clique em Executar.
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 .
Clique em Nova regra de alerta para configurar um alerta do Azure Monitor para esta consulta.
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.
- No espaço de trabalho do Log Analytics, clique em Logs.
- No campo de consulta, digite:
AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g.
- 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)
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.
Na sua conta de Automação, em Monitoramento, selecione Logs.
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
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'
Próximos passos
- Para saber como construir consultas de pesquisa e revisar os logs de tarefas de automação com logs do Azure Monitor, consulte Pesquisas de log em logs do Azure Monitor.
- Para entender a criação e a recuperação de mensagens de saída e de erro de runbooks, consulte Monitorar saída de runbook.
- Para saber mais sobre a execução de runbook, como monitorar trabalhos de runbook e outros detalhes técnicos, consulte Execução de runbook na Automação do Azure.
- Para saber mais sobre logs do Azure Monitor e fontes de coleta de dados, consulte Visão geral de Coletando dados de armazenamento do Azure no Azure Monitor.
- Para obter ajuda na solução de problemas do Log Analytics, consulte Solução de problemas por que o Log Analytics não está mais coletando dados.