Découvrez comment l’approvisionnement s’intègre aux journaux Azure Monitor

L’approvisionnement s’intègre aux journaux Azure Monitor et à Log Analytics. Grâce à l’analyse Azure, vous pouvez effectuer diverses opérations, comme créer des classeurs, également appelés tableaux de bord, stocker des journaux d’approvisionnement pendant plus de 30 jours et créer des requêtes et des alertes personnalisées. Cet article explique comment l’approvisionnement des journaux est intégré aux journaux Azure Monitor. Pour en savoir plus sur le fonctionnement général des journaux d’approvisionnement, consultez Journaux d’approvisionnement.

Activation des journaux d’approvisionnement

Vous devez déjà avoir une connaissance de Log Analytics et de l’analyse Azure. Si ce n’est pas le cas, apprenez-en plus à leur sujet, puis revenez pour découvrir les journaux d’approvisionnement d’application. Pour en savoir plus sur l’analyse Azure, consultez Vue d’ensemble d’Azure Monitor. Pour en savoir plus sur les journaux Azure Monitor et Log Analytics, consultez Vue d’ensemble des requêtes de journal dans Azure Monitor.

Une fois que vous avez configuré l’analyse Azure, vous pouvez activer les journaux pour l’approvisionnement des applications. L’option se trouve sur la page Paramètres de diagnostic.

Access diagnostic settings

Enable application provisioning logs

Remarque

Si vous venez d’approvisionner un espace de travail, il peut falloir un certain temps avant de pouvoir y envoyer des journaux. Si vous recevez une erreur indiquant que l’abonnement n’est pas inscrit pour utiliser microsoft.insights revenez après quelques minutes.

Vue d’ensemble des données

Le flux de données sous-jacent que l’approvisionnement envoie aux visionneuses de journaux est presque identique. Les journaux Azure Monitor suivent quasiment le même flux que l’interface utilisateur du Portail Azure et l’API Azure. Il n’existe que quelques différences dans les champs du journal, comme indiqué dans le tableau suivant. Pour en savoir plus sur ces champs, consultez Répertorier provisioningObjectSummary.

Journaux d’activité Azure Monitor Interface utilisateur du portail Azure API Azure
errorDescription reason resultDescription
status resultType resultType
activityDateTime TimeGenerated TimeGenerated

Classeurs Azure Monitor

Les classeurs Azure Monitor fournissent un canevas flexible pour l’analyse des données. Ils permettent également de créer des rapports visuels enrichis au sein du Portail Azure. Pour plus d’informations, consultez Vue d’ensemble des classeurs Azure Monitor.

L’approvisionnement d’applications est fourni avec un ensemble de classeurs prédéfinis. Vous pouvez les trouver dans la page Classeurs. Pour afficher les données, assurez-vous que tous les filtres (timeRange, jobID, appName) sont remplis. Vérifiez également que l’application a été approvisionnée, sinon les journaux ne contiennent aucune donnée.

Application provisioning workbooks

Application provisioning dashboard

Requêtes personnalisées

Vous pouvez créer des requêtes personnalisées et afficher les données dans des tableaux de bord Azure. Pour savoir comment procéder, consultez Créer et partager des tableaux de bord de données Log Analytics. Veillez également à consulter Vue d’ensemble des requêtes de journal dans Azure Monitor.

Voici quelques exemples pour prendre en main l’approvisionnement d’applications.

Interroger les journaux d’un utilisateur en fonction de son ID dans le système source :

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

Total par ErrorCode :

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Total d’événements par jour et par action :

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

Prenez 100 événements et les propriétés de clé du projet :

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

Récupérez des groupes avec des membres ignorés en raison de problèmes de résolution des références.

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

Résumez les actions par application.

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

Identifiez les pics dans des opérations spécifiques.

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

Alertes personnalisées

Azure Monitor vous permet de configurer des alertes personnalisées afin de recevoir des notifications sur les principaux événements liés à l’approvisionnement. Par exemple, vous souhaiterez peut-être recevoir une alerte en cas de défaillance. Ou peut-être en cas de pics de désactivation ou de suppression. Un autre exemple d’alerte que vous pourriez vouloir recevoir est l’absence d’approvisionnement, qui indique un problème.

Pour en savoir plus sur les alertes, consultez Alertes de journal Azure Monitor.

Alerte en cas de pic de défaillances. Remplacez jobID par le jobID de votre application.

Alert when there's a spike in failures.

Il peut y avoir un problème qui a provoqué l’arrêt de l’exécution du service d’approvisionnement. Utilisez l’alerte suivante pour détecter quand il n’y a pas d’événements d’approvisionnement pendant un intervalle de temps donné.

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

Alerte en cas de pic de désactivations ou de suppressions.

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

Contributions de la communauté

Nous adoptons une approche open source et basée sur la communauté pour les requêtes et les tableaux de bord d’approvisionnement des applications. Créez une requête, une alerte ou un classeur que vous estimez utile aux autres, publiez-le/la sur le référentiel GitHub AzureMonitorCommunity. Envoyez-nous un e-mail avec un lien. Nous examinons et publions des requêtes et des tableaux de bord sur le service afin que d’autres utilisateurs en bénéficient. Contactez-nous à l’adresse provisioningfeedback@microsoft.com.

Étapes suivantes