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 o provisionamento de logs funciona de maneira geral, consulte Provisionar logs.

Habilitando o provisionamento de logs

Você já deve estar familiarizado com o Monitoramento e o Log Analytics do Azure. Caso contrário, faça uma pausa para aprender sobre eles e volte para saber mais sobre os logs de provisionamento de aplicativos. Aprenda sobre monitoramento no Azure em Visão geral do Azure Monitor. Para saber mais sobre os logs do Azure Monitor e do Log Analytics, confira Visão geral das consultas de log no Azure Monitor.

Após configurado o monitoramento do Azure, você pode habilitar logs para provisionamento de aplicativos. Essa opção está localizada na página Configurações de diagnóstico.

Access diagnostic settings

Enable application provisioning logs

Observação

Se você acabou de provisionar um espaço de trabalho, pode levar algum tempo até poder enviar logs para ele. Se você receber um erro de que a sua assinatura não está registrada para usar o microsoft.insights, aguarde alguns minutos e verifique novamente.

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 recebem quase o mesmo fluxo que a interface do usuário do portal do Azure e a API do Azure. Há apenas algumas diferenças nos campos de log, conforme descrito na tabela a seguir. Para saber mais sobre esses campos, consulte Listar provisioningObjectSummary.

Logs do Azure Monitor Interface do usuário do portal do Azure API do Azure
ErrorDescription reason resultDescription
status resultType resultType
activityDateTime TimeGenerated TimeGenerated

Pastas de trabalho do Azure Monitor

As pastas de trabalho do Azure Monitor fornecem uma tela flexível para a análise de dados. Elas também permitam a criação de relatórios visuais avançados no portal do Azure. Para saber mais, consulte Visão geral das Pastas de Trabalho do Azure Monitor.

O provisionamento de aplicativos acompanha um conjunto de pastas de trabalho pré-criadas. Você pode encontrá-las na página de Pastas de Trabalho. 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.

Application provisioning workbooks

Application provisioning dashboard

Consultas personalizadas

Você pode criar consultas personalizadas e exibir os dados nos painéis do Azure. Criar e compartilhar painéis de dados do Log Analytics. Além disso, não deixe de conferir Visão geral das consultas de log no Azure Monitor.

Aqui estão alguns exemplos para dar início ao 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, você pode querer receber um alerta sobre picos de falhas. Ou sobre picos em desabilitações ou exclusões. Outro exemplo de um possível alerta é sobre a falta de qualquer provisionamento, o que indica que algo está errado.

Para saber mais sobre alertas, consulte Alertas de Log do Azure Monitor.

Alertar quando há um pico de falhas. Substitua o jobID pelo jobID do seu aplicativo.

Alert when there's a spike in failures.

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

There may be an issue that caused the provisioning service to stop running.

Alertar quando houver um pico em desabilitações ou exclusões.

Alert when there's a spike in disables or deletes.

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, um alerta ou uma pasta de trabalho que outras pessoas possam achar úteis e publique no Repositório do GitHub 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