format du journal Storage Analytics

Storage Analytics journalisation enregistre les détails des demandes réussies et ayant échoué pour votre compte de stockage. Storage Analytics journaux vous permettent de passer en revue les détails des opérations de lecture, d’écriture et de suppression sur vos tables, files d’attente et objets blob Azure. Ils vous permettent également d’examiner les raisons des demandes ayant échoué, telles que les délais d’expiration, la limitation et les erreurs d’autorisation.

Chaque entrée de journal est conforme à un format de journal standard régi par la version de Storage Analytics journalisation en cours d’utilisation. La version 1.0 inclut tous les champs décrits dans le format d’entrée de journal 1.0. La version 2.0 ajoute des champs pour la journalisation des informations sur les demandes adressées aux services Blob et File d’attente autorisés avec un jeton OAuth 2.0. Ces champs supplémentaires sont décrits au format d’entrée de journal 2.0. L’authentification avec Azure AD pour les services Blob et File d’attente est actuellement en préversion.

Le premier champ dans une entrée de journal spécifie toujours le numéro de version. Les consommateurs des données de journalisation peuvent établir une dépendance sur ce champ ainsi que sur les aspects suivants d'une entrée de journal :

  • Tous les champs, renseignés ou vides, sont séparés par un point-virgule « ; »

  • Chaque entrée de journal est séparée par un caractère de saut de ligne « \n »

  • Le dernier champ de l’entrée ne se termine pas par un point-virgule « ; »

Vérifiez toujours la version avant de traiter une entrée de journal.

Notes

Tout champ qui peut contenir un guillemet (« ), un point-virgule (;), ou une nouvelle ligne (\n) est codé et entre guillemets HTML.

Définir la version de journalisation

Pour définir la version de journalisation, appelez l’opération appropriée pour le service :

Format d’entrée du journal 1.0

Chaque entrée de journal de la version du 1.0 adhère au format suivant :

<version-number>;<request-start-time>;<operation-type>;<request-status>;<http-status-code>;<end-to-end-latency-in-ms>;<server-latency-in-ms>;<authentication-type>;<requester-account-name>;<owner-account-name>;<service-type>;<request-url>;<requested-object-key>;<request-id-header>;<operation-count>;<requester-ip-address>;<request-version-header>;<request-header-size>;<request-packet-size>;<response-header-size>;<response-packet-size>;<request-content-length>;<request-md5>;<server-md5>;<etag-identifier>;<last-modified-time>;<conditions-used>;<user-agent-header>;<referrer-header>;<client-request-id>

Champs d’entrée de journal pour la version 1.0

Le tableau suivant répertorie et définit les champs d’une entrée de journal version 1.0.

Nom du champ Type de champ Définition Exemple
<version-number> string Version de Storage Analytics journalisation utilisée pour enregistrer l’entrée. 1.0
<request-start-time> timestamp L'heure UTC de réception de la demande par Storage Analytics. 2011-08-09T21:44:36.2481552Z
<operation-type> string Type d'opération REST exécutée. Consultez la rubrique Storage Analytics opérations journalisées et messages d’état pour obtenir la liste des opérations possibles. GetBlob
<request-status> string Statut de l’opération demandée. Consultez la rubrique Storage Analytics opérations journalisées et messages d’état pour obtenir la liste des messages d’état possibles. Dans la version 2017-04-17 et ultérieure, ClientOtherError n’est pas utilisée. Au lieu de cela, ce champ contient le code d’erreur. Success
<http-status-code> string Code d’état HTTP pour la demande. Si la demande est interrompue, cette valeur peut être définie à Unknown. 200
<end-to-end-latency-in-ms> duration La durée totale en millisecondes pour exécuter l'opération demandée, notamment le temps nécessaire à la lecture de la demande entrante et à l'envoi de la réponse au demandeur. 39
<server-latency-in-ms> duration La durée totale en millisecondes pour exécuter l'opération demandée. Cette valeur ne doit pas comprendre la latence réseau (le temps nécessaire à la lecture de la demande entrante et à l'envoi de la réponse au demandeur). 22
<authentication-type> string Indique si la demande a été autorisée, anonyme ou utilisée par signature d’accès partagé (SAP). authenticated
<requester-account-name> string Identique au nom du compte de stockage, si la demande est autorisée. Ce champ est vide pour les demandes anonymes et SAS. myaccount
<owner-account-name> string Le nom du compte du propriétaire du service. myaccount
<service-type> string Le service de stockage demandé : BLOB, de Table ou de File d'attente. blob
<request-url> string L'URL complète de la demande, entre guillemets. "https://myaccount.blob.core.windows.net/mycontainer/2025c44c-d25e-42bf-8507-7a5ca4faa034?timeout=30000"
<requested-object-key> string La clé de l'objet demandé, entre guillemets. Ce champ utilisera toujours le nom du compte, même si un nom de domaine personnalisé a été configuré. "/myaccount/mycontainer/2025c44c-d25e-42bf-8507-7a5ca4faa034"
<request-id-header> guid L'ID de demande affecté par le service de stockage. Cela équivaut à la valeur de l'en-tête x-ms-request-id. 668a4744-7eb3-4e8f-b8d3-fbfd3829715b
<operation-count> int Le numéro de chaque opération enregistrée pour une demande, avec un index de zéro. Certaines demandes nécessitent plusieurs opérations, par exemple Copy Blob, toutefois la plupart exécute une seule opération. 0
<requester-ip-address> string Adresse IP du demandeur, numéro de port inclus. 192.100.0.102:4362
<request-version-header> string La version du service de stockage spécifiée lorsque la demande a été effectuée. Cela équivaut à la valeur de l'en-tête x-ms-version. 2009-09-19
<request-header-size> long La taille de l'en-tête de demande, en octets. Si une demande n’aboutit pas, cette valeur peut être vide. 280
<request-packet-size> long La taille des paquets de demande lus par le service de stockage, en octets. Si une demande n’aboutit pas, cette valeur peut être vide. 0
<response-header-size> long La taille de l'en-tête de réponse, en octets. Si une demande n’aboutit pas, cette valeur peut être vide. 216
<response-packet-size> long Taille des paquets de réponse écrits par le service de stockage, en octets. Si une demande n’aboutit pas, cette valeur peut être vide. 0
<request-content-length> long La valeur de l'en-tête Content-Length pour la demande envoyée au service de stockage. Si la demande réussit, cette valeur est égale à <request-packet-size>. Si une demande n'aboutit pas, cette valeur peut ne pas être égale à <request-packet-size>, ou être vide. 0
<request-md5> string La valeur de l'en-tête Content-MD5 ou de l'en-tête x-ms-content-md5 dans la demande, entre guillemets. La valeur de hachage MD5 spécifiée dans ce champ représente le contenu dans la demande. Ce champ peut être vide. "788815fd0198be0d275ad329cafd1830"
<server-md5> string La valeur du hachage MD5 calculée par le service de stockage, entre guillemets. Ce champ peut être vide. "3228b3cf1069a5489b298446321f8521"
<etag-identifier> string Identificateur de l’ETag pour l’objet retourné, entre guillemets. "0x8D101F7E4B662C4"
<last-modified-time> DATETIME L'heure de la dernière modification (LMT) pour l'objet retourné, entre guillemets. Ce champ est vide pour les opérations qui peuvent retourner plusieurs objets. Tuesday, 09-Aug-11 21:13:26 GMT
<conditions-used> string Liste séparée par des points-virgules sous la forme , ConditionName=valueentre guillemets. ConditionName peut être l’une des conditions suivantes :

- If-Modified-Since
- If-Unmodified-Since
- If-Match
- If-None-Match
"If-Modified-Since=Friday, 05-Aug-11 19:11:54 GMT"
<user-agent-header> string La valeur d'en-tête User-Agent, entre guillemets. "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
<referrer-header> string La valeur d'en-tête Referer, entre guillemets. "http://contoso.com/about.html"
<client-request-id> string La valeur d'en-tête x-ms-client-request-id incluse dans la demande, entre guillemets. "8/9/2011 9:44:36 PM 45ef1c0f-8c71-4153-bc88-38589f63fbfc"

Exemples d’entrées de journal pour la version 1.0

Get Blob

L'exemple d'entrée de journal suivant s'applique à une demande GetBlob anonyme :

1.0;2014-06-19T22:59:23.1967767Z;GetBlob;AnonymousSuccess;200;17;16;anonymous;;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container1/00001.txt";"/storagesample/sample-container1/00001.txt";61d2e3f6-bcb7-4cd1-a81e-4f8f497f0da2;0;192.100.0.102:4362;2014-02-14;283;0;354;23;0;;;""0x8D15A2913C934DE"";Thursday, 19-Jun-14 22:58:10 GMT;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"44dfd78e-7288-4898-8f70-c3478983d3b6"

Put Blob

L’exemple d’entrée de journal suivant s’applique à une demande PutBlob autorisée :

1.0;2014-06-19T01:33:54.0926521Z;PutBlob;Success;201;197;54;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container1/00001.txt";"/storagesample/sample-container1/00001.txt";a200be85-1c98-4dd9-918e-f13d8c0538e0;0;192.100.0.102:4362;2014-02-14;460;23;225;0;23;"DrPO6z1f00SCsomhaf+J/A==";"DrPO6z1f00SCsomhaf+J/A==";""0x8D15975AA456EA4"";Thursday, 19-Jun-14 01:33:53 GMT;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"1fe6814a-e4cb-4195-a3cf-837dc7120f68"

Copie d'un objet blob

Les exemples d’entrées de journal suivants s’appliquent à une demande CopyBlob autorisée. L’opération Copy Blob journalisera 3 opérations : CopyBlob, CopyBlobSource et CopyBlobDestination. Notez que la propriété d'ID de demande est identique pour ces trois opérations, mais que l'ID d'opération est incrémenté pour chaque opération.

Version de service 2012-02-12 et versions ultérieures

À partir de la version du 12/02/2012, <requested-object-key> est une URL qui remplace le format /accountname/containername/blobname utilisé dans les versions antérieures au 12/02/2012.

L'ID de demande et l'ID d'opération sont en gras pour chaque entrée de journal ci-dessous :

1.0;2014-06-19T23:31:36.5780954Z;CopyBlob;Success;202;13;13;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container/Copy-sample-blob.txt";"/storagesample/sample-container/Copy-sample-blob.txt";505fc366-688f-4622-bbb1-20e8fc26cffd;0;192.100.0.102:4362;2014-02-14;538;0;261;0;0;;;""0x8D15A2DBF11553E"";Thursday, 19-Jun-14 23:31:36 GMT;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"dc00da87-5483-4524-b0dc-d1df025a6a9a"

1.0;2014-06-19T23:31:36.5780954Z;CopyBlobSource;Success;202;13;13;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container/Copy-sample-blob.txt";"https://storagesample.blob.core.windows.net/sample-container/sample-blob.txt";505fc366-688f-4622-bbb1-20e8fc26cffd;1;192.100.0.102:4362;2014-02-14;538;0;261;0;0;;;;;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"dc00da87-5483-4524-b0dc-d1df025a6a9a"

1.0;2014-06-19T23:31:36.5780954Z;CopyBlobDestination;Success;202;13;13;authenticated;storagesample;storagesample;blob;"https://storagesample.blob.core.windows.net/sample-container/Copy-sample-blob.txt";"/storagesample/sample-container/Copy-sample-blob.txt";505fc366-688f-4622-bbb1-20e8fc26cffd;2;192.100.0.102:4362;2014-02-14;538;0;261;0;0;;;;;;"WA-Storage/4.0.1 (.NET CLR 4.0.30319.34014; Win32NT 6.3.9600.0)";;"dc00da87-5483-4524-b0dc-d1df025a6a9a"

Versions de service antérieures à 2012-02-12

L'ID de demande et l'ID d'opération sont en gras pour chaque entrée de journal ci-dessous :

1.0;2011-08-09T18:02:40.6526789Z;CopyBlob;Success;201;28;28;authenticated;account8ce1b67a9e80b35;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;0;268.20.203.21:4362;2009-09-19;505;0;188;0;0;;;"0x8CE1B67AD473BC5";Friday, 09-Aug-11 18:02:40 GMT;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"

1.0;2011-08-09T18:02:40.6526789Z;CopyBlobSource;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lake.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;1;268.20.203.21:4362;2009-09-19;505;0;188;0;0;;;;;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"

1.0;2011-08-09T18:02:40.6526789Z;CopyBlobDestination;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;2;268.20.203.21:4362;2009-09-19;505;0;188;0;0;;;;;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"

Format d’entrée du journal 2.0

Storage Analytics format de journal version 2.0 ajoute des champs pour prendre en charge la journalisation des informations sur les demandes autorisées avec un jeton OAuth 2.0 fourni par Azure Active Directory(Azure AD). L’authentification et l’autorisation avec Azure AD pour les services Blob et File d’attente sont actuellement en préversion. Pour plus d’informations, consultez S’authentifier avec Azure Active Directory.

Chaque entrée de journal de la version 2.0 respecte le format suivant :

<version-number>;<request-start-time>;<operation-type>;<request-status>;<http-status-code>;<end-to-end-latency-in-ms>;<server-latency-in-ms>;<authentication-type>;<requester-account-name>;<owner-account-name>;<service-type>;<request-url>;<requested-object-key>;<request-id-header>;<operation-count>;<requester-ip-address>;<request-version-header>;<request-header-size>;<request-packet-size>;<response-header-size>;<response-packet-size>;<request-content-length>;<request-md5>;<server-md5>;<etag-identifier>;<last-modified-time>;<conditions-used>;<user-agent-header>;<referrer-header>;<client-request-id>;<user-object-id>;<tenant-id>;<application-id>;<audience>;<issuer>;<user-principal-name>;<reserved-field>;<authorization-detail>

Champs d’entrée de journal pour la version 2.0

Le tableau suivant répertorie et définit les champs supplémentaires écrits dans une entrée de journal version 2.0. Tous les champs de version 1.0 sont inclus dans les entrées de journal de la version 2.0.

Nom du champ Type de champ Définition Exemple
UserObjectId string ID d’objet utilisé pour l’authentification. Peut être n’importe quel principal de sécurité, y compris un utilisateur, une identité managée ou un principal de service. 03124200-da00-4aa6-aa09-be77923d7870
TenantId string ID de locataire utilisé dans l’autorisation du porteur. 72f988bf-86f1-41af-91ab-2d7cd011db47
ApplicationId string ID d’application utilisé dans l’autorisation du porteur. 2cd20493-fe97-42ef-9ace-ab95b63d82c4
ID de ressource string ID de ressource utilisé dans l’autorisation du porteur. https://storage.azure.com

https://storagesamples.blob.core.windows.net
Émetteur string Émetteur utilisé dans l’autorisation du porteur. https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/
UserPrincipalName string Nom d’utilisateur principal utilisé dans l’autorisation du porteur. testuser@azure.onmicrosoft.com
Réservé string Réservé pour un usage futur. La valeur est une chaîne vide. N/A
AuthorizationDetail string Informations de stratégie détaillées utilisées pour autoriser la demande. [{"action":"Microsoft.Storage/storageAccounts/blobServices/containers/read", "roleAssignmentId":"/subscriptions/5451a164-d870-4626-a64c-c38d62da20da/providers/Microsoft.Authorization/roleAssignments/6632a082-9b6a-486c-b296-f9d785d32800", "roleDefinitionId":"/subscriptions/5451a164-d870-4626-a64c-c38d62da20da/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalId":"03124200-da00-4aa6-aa09-be77923d7870", "principalType":"ServicePrincipal"}]

Exemples d’entrées de journal pour la version 2.0

List Blobs

2.0;2019-02-25T20:06:55.9794046Z;ListBlobs;OAuthSuccess;200;250;46;bearer;storagesamples;storagesamples;blob;"https://storagesamples.blob.core.windows.net/sample-container?restype=container&amp;comp=list&amp;prefix=&amp;delimiter=/&amp;marker=&amp;maxresults=30&amp;include=metadata&amp;_=1551125215793";"/storagesamples/sample-container";470b9e55-201e-0137-5c45-cdd293000000;0;200.59.21.176:52659;2018-03-28;2682;0;295;5184;0;;;;;;"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763";"blob:https://ms.portal.azure.com/cf576432-66ab-4ae6-9cb3-4852b1137a21";;"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7";"72f988bf-86f1-41af-91ab-2d7cd011db47";"691458b9-1327-4635-9f55-ed83a7f1b41c";"https://storage.azure.com/";"https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/";;;"[{"action":"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read", "roleAssignmentId":"ca8af92a-6708-4cdf-a678-bb55d0ff7b80", "roleDefinitionId":"ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalId":"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7", "principalType":"User"}]"

Put Block

2.0;2019-02-25T20:06:55.9089848Z;PutBlock;OAuthSuccess;201;95;95;bearer;storagesamples;storagesamples;blob;"https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?comp=block&amp;blockid=YmxvY2stMDAwMDAwMDA=";"/storagesamples/sample-container/blob1.txt";5569fa10-e01e-00c0-2745-cdb22d000000;0;200.59.21.176:52665;2017-11-09;2581;9;365;0;9;;"tdzGO9AaJte/e2HJZLtXig==";;;;"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763";"https://ms.portal.azure.com/";"c808142e-0393-4942-9001-af4833061026";"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7";"72f988bf-86f1-41af-91ab-2d7cd011db47";"691458b9-1327-4635-9f55-ed83a7f1b41c";"https://storage.azure.com/";"https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/";;;"[{"action":"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write", "roleAssignmentId":"ca8af92a-6708-4cdf-a678-bb55d0ff7b80", "roleDefinitionId":"ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalId":"e5981635-dcf0-4279-ab7b-ca1cbdf4a5c7", "principalType":"User"}]"

Voir aussi

À propos de la journalisation Storage Analytics
Opérations et messages d'état enregistrés Storage Analytics