Journalisation Azure Storage Analytics
Storage Analytics enregistre des informations détaillées sur les demandes ayant réussi ou échoué pour un service de stockage. Ces informations peuvent servir à analyser des demandes individuelles et à diagnostiquer les problèmes au niveau d'un service de stockage. Les demandes sont enregistrées sur la base du meilleur effort. Cela signifie que la plupart des requêtes génèrent un enregistrement dans le journal, mais l’exhaustivité et la chronologie des journaux de Storage Analytics ne sont pas garanties.
Notes
Nous vous recommandons d’utiliser les journaux Stockage Azure disponibles dans Azure Monitor au lieu des journaux Storage Analytics. Pour plus d’informations, consultez l’un des articles suivants :
La journalisation Storage Analytics n’est pas activée par défaut pour votre compte de stockage. Vous pouvez l'activer sur le portail Azure, ou à l'aide de PowerShell ou Azure CLI. Pour obtenir des instructions pas à pas, consultez Activer et gérer les journaux Azure Storage Analytics (classique).
Vous pouvez également activer les journaux Storage Analytics par programmation via l'API REST ou la bibliothèque de client. Utilisez les opérations Get Blob Service Properties, Get Queue Service Properties et Get Table Service Properties pour activer Storage Analytics pour chaque service. Pour consulter un exemple d'activation des journaux Storage Analytics à l'aide de .NET, consultez Activer les journaux.
Les entrées de journal sont créées uniquement si des demandes sont effectuées sur le point de terminaison de service. Par exemple, si un compte de stockage a une activité dans son point de terminaison Blob, mais pas dans ses points de terminaison de Table ou de File d’attente, seuls des journaux d’activité relatifs au service BLOB seront créés.
Notes
La journalisation Storage Analytics est disponible pour les services Blob, File d’attente et de Table. La journalisation Storage Analytics est également disponible pour les comptes BlockBlobStorage avec des performances Premium. Toutefois, elle n’est pas disponible pour les comptes v2 à usage général avec des performances Premium.
Requêtes consignées lors de la journalisation
Enregistrement des demandes authentifiées
Les types de demandes authentifiées suivants sont enregistrés :
Demandes ayant réussi
Demandes ayant échoué, y compris les erreurs de délai d’expiration, limitation, réseau, autorisation et autres erreurs
Requêtes utilisant une signature d’accès partagé (SAS) ou OAuth, y compris les requêtes ayant réussi et ayant échoué
Demandes de données d’analyse
Les demandes effectuées par Storage Analytics lui-même, telles que la création ou la suppression d'un journal, ne sont pas enregistrées. La liste complète des données enregistrées est disponible dans les rubriques Opérations et messages d’état enregistrés Storage Analytics et Format de journal de Storage Analytics.
Journalisation des demandes anonymes
Les types de demandes anonymes suivants sont enregistrés :
Demandes ayant réussi
Erreurs de serveur
Erreurs de délai d’expiration pour le client et le serveur
Demandes GET ayant échoué avec le code d’erreur 304 (non modifié)
Aucune autre demande anonyme ayant échoué n'est enregistrée. La liste complète des données enregistrées est disponible dans les rubriques Opérations et messages d’état enregistrés Storage Analytics et Format de journal de Storage Analytics.
Notes
Storage Analytics consigne les appels internes au plan de données. Les appels du fournisseur de ressources Stockage Azure sont également consignés. Pour identifier ces requêtes, recherchez la chaîne de requête <sk=system-1>
dans l’URL de la requête.
Mode de stockage des journaux d’activité
Tous les journaux d’activité sont stockés dans des objets blob de blocs dans un conteneur nommé $logs
, qui est automatiquement créé lorsque Storage Analytics est activé pour un compte de stockage. Le conteneur http://<accountname>.blob.core.windows.net/$logs
se trouve dans l’espace de noms d’objets blob du compte de stockage, par exemple : $logs
. Ce conteneur ne peut pas être supprimé une fois Storage Analytics activé, mais son contenu peut l'être. Si vous utilisez votre outil de navigation du stockage pour accéder directement au conteneur, vous verrez tous les objets Blob contenant vos données de journalisation.
Notes
Le conteneur $logs
ne s’affiche pas lorsqu’une opération d’énumération des conteneurs est en cours, comme l’opération Répertorier les conteneurs. Vous devez y accéder directement. Par exemple, vous pouvez utiliser l’opération Liste des blobs pour accéder aux objets blob dans le conteneur $logs
.
À mesure que des demandes sont enregistrées, Storage Analytics télécharge les résultats intermédiaires en tant que blocs. Périodiquement, Storage Analytics valide ces blocs et les rend accessibles sous forme d'objets blob. Une heure peut être nécessaire avant l’affichage des données de journaux dans les objets Blob du conteneur $logs en raison de la fréquence à laquelle le service de stockage vide les enregistreurs de journal. Il peut exister des enregistrements en double pour les journaux d’activité créés dans la même heure. Vous pouvez déterminer si un enregistrement est un doublon en vérifiant les nombres RequestId et Operation.
Si vous avez un volume élevé de données de journal avec plusieurs fichiers pour chaque heure, vous pouvez utiliser les métadonnées d’objets Blob pour déterminer les données que le journal contient en examinant les champs de métadonnées d’objet Blob. Ceci est également utile car il peut parfois y avoir un délai d’écriture des données dans les fichiers journaux : les métadonnées d’objet Blob indiquent plus précisément le contenu d’objet Blob que le nom d’objet Blob.
La plupart des outils de navigation du stockage vous permettent d’afficher les métadonnées d’objets Blob. Vous pouvez également lire ces informations à l’aide de PowerShell ou par programmation. L’extrait de code PowerShell suivant est un exemple de filtrage de la liste d’objets Blob de journal par nom pour spécifier une heure et par métadonnées pour identifier uniquement les journaux qui contiennent des opérations d’écriture.
Get-AzStorageBlob -Container '$logs' |
Where-Object {
$_.Name -match 'blob/2014/05/21/05' -and
$_.ICloudBlob.Metadata.LogType -match 'write'
} |
ForEach-Object {
"{0} {1} {2} {3}" -f $_.Name,
$_.ICloudBlob.Metadata.StartTime,
$_.ICloudBlob.Metadata.EndTime,
$_.ICloudBlob.Metadata.LogType
}
Pour plus d’informations sur la liste d’objets Blob par programmation, consultez Énumération de ressources d’objet Blob et Définition et récupération de propriétés et métadonnées de ressources d’objets Blob.
Conventions d'appellation de journal
Chaque journal est écrit au format suivant :
<service-name>/YYYY/MM/DD/hhmm/<counter>.log
Le tableau suivant décrit chaque attribut du nom du journal :
Attribut | Description |
---|---|
<service-name> |
Nom du service de stockage. Par exemple : blob , table ou queue |
YYYY |
Année à quatre chiffres pour le journal. Par exemple : 2011 |
MM |
Mois à deux chiffres pour le journal. Par exemple : 07 |
DD |
Jour à deux chiffres pour le journal. Par exemple : 31 |
hh |
Heure à deux chiffres qui indique l’heure de début pour les journaux d’activité, au format UTC 24 heures. Par exemple : 18 |
mm |
Nombre à deux chiffres qui indique la minute de début pour les journaux d’activité.
Remarque : Cette valeur n’est pas prise en charge dans la version actuelle de Storage Analytics. Elle est donc toujours égale à 00 . |
<counter> |
Compteur de base zéro à six chiffres qui indique le nombre d'objets blob de journal générés pour le service de stockage durant une période d'une heure. Ce compteur commence à 000000 . Par exemple : 000001 |
Voici un exemple complet de nom de journal qui combine les exemples ci-dessus :
blob/2011/07/31/1800/000001.log
Voici un exemple d’URI qui peut être utilisé pour accéder au journal ci-dessus :
https://<accountname>.blob.core.windows.net/$logs/blob/2011/07/31/1800/000001.log
Lorsqu'une demande de stockage est enregistrée, le nom du journal qui en résulte correspond à l'heure de fin de l'opération demandée. Par exemple, si une requête GetBlob se termine à 18h30 le 31 juillet 2011, le journal est écrit avec le préfixe suivant : blob/2011/07/31/1800/
Métadonnées du journal
Tous les objets blob de journal sont stockés avec des métadonnées qui peuvent être utilisées pour identifier les données de journalisation contenues dans l'objet blob. Le tableau suivant décrit chaque attribut de métadonnées :
Attribut | Description |
---|---|
LogType |
Décrit si le journal contient des informations relatives aux opérations de lecture, écriture ou suppression. Cette valeur peut inclure un type ou une combinaison des trois, séparés par des virgules. Exemple 1 : write Exemple 2 : read,write Exemple 3 : read,write,delete |
StartTime |
Heure la plus antérieure d’une entrée dans le journal, au format YYYY-MM-DDThh:mm:ssZ . Par exemple : 2011-07-31T18:21:46Z |
EndTime |
Heure la plus récente d’une entrée dans le journal, au format YYYY-MM-DDThh:mm:ssZ . Par exemple : 2011-07-31T18:22:09Z |
LogVersion |
Version du format du journal. |
La liste suivante présente un exemple de métadonnées complètes utilisant les exemples ci-dessus :
LogType=write
StartTime=2011-07-31T18:21:46Z
EndTime=2011-07-31T18:22:09Z
LogVersion=1.0
Entrées de journal
Les sections suivantes montrent un exemple d’entrée de journal pour chaque service Stockage Azure pris charge.
Exemple d’entrée de journal pour Stockage Blob
2.0;2022-01-03T20:34:54.4617505Z;PutBlob;SASSuccess;201;7;7;sas;;logsamples;blob;https://logsamples.blob.core.windows.net/container1/1.txt?se=2022-02-02T20:34:54Z&sig=XXXXX&sp=rwl&sr=c&sv=2020-04-08&timeout=901;"/logsamples/container1/1.txt";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53371;2019-12-12;654;13;337;0;13;"xxxxxxxxxxxxxxxxxxxxx==";"xxxxxxxxxxxxxxxxxxxxx==";""0x8D9CEF88004E296"";Monday, 03-Jan-22 20:34:54 GMT;;"Microsoft Azure Storage Explorer, 1.20.1, win32, azcopy-node, 2.0.0, win32, AzCopy/10.11.0 Azure-Storage/0.13 (go1.15; Windows_NT)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Exemple d’entrée de journal pour Stockage Blob (Data Lake Stockage Gen2 activé)
2.0;2022-01-04T22:50:56.0000775Z;RenamePathFile;Success;201;49;49;authenticated;logsamples;logsamples;blob;"https://logsamples.dfs.core.windows.net/my-container/myfileorig.png?mode=legacy";"/logsamples/my-container/myfilerenamed.png";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;73.157.16.8;2020-04-08;591;0;224;0;0;;;;Friday, 11-Jun-21 17:58:15 GMT;;"Microsoft Azure Storage Explorer, 1.19.1, win32 azsdk-js-storagedatalake/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Exemple d’entrée de journal pour Stockage File d’attente
2.0;2022-01-03T20:35:04.6097590Z;PeekMessages;Success;200;5;5;authenticated;logsamples;logsamples;queue;https://logsamples.queue.core.windows.net/queue1/messages?numofmessages=32&peekonly=true&timeout=30;"/logsamples/queue1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53385;2020-04-08;536;0;232;62;0;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32 azsdk-js-storagequeue/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;
Exemple d’entrée de journal pour Stockage Table
1.0;2022-01-03T20:35:13.0719766Z;CreateTable;Success;204;30;30;authenticated;logsamples;logsamples;table;https://logsamples.table.core.windows.net/Tables;"/logsamples/Table1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53389;2018-03-28;601;22;339;0;22;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32, Azure-Storage/2.10.3 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"