Journal d’activité dans Azure Monitor

Azure Monitor enregistre les opérations de gestion pour vos ressources Azure via la fonctionnalité de journal d’activité. Le journal d’activité enregistre les opérations telles que la création d’une machine virtuelle, la modification d’une stratégie d’accès au coffre de clés ou les erreurs de déploiement de Resource Manager. Ces opérations de gestion sont également appelées opérations de plan de contrôle . Utilisez le journal d’activité pour passer en revue ou auditer ces informations, ou créez une alerte pour être avertie de manière proactive lorsqu’un événement se produit.

Contrairement au journal d’activité, les journaux de ressources Azure capturent les opérations du plan de données effectuées dans une ressource. Par exemple, ces opérations incluent l’obtention d’un secret à partir d’un coffre de clés ou l’envoi d’une demande à une base de données. Les journaux de ressources ne sont pas collectés par défaut et nécessitent une configuration via un paramètre de diagnostic.

Conseil / Astuce

Si une erreur d’opération de déploiement vous dirige vers cet article, consultez Résoudre les erreurs courantes de déploiement Azure.

Entrées du journal d’activité

Azure Monitor collecte les entrées du journal d’activité par défaut sans configuration requise. Le système génère ces entrées et vous ne pouvez pas les modifier ni les supprimer. Les entrées résultent généralement des modifications (opérations de création, de mise à jour et de suppression) ou d’une action lancée. Le journal d’activité ne capture généralement pas les opérations de lecture.

Les entrées du journal d’activité sont généralement disponibles pour l’analyse et les alertes dans les 3 à 20 minutes de l’événement. Pour obtenir une description des catégories de journaux d’activité, consultez le schéma des événements du journal d’activité Azure.

Durée de conservation

Azure conserve les événements du journal d’activité pendant 90 jours , puis les supprime. Vous n’êtes pas facturé pour les entrées pendant cette période, quel que soit le volume. Pour plus de fonctionnalités, telles que la rétention plus longue, créez un paramètre de diagnostic et collectez les entrées dans un autre emplacement en fonction de vos besoins. L’une des raisons les plus courantes d’étendre la période de rétention consiste à conserver les informations du créateur de ressources, qui sont uniquement disponibles dans le journal d’activité.

Afficher et récupérer le journal d’activité

Afficher les événements du journal d’activité d’un abonnement, d’un groupe de ressources ou d’une ressource individuelle. Utilisez le portail Azure ou interrogez-les par programmation à l’aide de l’API REST Activity Log.

Le portail Azure fournit le volet Journal d'activités dans la plupart des menus des services. Chacune de ces zones prend également en charge l’accès par programmation avec REST ou via des Azure CLI spécifiques et des commandes Azure PowerShell.

Spécifiez un intervalle de temps d’événements à récupérer. Pour récupérer des événements à l’aide de l’API REST, vous devez inclure le $filter paramètre avec au moins une eventTimestamp valeur de début. Par défaut, le journal d’activité conserve les événements pendant 90 jours. Assurez-vous que le début et la fin de votre intervalle de temps se trouvent dans cette fenêtre de 90 jours.

Scénarios d’accès aux journaux d’activité

Les sections suivantes présentent des scénarios courants montrant différentes façons d’accéder et de récupérer des événements de journal d’activité via le portail Azure et par programmation à l’aide de Azure CLI, de Azure PowerShell et de l’API REST.

  • Les exemples du portail Azure fournissent un contexte supplémentaire sur le type d'événements auxquels s'attendre dans cette vue.

  • Les exemples de l'Azure CLI présentent les commandes spécifiques disponibles via la commande az monitor activity-log list.

  • Les exemples Azure PowerShell mettent en évidence les applets de commande spécifiques disponibles via la cmdlet Get-AzActivityLog.

  • Les exemples d’API REST montrent comment récupérer des événements à l’aide du paramètre requis $filter avec l’API REST du journal d’activité. Les exemples montrent également comment définir explicitement un délai d’expiration pour votre client afin qu’il corresponde à la période d’expiration maximale pour l’API REST du journal d’activité de 75 secondes à l’aide de l’en-têtePrefer.

    Modèles pris en charge $filter Détails
    abonnement par défaut avec un intervalle de temps $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}'
    groupe de ressources $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceGroupName eq '{resourceGroupName}'
    ressource spécifique $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceUri eq '{resourceURI}'
    fournisseur de ressources $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and resourceProvider eq '{resourceProviderName}'
    ID de corrélation $filter=eventTimestamp ge '{startTime}' and eventTimestamp le '{endTime}' and correlationId eq '{correlationID}'

Répertorier les événements du journal d’activité d’un abonnement

Les événements au niveau de l’abonnement capturent les événements créés directement par les fournisseurs de ressources et représentent la portée par défaut pour répertorier les événements du journal des activités. Les événements au niveau du groupe d’administration et au niveau du locataire capturent uniquement les événements Azure Resource Manager dans ces hiérarchies. Ces étendues de niveau supérieur n’incluent pas les événements générés directement par les fournisseurs de ressources en dehors des opérations de Azure Resource Manager.

L’exemple suivant récupère les événements du journal d’activité d’un abonnement pendant un intervalle de temps spécifique.

Le menu à partir duquel vous ouvrez le journal d’activité détermine son filtre initial. Si vous l’ouvrez à partir du menu Moniteur , le seul filtre sélectionné par défaut est l’abonnement. Il s'agit de la même chose que de l'ouvrir depuis abonnements>, sélectionner l'abonnement >, puis journal d'activité.

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

Répertorier les événements du journal d’activité pour un groupe de ressources

Ajoutez resourceGroupName au $filter pour étendre les résultats du journal d’activité Azure Monitor à un groupe de ressources spécifique.

Le menu à partir duquel vous ouvrez le journal d’activité détermine son filtre initial. Si vous l’ouvrez à partir du menu d’une ressource, le filtre est défini sur cette ressource. Sélectionnez Ajouter un filtre pour ajouter des propriétés supplémentaires au filtre. Voici les autres propriétés que vous pouvez filtrer dans le portail :

  • Resource : éléments qui font partie de votre solution de Azure, comme une base de données ou une machine virtuelle.
  • Type de ressource : catégorie à laquelle appartient une ressource, telle que des machines virtuelles, des applications web ou des bases de données.
  • Operation : action ou commande, telle que créer, supprimer et écrire, qui affecte les ressources Azure Resource Manager.
  • Événement initié par : filtre les événements par l’identité qui a lancé l’événement.
  • Catégorie d’événement : filtrez les types d’événements pour certaines opérations.

Retourner des propriétés spécifiques du journal d’activité

Utilisez un paramètre pour retourner uniquement les propriétés spécifiées, ce qui réduit la taille de la charge utile de réponse. Pour plus d’informations, consultez les descriptions des propriétés de schéma du journal d’activité.

Le portail Azure ne permet pas de limiter directement les propriétés retournées par les événements du journal d'activité. Pour réduire la quantité de données affichées, utilisez l’option Modifier les colonnes dans le panneau Journal d’activité pour sélectionner les colonnes affichées dans l’affichage portail.

Répertorier les événements du journal d’activité au niveau du locataire

Les événements du journal d’activité au niveau du locataire ont généralement des entrées limitées, mais peuvent inclure des événements importants tels que la création d’un groupe d’administration ou d’un abonnement. Ces événements sont distinct des événements du journal d’activité au niveau de l’abonnement, mais peuvent contenir des doublons d’événements de gestion des ressources

L’interrogation à cette étendue utilise une API REST différente de celle des événements du journal d’activité au niveau de l’abonnement Azure CLI et Azure PowerShell ne fournissent pas de commandes dédiées.

Accédez à Monitor>Activity log dans le portail Azure. Modifiez le menu déroulant Activité et sélectionnez Activité d’annuaire.

Capture d’écran montrant l’option Activité du répertoire sélectionnée dans le panneau Journal d’activité du portail Azure.

Répertorier les événements du journal d’activité au niveau du groupe d’administration

Les événements du journal d’activité au niveau du groupe d’administration capturent les événements délimités à un groupe d’administration spécifique, tels que les affectations de stratégie et les modifications d’appartenance au groupe d’administration.

Pour afficher les événements du journal d’activité au niveau du groupe d’administration dans le portail Azure, accédez à groupes de gestion> sélectionnez un groupe d’administration >Activity log.

Capture d’écran montrant le panneau Journal d’activité pour un groupe d’administration dans le portail Azure.

Le tableau suivant décrit les paramètres utilisés dans les exemples précédents.

Paramètre Description
{subscriptionId} ID de l’abonnement Azure.
{resourceGroupName} Nom du groupe de ressources.
{managementGroupId} ID du groupe d’administration.
eventTimestamp ge / le Début et fin de l’intervalle de temps au format ISO 8601. La date de début ne peut pas dépasser 90 jours à partir de la date actuelle, sauf si la rétention est configurée pendant des périodes plus longues.

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 dans le journal d’activité que vous souhaitez examiner plus profondément. Sélectionnez l’onglet Historique des modifications pour afficher les modifications apportées à la ressource jusqu’à 30 minutes avant et après l’heure de l’opération.

Capture d’écran montrant la liste de l’historique des modifications pour un événement.

Si des modifications sont associées à l’événement, le portail affiche une liste sélectionnable des modifications. La sélection d’une modification ouvre la page Historique des modifications. Cette page affiche les modifications apportées à la ressource.

L’exemple suivant montre 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 montrant les différences.

Insights des journaux d’activité

Les analyses des journaux d’activité sont un carnet de travail Azure Monitor qui fournit un ensemble de tableaux de bord permettant de surveiller les modifications apportées aux ressources et aux groupes de ressources dans un abonnement. Les tableaux de bord présentent également des données sur les utilisateurs ou services qui ont effectué des activités dans l’abonnement, ainsi que l’état des activités.

Pour activer les insights du journal d’activité, exportez le journal d’activité vers un espace de travail Log Analytics, comme décrit dans Exporter le journal d’activité. Ce processus envoie des événements à la table AzureActivity, que les analyses du journal d'activité utilisent.

Capture d’écran montrant les tableaux de bord Insights des journaux d’activité.

Vous pouvez ouvrir les aperçus des journaux d’activité au niveau de l’abonnement ou de la ressource. Pour l’abonnement, sélectionnez Insights des journaux d’activité dans la section Classeurs du menu Moniteur .

Capture d’écran présentant comment localiser et ouvrir le classeur Activity Logs Insights au niveau de la mise à l’échelle.

Pour une ressource individuelle, sélectionnez Insights des journaux d’activité dans la section Classeurs du menu de la ressource.

Capture d’écran montrant comment localiser et ouvrir le classeur Activity Logs Insights au niveau de la ressource.

Exporter le journal d’activité

Créez un paramètre de diagnostic pour envoyer des entrées de journal d’activité à d’autres destinations pour une durée de rétention et des fonctionnalités supplémentaires.

Diagramme montrant la collecte des journaux d’activité, des journaux de ressources et des métriques de plateforme.

Dans le portail Azure, sélectionnez Activité log dans le menu Azure Monitor puis sélectionnez Exporter les journaux d’activité. Pour plus d’informations et d’autres méthodes de création de paramètres de diagnostic, consultez Paramètres de diagnostic dans Azure Monitor. Veillez à désactiver toute configuration héritée pour le journal d’activité.

Capture d’écran montrant le menu Azure Monitor avec l’option Journal d’activité sélectionnée et l’option Exporter les journaux d’activité mise en évidence dans la barre de menu Monitor – Journal d’activité.

Les sections suivantes fournissent des détails sur chaque destination configurable pour les journaux de ressources.

Remarque

La méthode héritée d’exportation du journal d’activité est des profils de journal. Voir les méthodes de collecte héritées.

Envoyez le journal d’activité à un espace de travail Log Analytics pour les fonctionnalités suivantes :

Il n’y a pas de frais d’ingestion de données pour les journaux d’activité. Les frais de rétention pour les journaux d’activité s’appliquent uniquement à la période prolongée au-delà de la période de rétention par défaut de 90 jours. Vous pouvez augmenter la période de rétention jusqu’à 12 ans.

Les données du journal d’activité dans un espace de travail Log Analytics sont stockées dans une table appelée AzureActivity. La structure de cette table varie selon la catégorie de l’entrée de journal.

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"

Important

Dans certains scénarios, les valeurs des champs peuvent AzureActivity avoir des cas différents des valeurs équivalentes. Lorsque vous interrogez des données dans AzureActivity, utilisez des opérateurs non sensibles à la casse pour les comparaisons de chaînes ou utilisez une fonction scalaire pour forcer un champ à une casse uniforme avant toute comparaison. Par exemple, utilisez la fonction tolower() sur un champ pour le forcer à toujours être en minuscules ou l’opérateur =~ lors d’une comparaison de chaînes.

Exporter les journaux d’activité des groupes d’administration

Lorsque vous créez un paramètre de diagnostic pour un groupe d’administration, il exporte les événements du journal d'activité d'Azure Monitor pour ce groupe d’administration ainsi que pour tous les groupes d’administration situés en dessous dans la hiérarchie. Si plusieurs groupes d’administration de la hiérarchie ont des paramètres de diagnostic configurés, vous recevrez des événements en double. Vous avez uniquement besoin d’un paramètre de diagnostic sur le groupe d’administration de niveau supérieur pour capturer tous les événements de la hiérarchie.

Le groupe d’administration recueille également de nombreux événements semblables à ceux de tous les abonnements sous son administration. Si l’abonnement et le groupe d’administration possèdent tous les deux des paramètres de diagnostic, vous recevrez des événements en double. Azure Resource Manager inclut une propriété de hiérarchie lors de l’écriture d’événements, mais ce n’est pas un champ obligatoire. Les fournisseurs de ressources en dehors d’Azure Resource Manager ne le remplissent pas, de sorte que leurs événements ne se propagent pas dans la hiérarchie. En raison de cela, l’obtention d’événements en double est meilleure que les événements manquants.

Par exemple, si vous avez MG1 qui contient MG2 qui contient Subscription1, un paramètre de diagnostic sur MG1 capture tous les événements de journal d’activité pour MG1, MG2 et de nombreux événements collectés par un paramètre de diagnostic sur Subscription1. Dans ce cas, il n'est pas nécessaire de configurer de paramètre de diagnostic sur MG2, car cela ne ferait que collecter des événements en double.

Si vous avez des événements en double, combinez-les à l’aide d’une requête qui utilise un hachage de tous les champs pour identifier des enregistrements uniques. L’exemple de requête Kusto suivant montre un exemple pour les journaux recueillis dans un espace de travail Log Analytics :

AzureActivity
| extend Hash = hash(dynamic_to_json(pack_all()))
| summarize arg_max(TimeGenerated, *) by Hash

Exporter le journal d’activité au format CSV

Sélectionnez Télécharger en tant que csv pour exporter le journal d’activité vers un fichier CSV dans le portail Azure.

Capture d’écran montrant le bouton Télécharger en tant que csv dans le journal d’activité du portail Azure.

Important

L’exportation d’un grand nombre d’entrées de journal peut prendre beaucoup de temps. Pour améliorer les performances, réduisez l’intervalle de temps de l’exportation. Dans le portail Azure, définissez le paramètre Timespan .

Vous pouvez également exporter le journal d’activité vers un fichier CSV à l’aide de PowerShell ou d’Azure CLI, comme illustré dans les exemples suivants.

az monitor activity-log list --start-time "2024-03-01T00:00:00Z" --end-time "2024-03-15T23:59:59Z" --max-items 1000 > activitylog.json

L’exemple de script PowerShell suivant exporte le journal d’activité vers les fichiers CSV dans des intervalles d’une heure, chacun enregistré dans un fichier distinct.

# Parameters
$subscriptionId = "Subscription ID here"  # Replace with your subscription ID
$startTime = [datetime]"2025-05-08T00:00:00" # Adjust as needed
$endTime = [datetime]"2025-05-08T12:00:00"  # Adjust as needed
$outputFolder = "\Logs"    # Change path as needed
 
# Ensure output folder exists
if (-not (Test-Path $outputFolder)) {
    New-Item -Path $outputFolder -ItemType Directory
}
 
# Set subscription context
Set-AzContext -SubscriptionId $subscriptionId
 
# Loop through 1-hour intervals
$currentStart = $startTime
while ($currentStart -lt $endTime) {
    $currentEnd = $currentStart.AddHours(1)
    $timestamp = $currentStart.ToString("yyyyMMdd-HHmm")
    $csvFile = Join-Path $outputFolder "ActivityLog_$timestamp.csv"
 
    Write-Host "Fetching logs from $currentStart to $currentEnd..."
    Get-AzActivityLog -StartTime $currentStart -EndTime $currentEnd |
        Export-Csv -Path $csvFile -NoTypeInformation
 
    $currentStart = $currentEnd
}
 
Write-Host "Export completed. Files saved to $outputFolder."

Identifier la création de ressources

Utilisez le journal d’activité pour savoir quand le système a créé une ressource et qui l’a créée. Le journal d’activité est le seul emplacement qui stocke le créateur d’une ressource. Étant donné que le journal d’activité conserve uniquement les données pendant 90 jours par défaut, vous devez exporter les journaux vers un emplacement qui vous permet d’étendre la période de rétention, comme un espace de travail Log Analytics. Recherchez ensuite le créateur d’une ressource en interrogeant la AzureActivity table. Les données sont conservées pendant la durée que vous avez spécifiée dans la période de rétention de cette table.