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.
No menu da 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 ele ainda não tiver um.
Você também pode exibir todas as categorias de logs e métricas.
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.
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.
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.
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:
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 sua 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 o alerta do Azure Monitor para essa consulta.
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: – 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. |
Observação
Verifique se as credenciais não são enviadas para fluxos de trabalho. O serviço remove as credenciais antes de exibir fluxos de trabalho em logs de diagnóstico.
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.
- No workspace 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 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)
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 e trabalhos que foram concluídos com êxito contendo 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.
Na sua conta de Automação, em Monitoramento, selecione Logs.
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
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 as operações de criação, atualização e exclusão para os runbooks, trabalhos e ativos de automação como conexão, credencial, variável e 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'
Próximas etapas
- Para saber como construir consultas de pesquisa e examinar os logs de trabalho de Automação com os logs do Azure Monitor, confira Pesquisas de logs em logs do Azure Monitor.
- Para entender como criar e recuperar mensagens de erro e de saída de runbooks, confira Monitorar a saída do runbook.
- Para saber mais sobre a execução de runbooks, como monitorar trabalhos de runbook e outros detalhes técnicos, confira Execução de runbook na Automação do Azure.
- Para saber mais sobre os logs do Azure Monitor e as fontes de coleta de dados, confira a Visão geral sobre a coleta de dados do armazenamento do Azure nos logs do Azure Monitor.
- Para obter ajuda na solução de problemas do Log Analytics, confira Solucionar problemas se o Log Analytics não está mais coletando dados.