Neste post, iremos criar um dashboard para monitorar as implementações do Autopilot (Eventos). Vamos extrair informações por meio da API do Microsoft Graph, direcioná-las para o Log Analytics Workspace e, posteriormente, integrá-las ao Power BI. Esses dados podem oferecer insights que contribuem tanto para a avaliação de desempenho quanto para a identificação de possíveis problemas.
Arquitetura
Criar App no Entra ID
Precisaremos criar um App no Entra ID para estabelecer uma autenticação segura para extrair informações do Microsoft Graph, Se necessário, utilize este link para acessar um guia passo a passo sobre como criar o aplicativo.
- Permissões do tipo application a serem adicionadas ao App:
- DeviceManagementManagedDevices.Read.All
- DeviceManagementManagedDevices.ReadWrite.All
- User.Read.All
- User.ReadWrite.All
- Directory.Read.All
- Directory.ReadWrite.All
Log Analytics Workspace
Criar Workspace
Acesse https://portal.azure.com e, em seguida, pesquise por Log Analytics workspaces.
- Clique em Criar.
- Selecione o Resource group, digite o nome do workspace e escolha a região.
- Clique em Review + create, em seguida, clique em Create novamente.
Criar Tabela Customizada
Agora, vamos à criação de uma tabela personalizada no workspace. O Script pode ser encontrado no meu repositório no GitHub. Ao obtê-lo, faça as alterações nos campos abaixo utilizando as informações do workspace que foi criado. Veja abaixo:
$subscriptionId = "f1d6****-****-****-****-********82bb"
$resourceGroupName = "rg-autopilot-events"
$workspace = "log-autopilot-events"
Na próxima etapa, vamos executar o script por meio do Cloud Shell.
- Acesse o Cloud Shell.
- Selecione a opção Carregar/Baixar arquivos.
- Escolha Carregar.
- Selecione o Script, depois em OK.
Execute o script.
Ao entrar no workspace, clique em Tables no menu para visualizar a tabela criada.
Data Collection Endpoint (DCE)
Vamos criar um DCE para fornecer uma conexão com Log Analytics Workspace.
Em https://portal.azure.com, pesquise por Deploy a custom template.
Clique em Build your own template in the editor.
- Utilize o JSON disponibilizado no Github.
- Cole o conteúdo e clique em Salvar.
- Selecione o Resource Group, Nome e Região.
- Clique em Review + create, depois Create.
Criar Data Collection Rule (DCR)
Em seguida, para criar um DCR, utilizaremos novamente a opção Deploy a custom template, como na etapa anterior. No entanto, desta vez, aplique este JSON.
Saiba mais sobre os campos que precisam ser preenchidos:
- Data Collection Rule Name: Digite o nome do DCR.
- Workspace Resource Id: Acesse o workspace, na seção Overview, clique em JSON View.
- Endpoint Resource Id: Acesse o DCE, na seção Overview, clique em JSON View.
- Stream Name: Custom-AutopilotEvents
- Kusto query: source
- Table Name: AutopilotEvents_CL
Atribuir permissões à DCR
A etapa final é dar permissão ao aplicativo para usar o DCR.
- Clique em Access control (IAM) em DCR.
- Selecione Add role assignment.
- Selecione Monitoring Metrics Publisher, depois em Next.
- Marque User, group or service principal.
- Clique em Select members e escolha o aplicativo criado na primeira etapa deste post.
- Por fim, clique em Review + assign.
Automation Account
Criar Automation Account
- Em https://portal.azure.com, pesquise por Automation Accounts.
- Clique em Criar. Na próxima tela, selecione o resource group, o nome e a região.
- Prossiga com as demais etapas para concluir a criação.
Criar Variáveis
- No menu lateral, vá até variables.
- Clique me Add a variable.
- Adicione o nome da variável.
- Inclua o valor correspondente do Aplicativo.
- Marque Yes em Encrypted.
- Clique em Create.
Crie as variáveis para Client ID, Tenant ID e a Secret do Applicativo.
Criar Runbook
- No menu lateral, vá até Runbooks.
- Clique em Create a Runbook.
- Insira o nome, tipo e versão conforme indicado abaixo.
- Clique em Create.
Na sequência, utilize o script PowerShell disponibilizado no Github.
Atenção ao início do script, onde existem algumas variáveis que precisam ser alteradas.
# Definir variáveis de autenticação
$clientId = Get-AutomationVariable -Name 'autopilot-client-id'
$clientSecret = Get-AutomationVariable -Name 'autopilot-secrets'
$tenantId = Get-AutomationVariable -Name 'autopilot-tenant-id'
# Informações necessárias para enviar dados para o ponto de extremidade DCR.
$dceEndpoint = ""
$dcrImmutableId = ""
Nas linhas 2, 3 e 4, note que substituímos os valores pelas variáveis criadas anteriormente.
$dceEndpoint: Na seção Overview do DCE, copie o valor de Logs Ingestion.
$dcrImmutableId: Na seção Overview do DCR, clique em JSON View, depois copie o valor de immutableId.
Schedule
- No Runbook, clique em Schedule no menu lateral.
- Clique em Add a schedule.
- Selecione Link a schedule to your runbook.
- Clique em Add a schedule.
- Configure as definições para uma execução diária.
- Clique em Create.
- No final, clique em OK.
Consultar Logs
- Navegue até o workspace.
- No menu, clique em Logs.
- Insira o nome da tabela e clique em Run.
Conectar Log Analytics com Power BI
Após executar a consulta na tabela, clique em Exportar e em seguida Power BI (as an M query). Um arquivo TXT contendo a consulta a ser utilizada no Power BI será baixado.
- No Power BI Desktop, selecione: Obter Dados > Consulta Vazia > Editor Avançado de Consultas.
- Cole o script em Linguagem M no Editor Avançado de Consultas e selecione Concluído.
Em seguida, clique em Concluir. Dessa forma, você pode prosseguir com a personalização do dashboard de acordo com suas preferências.
Dashboard de Exemplo
No link abaixo, estou disponibilizando um dashboard de exemplo para você conferir.
Referência
Saiba mais sobre API de ingestão de logs no Azure Monitor:
API de ingestão de logs no Azure Monitor – Azure Monitor | Microsoft Learn
Comentar