Informazioni sull'integrazione del provisioning con i log di Monitoraggio di Azure

Il provisioning si integra con i log di Monitoraggio di Azure e Log Analytics. Con il monitoraggio di Azure è possibile eseguire operazioni come creare cartelle di lavoro, note anche come dashboard, archiviare i log di provisioning per più di 30 giorni e creare query e avvisi personalizzati. Questo articolo illustra come i log di provisioning si integrano con i log di Monitoraggio di Azure. Per altre informazioni sul funzionamento generale dei log di provisioning, vedere Log di provisioning.

Abilitazione dei log di provisioning

Si dovrebbe avere già familiarità con il monitoraggio di Azure e Log Analytics. In caso contrario, passare a informazioni su di essi e quindi tornare a ottenere informazioni sui log di provisioning delle applicazioni. Per altre informazioni sul monitoraggio di Azure, vedere Panoramica di Monitoraggio di Azure. Per altre informazioni sui log di Monitoraggio di Azure e Log Analytics, vedere Panoramica delle query di log in Monitoraggio di Azure.

Dopo aver configurato il monitoraggio di Azure, è possibile abilitare i log per il provisioning delle applicazioni. L'opzione si trova nella pagina Impostazioni di diagnostica.

Access diagnostic settings

Enable application provisioning logs

Nota

Se è stato appena effettuato il provisioning di un'area di lavoro, può essere necessario del tempo prima di poter inviare i log. Se viene visualizzato un errore che indica che la sottoscrizione non è registrata per l'uso di microsoft.insights , eseguire il controllo dopo alcuni minuti.

Informazioni sui dati

Il flusso di dati sottostante che il provisioning invia visualizzatori di log è quasi identico. I log di Monitoraggio di Azure ottengono quasi lo stesso flusso dell'interfaccia utente portale di Azure e dell'API di Azure. Esistono solo alcune differenze nei campi di log, come descritto nella tabella seguente. Per altre informazioni su questi campi, vedere List provisioningObjectSummary.

Log di Monitoraggio di Azure Interfaccia utente del portale di Azure Istanza app
errorDescription reason resultDescription
stato resultType resultType
activityDateTime TimeGenerated TimeGenerated

Cartelle di lavoro di Monitoraggio di Azure

Le cartelle di lavoro di Monitoraggio di Azure offrono un canvas flessibile per l'analisi dei dati. Forniscono anche la creazione di report visivi avanzati all'interno del portale di Azure. Per altre informazioni, vedere Panoramica delle cartelle di lavoro di Monitoraggio di Azure.

Il provisioning delle applicazioni include un set di cartelle di lavoro predefinite. È possibile trovarli nella pagina Cartelle di lavoro. Per visualizzare i dati, assicurarsi che tutti i filtri (timeRange, jobID, appName) siano popolati. Verificare anche che sia stato effettuato il provisioning dell'app, altrimenti non sono presenti dati nei log.

Application provisioning workbooks

Application provisioning dashboard

Query personalizzate

È possibile creare query personalizzate e visualizzare i dati nei dashboard di Azure. Per informazioni su come, vedere Creare e condividere dashboard dei dati di Log Analytics. Assicurarsi anche di consultare Panoramica delle query di log in Monitoraggio di Azure.

Ecco alcuni esempi per iniziare a usare il provisioning delle applicazioni.

Eseguire una query sui log per un utente in base al relativo ID nel sistema di origine:

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

Riepilogare il conteggio per ErrorCode:

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Riepilogare il numero di eventi al giorno per azione:

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

Accettare 100 eventi e proprietà chiave del progetto:

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

Recuperare i gruppi con membri ignorati a causa di problemi durante la risoluzione dei riferimenti.

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

Riepilogare le azioni in base all'applicazione.

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

Identificare i picchi in operazioni specifiche.

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

Avvisi personalizzati

Monitoraggio di Azure consente di configurare avvisi personalizzati in modo da ricevere notifiche sugli eventi chiave correlati al provisioning. Ad esempio, potrebbe essere necessario ricevere un avviso in caso di picchi di errori. O forse picchi in disabilitazioni o eliminazioni. Un altro esempio di dove si potrebbe essere avvisati è una mancanza di provisioning, che indica un errore.

Per altre informazioni sugli avvisi, vedere Avvisi dei log di Monitoraggio di Azure.

Avvisare quando si verifica un picco di errori. Sostituire jobID con l'ID processo per l'applicazione.

Alert when there's a spike in failures.

Potrebbe verificarsi un problema che causava l'arresto dell'esecuzione del servizio di provisioning. Usare l'avviso seguente per rilevare quando non sono presenti eventi di provisioning durante un determinato intervallo di tempo.

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

Avvisare quando si verifica un picco di disabilitazione o eliminazione.

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

Contributi della community

Stiamo adottando un approccio open source e basato sulla community per le query e i dashboard di provisioning delle applicazioni. Creare una query, un avviso o una cartella di lavoro che si ritiene utile per altri utenti, quindi pubblicarla nel repository GitHub AzureMonitorCommunity. Inviaci un messaggio di posta elettronica con un link. Vengono esaminate e pubblicate query e dashboard nel servizio in modo che anche altri vantaggi. Contattare provisioningfeedback@microsoft.com.

Passaggi successivi