Format de 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 d’examiner les détails des opérations de lecture, d’écriture et de suppression sur vos tables, files d’attente et objets BLOB Azure. Elles vous permettent également d’examiner les raisons des échecs de requêtes, telles que les délais d’attente, les limitations et les erreurs d’autorisation.

Chaque entrée de journal est conforme à un format de journal standard qui est régi par la version de Storage Analytics journalisation en cours d’utilisation. La version 1,0 comprend tous les champs décrits dans le format de l' entrée de journal 1,0. La version 2,0 ajoute des champs pour les informations de journalisation relatives aux demandes aux services BLOB et de file d’attente qui sont autorisés avec un jeton OAuth 2,0. Ces champs supplémentaires sont décrits dans le format de l' entrée de journal 2,0. L’authentification avec Azure AD pour les services d’objets BLOB et de file d’attente est actuellement en version préliminaire.

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, remplis ou vides, seront 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 un saut de ligne (\n) est encodé en HTML et mis entre guillemets.

Définir la version de journalisation

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

Format de l’entrée de 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 dans une entrée de journal de la 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. Pour obtenir la liste des messages d’État possibles, consultez la rubrique Storage Analytics opérations journalisées et messages d’État . Dans la version 2017-04-17 et les versions ultérieures, ClientOtherError n’est pas utilisé. 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 une signature d’accès partagé (SAP) utilisée. 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 délimitée par des points-virgules sous la forme de ConditionName=value , entre guillemets. ConditionName Il peut s’agir de 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 de copie d’objet BLOB enregistre 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.

Service version 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 de l’entrée de journal 2,0

Storage Analytics format de journal version 2,0 ajoute des champs pour prendre en charge les informations de journalisation relatives aux 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 d’objets BLOB et de file d’attente est actuellement en version préliminaire. Pour plus d’informations, consultez s’authentifier avec Azure Active Directory.

Chaque entrée de journal 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 de la version 2,0. Tous les champs de la version 1,0 sont inclus dans les entrées du 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é géré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