Journal d’activité Azure Monitor

Le journal d’activité Azure Monitor est un journal de plateforme dans Azure qui fournit des insights pour tous les événements de niveau abonnement. Le journal d’activité inclut des informations telles que le moment auquel une ressource a été modifiée ou une machine virtuelle démarrée. Vous pouvez afficher le journal d’activité dans le portail Azure, ou récupérer des entrées avec PowerShell et Azure CLI. Cet article fournit des informations sur la façon d’afficher le journal d’activité et d’envoyer celui-ci à différentes destinations.

Pour obtenir des fonctionnalités supplémentaires, créez un paramètre de diagnostic pour envoyer le journal d’activité à un ou plusieurs des emplacements ci-dessous aux fins suivantes :

  • Envoyer aux Journaux Azure Monitor pour les requêtes et alertes plus complexes, et les rétentions plus longues (jusqu’à deux ans).
  • Envoyer à Azure Event Hubs pour transférer en dehors d’Azure.
  • Envoyer vers Stockage Azure pour un archivage à long terme moins cher.

Pour plus d’informations sur la création d’un paramètre de diagnostic, consultez Créer des paramètres de diagnostic pour envoyer des journaux et des métriques de plateforme à différentes destinations.

Notes

  • Les entrées du journal d’activité sont générées par le système et ne peuvent être ni changées, ni supprimées.
  • Les entrées du journal d’activité représentent les changements apportés au plan de contrôle, par exemple le redémarrage d’une machine virtuelle. Les entrées non associées doivent être écrites dans les journaux de ressources Azure

Période de rétention

Les événements du journal d’activité sont conservés dans Azure pendant 90 jours, puis supprimés. Les entrées ne sont pas facturées pendant ce temps, quel que soit le volume. Pour obtenir des fonctionnalités supplémentaires telles qu’une rétention plus longue, créez un paramètre de diagnostic et acheminez les entrées vers un autre emplacement en fonction de vos besoins. Consultez les critères fournis dans la section précédente.

Afficher le journal d’activité

Vous pouvez accéder au journal d’activité à partir de la plupart des menus du portail Azure. Le menu à partir duquel vous l’ouvrez détermine son filtre initial. Si vous l’ouvrez à partir du menu Surveiller, le seul filtre est sur l’abonnement. Si vous l’ouvrez à partir du menu d’une ressource, le filtre est défini sur cette ressource. Vous pouvez toujours modifier le filtre pour afficher toutes les autres entrées. Sélectionnez Ajouter un filtre pour ajouter des propriétés supplémentaires au filtre.

Capture d’écran montrant le journal d’activité.

Pour obtenir une description des catégories du journal d’activité, consultez Schéma d’événement du journal d’activité Azure.

Télécharger le journal d’activité

Sélectionnez Télécharger en tant que CSV pour télécharger les événements figurant dans l’affichage actuel.

Capture d’écran montrant le téléchargement du journal d’activité.

Afficher l'historique des modifications

Pour certains événements, vous pouvez afficher l’historique des modifications, qui indique les modifications qui sont survenues au cours de cette période. Sélectionnez un événement du journal d’activité, que vous souhaitez examiner de plus près. Sélectionnez l'onglet Historique des modifications (préversion) pour afficher les modifications associées à cet événement.

Capture d’écran montrant la liste Historique des modifications pour un événement.

Si des modifications sont associées à l’événement, la liste de celles-ci s’affiche, dans laquelle vous pouvez opérer une sélection. La sélection d’une modification a pour effet d’ouvrir la page Historique des modifications (préversion). Cette page affiche les modifications apportées à la ressource. Dans l’exemple suivant, vous pouvez voir que la machine virtuelle a changé de taille. La page affiche la taille de la machine virtuelle avant et après modification. Pour en savoir plus sur l’historique des modifications, consultez Obtenir les modifications des ressources.

Capture d’écran montrant la page Historique des modifications affichant les différences.

Autres méthodes pour récupérer les événements du journal d’activité

Vous pouvez également accéder aux événements du journal d’activité à l’aide des méthodes suivantes :

Envoyer à l’espace de travail Log Analytics

Envoyez le journal d’activité à un espace de travail Log Analytics pour activer la fonctionnalité Journaux Azure Monitor où vous pouvez :

  • Mettre en corrélation les données du journal d’activité avec d’autres données de surveillance collectées par Azure Monitor.
  • Consolider les entrées de journal de plusieurs abonnements et locataires Azure en un seul endroit pour les analyser ensemble.
  • Utiliser les requêtes de journal pour effectuer des analyses complexes et obtenir des informations détaillées sur les entrées du journal d’activité.
  • Utiliser des alertes de journal avec des entrées d’activité pour une logique d’alerte plus complexe.
  • Stocker les entrées du journal d’activité plus longtemps que la période de rétention du journal d’activité.
  • Éviter les frais d’ingestion ou de conservation des données pour les données de journal d’activité stockées dans un espace de travail Log Analytics.
  • La durée de conservation par défaut dans Log Analytics est de 90 jours.

Sélectionner Exporter les journaux d’activité pour envoyer le journal d’activité à un espace de travail Log Analytics.

Capture d’écran montrant l’exportation de journaux d’activité.

Vous pouvez envoyer le journal d’activité d’un abonnement unique à jusqu’à cinq espaces de travail.

Les données du journal d’activité d’un espace de travail Log Analytics sont stockées dans une table appelée AzureActivity que vous pouvez récupérer à l’aide d’une requête de journal dans Log Analytics. La structure de cette table varie selon la catégorie de l’entrée de journal. Pour obtenir une description des propriétés de la table, consultez la référence des données d’Azure Monitor.

Par exemple, pour afficher le nombre d’enregistrements du journal d’activité pour chaque catégorie, utilisez la requête suivante :

AzureActivity
| summarize count() by CategoryValue

Pour récupérer tous les enregistrements de la catégorie administrative, utilisez la requête suivante :

AzureActivity
| where CategoryValue == "Administrative"

Envoyer à Azure Event Hubs

Envoyez le journal d’activité à Azure Event Hubs pour envoyer les entrées en dehors d’Azure, par exemple à la solution SIEM d’un tiers ou à d’autres solutions d’analytique des journaux d’activité. Les événements du journal d’activité en provenance d’Event Hubs sont consommés au format JSON avec un élément records contenant les enregistrements dans chaque charge utile. Le schéma dépend de la catégorie et est décrit dans Schéma d’événement du journal d’activité Azure.

Voici des exemples de données de sortie provenant d’Event Hubs pour un journal d’activité :

{
    "records": [
        {
            "time": "2019-01-21T22:14:26.9792776Z",
            "resourceId": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
            "operationName": "microsoft.support/supporttickets/write",
            "category": "Write",
            "resultType": "Success",
            "resultSignature": "Succeeded.Created",
            "durationMs": 2826,
            "callerIpAddress": "111.111.111.11",
            "correlationId": "c776f9f4-36e5-4e0e-809b-c9b3c3fb62a8",
            "identity": {
                "authorization": {
                    "scope": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
                    "action": "microsoft.support/supporttickets/write",
                    "evidence": {
                        "role": "Subscription Admin"
                    }
                },
                "claims": {
                    "aud": "https://management.core.windows.net/",
                    "iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
                    "iat": "1421876371",
                    "nbf": "1421876371",
                    "exp": "1421880271",
                    "ver": "1.0",
                    "http://schemas.microsoft.com/identity/claims/tenantid": "00000000-0000-0000-0000-000000000000",
                    "http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
                    "http://schemas.microsoft.com/identity/claims/objectidentifier": "2468adf0-8211-44e3-95xq-85137af64708",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
                    "puid": "20030000801A118C",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "9vckmEGF7zDKk1YzIY8k0t1_EAPaXoeHyPRn6f413zM",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "John",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "Smith",
                    "name": "John Smith",
                    "groups": "cacfe77c-e058-4712-83qw-f9b08849fd60,7f71d11d-4c41-4b23-99d2-d32ce7aa621c,31522864-0578-4ea0-9gdc-e66cc564d18c",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
                    "appid": "c44b4083-3bq0-49c1-b47d-974e53cbdf3c",
                    "appidacr": "2",
                    "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
                    "http://schemas.microsoft.com/claims/authnclassreference": "1"
                }
            },
            "level": "Information",
            "location": "global",
            "properties": {
                "statusCode": "Created",
                "serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
            }
        }
    ]
}

Envoyer à Stockage Azure

Envoyez le journal d’activité à un compte Stockage Azure si vous souhaitez conserver vos données de journal plus de 90 jours à des fins d’audit, d’analyse statique ou de sauvegarde. Si vous êtes tenu de conserver vos événements pendant maximum 90 jours, vous n’avez pas besoin de configurer d’archivage sur un compte de stockage. Les événements du journal d’activité sont conservés dans la plateforme pendant 90 jours.

Quand vous envoyez le journal d’activité à Azure, un conteneur de stockage est créé dans le compte de stockage dès qu’un événement se produit. Les blobs présents dans le conteneur utilisent la convention d’affectation de noms suivante :

insights-activity-logs/resourceId=/SUBSCRIPTIONS/{subscription ID}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json

Par exemple, un blob particulier peut avoir un nom similaire à ce qui suit :

insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/y=2020/m=06/d=08/h=18/m=00/PT1H.json

Chaque objet blob PT1H.json contient un objet JSON avec des événements provenant de fichiers journaux qui ont été reçus pendant l’heure spécifiée dans l’URL de l’objet blob. Pendant cette heure, les événements sont ajoutés au fichier PT1H.json à mesure qu’ils sont reçus, quelle que soit la date à laquelle ils ont été générés. La valeur de minute m=00 dans l’URL est toujours 00 car les objets blob sont créés toutes les heures.

Chaque événement est stocké dans le fichier PT1H.json au format suivant. Ce format utilise un schéma de niveau supérieur commun, mais qui est autrement unique pour chaque catégorie, comme décrit dans Schéma du journal d’activité.

{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "0f0cb6b4-804b-4129-b893-70aeeb63997e", "operationName": "Microsoft.Resourcehealth/healthevent/Updated/action", "level": "Information", "resultType": "Updated", "category": "ResourceHealth", "properties": {"eventCategory":"ResourceHealth","eventProperties":{"title":"This virtual machine is starting as requested by an authorized user or process. It will be online shortly.","details":"VirtualMachineStartInitiatedByControlPlane","currentHealthStatus":"Unknown","previousHealthStatus":"Unknown","type":"Downtime","cause":"UserInitiated"}}}

Méthodes de collecte héritées

Si vous collectez les journaux d’activité à l’aide de la méthode de collecte héritée, nous vous recommandons d’exporter les journaux d’activité vers votre espace de travail Log Analytics et de désactiver la collecte héritée à l’aide de l’API Data Sources - Delete comme suit :

  1. Dressez la liste de toutes les sources de données connectées à l’espace de travail à l’aide de l’API Data Sources - List By Workspace et filtrez les journaux d’activité en définissant filter=kind='AzureActivityLog'.

    Capture d’écran montrant la configuration de l’API Data Sources - List By Workspace.

  2. Copiez le nom de la connexion que vous souhaitez désactiver à partir de la réponse de l’API.

    Capture d’écran montrant les informations de connexion que vous devez copier depuis la sortie de l’API Data Sources - List By Workspace.

  3. Utilisez l’API Data Sources - Delete afin d’arrêter la collecte des journaux d’activité pour la ressource spécifique.

    Capture d’écran de la configuration de l’API Data Sources - Delete.

Gestion des profils de journal hérités

Les profils de journal sont la méthode héritée pour l’envoi du journal d’activité à un stockage ou à des hubs d’événements. Si vous utilisez cette méthode, envisagez de passer aux paramètres de diagnostic, qui offrent une meilleure fonctionnalité et une meilleure cohérence avec les journaux de ressources.

Si un profil de journal existe déjà, vous devez d’abord le supprimer avant d’en créer un autre.

  1. Utilisez Get-AzLogProfile pour déterminer s’il existe un profil de journal. S’il n’existe aucun profil de journal, notez la propriété Name.

  2. Utilisez Remove-AzLogProfile pour supprimer le profil de journal à l’aide de la valeur provenant de la propriété Name.

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. Utilisez Add-AzLogProfile pour créer un profil de journal :

    Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
    
    Propriété Obligatoire Description
    Nom Oui Nom de votre profil de journal.
    StorageAccountId Non ID de ressource du compte de stockage dans lequel le journal d’activité doit être enregistré.
    serviceBusRuleId Non ID de règle Service Bus pour l’espace de noms Service Bus dans lequel vous souhaitez créer des hubs d’événements. Le format de la chaîne est {service bus resource ID}/authorizationrules/{key name}.
    Emplacement Oui Liste séparée par des virgules des régions pour lesquelles vous souhaitez collecter les événements du journal d’activité.
    RetentionInDays Oui Nombre de jours pendant lesquels les événements doivent être conservés dans le compte de stockage, de 1 à 365. Une valeur de zéro signifie que les journaux d’activité seront stockés pour une durée indéfinie.
    Category Non Liste séparée par des virgules des catégories d’événements à collecter. Les valeurs possibles sont Write, Delete et Action.

Exemple de script

Cet exemple de script PowerShell crée un profil de journal qui écrit le journal d’activité dans un compte de stockage et dans un hub d’événements.

# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"

# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"

# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"

Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId  $storageAccountId -ServiceBusRuleId $serviceBusRuleId

Modifications de la structure de données

L’expérience Exporter des journaux d’activité envoie les mêmes données que la méthode héritée utilisée pour envoyer le journal d’activité, avec quelques modifications de la structure de la table AzureActivity.

Les colonnes de la table suivante ont été dépréciées dans le schéma mis à jour. Elles existent toujours dans AzureActivity, mais elles ne contiennent aucune donnée. Les colonnes de remplacement ne sont pas nouvelles, mais elles contiennent les mêmes données que les colonnes dépréciées. Elles sont dans un format différent, ce qui signifie que vous devrez peut-être modifier les requêtes de journal qui les utilisent.

JSON du journal d’activité Nom de la colonne Log Analytics
(plus ancien déconseillé)
Nouveau nom de la colonne Log Analytics Notes
catégorie Category CategoryValue
status

Les valeurs sont réussite, démarrer, accepter, échec
ActivityStatus

Les valeurs son identiques à celles du JSON
ActivityStatusValue

Les valeurs sont modifiées en réussi, démarré, accepté, échec
Les valeurs valides changent comme indiqué.
subStatus ActivitySubstatus ActivitySubstatusValue
operationName NomOpération OperationNameValue L’API REST localise la valeur de nom de l’opération. L’interface utilisateur Log Analytics s’affiche toujours en anglais.
resourceProviderName ResourceProvider ResourceProviderValue

Important

Dans certains cas, les valeurs figurant dans ces colonnes pourraient être en majuscules. Si vous avez une requête qui inclut ces colonnes, utilisez l’opérateur =~ pour effectuer une comparaison non sensible à la casse.

Les colonnes suivantes ont été ajoutées à AzureActivity dans le schéma mis à jour :

  • Authorization_d
  • Claims_d
  • Properties_d

Étapes suivantes

Pour en savoir plus :