Compartilhar via


Entender como o provisionamento integra-se aos logs do Azure Monitor

O provisionamento integra-se aos logs do Azure Monitor e ao Log Analytics. Com o monitoramento do Azure, você pode fazer ações como criar pastas de trabalho, também conhecidas como painéis, armazenar logs de provisionamento por mais de 30 dias e criar consultas e alertas personalizados. Este artigo descreve como os logs de provisionamento são integrados aos logs do Azure Monitor. Para saber mais sobre como os logs de provisionamento funcionam em geral, consulte os logs de provisionamento.

Habilitação da integração de logs de provisionamento

Se você ainda não estiver familiarizado com o Azure Monitor e o Log Analytics, explore os recursos a seguir e volte para saber mais sobre como integrar logs de provisionamento de aplicativos com logs do Azure Monitor.

Para integrar logs de provisionamento aos logs do Azure Monitor:

  1. Entre no Centro de administração do Microsoft Entra como pelo menos um Administrador de Segurança.

  2. Criar um espaço de trabalho do Log Analytics.

  3. Acesse Entra ID>Monitoramento & integridade>Configurações de diagnóstico.

    Captura de tela do acesso às configurações de diagnóstico.

  4. Escolha os logs que você deseja transmitir, selecione a opção Enviar para o espaço de trabalho do Log Analytics e conclua os campos.

    Captura de tela da ativação de logs de provisionamento de aplicativos.

  5. Acesse Entra ID>Monitoramento & integridade>Log Analytics e comece a fazer consultas nos dados.

Observação

Pode levar algum tempo até que os logs apareçam no Log Analytics depois de habilitar a integração pela primeira vez. Se você receber um erro de que a assinatura não está registrada para usar microsoft.insights , verifique novamente após alguns minutos.

Compreendendo os dados

O fluxo de dados subjacente que o provisionamento envia para os visualizadores de log é quase idêntico. Os logs do Azure Monitor obtém quase o mesmo fluxo que o Centro de administração do Microsoft Entra e a API do Microsoft Graph. Há apenas algumas diferenças nos campos de log conforme descrito na tabela a seguir. O Log Analytics pode exibir mais eventos do que os logs no Centro de administração do Microsoft Entra. Para saber mais sobre esses campos, consulte List provisioningObjectSummary.

Logs do Azure Monitor Interface do usuário do portal do Azure API do Azure
errorDescription reason descriçãoDoResultado
status tipoDeResultado tipoDeResultado
activityDateTime TimeGenerated TimeGenerated

Pastas de trabalho do Microsoft Entra

As pastas de trabalho de identidade do Microsoft Entra fornecem uma tela flexível para análise de dados. Elas também permitam a criação de relatórios visuais avançados no portal do Azure. Para saber mais, confira as pastas de trabalho do Microsoft Entra.

Os Análise de Provisionamento e Insights de Provisionamento são duas das pastas de trabalho predefinidas disponíveis. Para exibir os dados, confirme se todos os filtros (timeRange, jobID, appName) estão preenchidos. Confirme também se o aplicativo foi provisionado, caso contrário, não há nenhum dado nos logs.

Pastas de trabalho de provisionamento de aplicativos

Painel de provisionamento de aplicativos

Consultas personalizadas

Você pode criar consultas personalizadas e mostrar os dados em suas pastas de trabalho. Para saber como, consulte Introdução às consultas de log no Azure Monitor e consultas de log no Azure Monitor.

Aqui estão alguns exemplos para começar a usar as consultas de log de provisionamento de aplicativos.

Consulte os logs de um usuário com base na ID do usuário no sistema de origem:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| where tostring(SourceIdentity.Id) == "49a4974bb-5011-415d-b9b8-78caa7024f9a"

Resumir contagem por ErrorCode:

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Resumir a contagem de eventos por dia por ação:

AADProvisioningLogs
| where TimeGenerated > ago(7d)
| summarize count() by Action, bin(TimeGenerated, 1d)

Exibir propriedades de 100 eventos e chaves de projeto:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| extend TargetIdentity = parse_json(TargetIdentity)
| extend ServicePrincipal = parse_json(ServicePrincipal)
| where tostring(SourceIdentity.identityType) == "Group"
| project tostring(ServicePrincipal.Id), tostring(ServicePrincipal.Name), ModifiedProperties, JobId, Id, CycleId, ChangeId, Action, SourceIdentity.identityType, SourceIdentity.details, TargetIdentity.identityType, TargetIdentity.details, ProvisioningSteps
| take 100

Recuperar grupos com membros ignorados devido a problemas na resolução de referências.

AADProvisioningLogs
| where TimeGenerated >= ago(10d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend SourceIdentity = parse_json(SourceIdentity)
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| where tostring(SourceIdentity.identityType) == "Group"
| where ProvisioningSteps matches regex "UnableToResolveReferenceAttributeValue"
| parse tostring(ProvisioningSteps.[2].description) with "We were unable to assign " userObjectId " as the members of " groupDisplayName "." *
| project groupDisplayName, userObjectId,  JobId
| take 100

Resumir ações por aplicativo.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, JobId
| order by JobId asc
| take 5

Identificar picos em operações específicas.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "scim.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, bin(TimeGenerated, 1d)
| render timechart

Alertas personalizados

O Azure Monitor permite configurar alertas personalizados para que você possa ser notificado sobre os principais eventos relacionados ao provisionamento. Por exemplo, talvez você queira receber um alerta sobre picos em falhas, desabilitações ou exclusões. Talvez você também queira ser alertado se houver uma falta de provisionamento, o que indica que algo está errado.

Para saber mais sobre alertas, consulte alertas de log do Azure Monitor. Há muitas opções e configurações, portanto, examine a documentação completa. Mas em um alto nível, veja como você pode criar um alerta:

  1. No Log Analytics, selecione + Nova regra de alerta.
  2. Na guia Condição , selecione o resultado da exibição e edite a consulta no link Logs .
  3. Insira uma consulta na qual você deseja alertar e conclua os campos necessários para criar o alerta.

Para criar um alerta quando houver um pico de falhas:

AADProvisioningLogs
| where JobId == "string" // Customize by adding a specific app JobId
| where ResultType == "Failure"

Pode haver um problema que fez com que o serviço de provisionamento parasse de funcionar. Use a consulta a seguir para detectar quando não há eventos de provisionamento durante um determinado intervalo de tempo.

AADProvisioningLogs
| take 1

Para criar um alerta quando houver um pico de desativações ou exclusões:

AADProvisioningLogs
| where Action in ("Disable", "Delete")

Contribuições da comunidade

Estamos adotando uma abordagem de software livre e baseada na comunidade para consultas e painéis de provisionamento de aplicativos. Crie uma consulta, alerta ou pasta de trabalho que você acha útil para outras pessoas e publique-a no repositório GitHub do AzureMonitorCommunity. Envie-nos um nos email com um link. Revisamos e publicamos consultas e painéis no serviço para que outras pessoas também se beneficiem. Entre em contato conosco pelo email provisioningfeedback@microsoft.com.

Próximas etapas