Accès aux journaux de diagnostic pour Azure Data Lake Storage Gen1
Découvrez comment activer la journalisation des diagnostics pour votre compte Azure Data Lake Storage Gen1 et comment afficher les journaux collectés pour votre compte.
Les organisations peuvent activer la journalisation des diagnostics pour leur compte Azure Data Lake Storage Gen1 afin de collecter des pistes d’audit d’accès aux données qui fournissent des informations telles que la liste des utilisateurs accédant aux données, la fréquence d’accès aux données, la quantité de données stockées dans le compte, etc. En cas d’activation, les diagnostics et/ou les requêtes sont enregistrés de manière optimale. Les entrées de journal des requêtes et des diagnostics sont créées uniquement si des demandes sont effectuées sur le point de terminaison de service.
Conditions préalables
- un abonnement Azure. Consultez la page Obtention d’un essai gratuit d’Azure.
- Compte Azure Data Lake Storage Gen1. Suivez les instructions de Prise en main d’Azure Data Lake Storage Gen1 avec le portail Azure.
Activer la journalisation des diagnostics pour votre compte Data Lake Storage Gen1
Ouvrez votre compte Data Lake Storage Gen1 et, dans le volet de votre compte Data Lake Storage Gen1, cliquez sur paramètres de diagnostic.
Dans le panneau Paramètres de diagnostic, cliquez sur Activer les diagnostics.
Dans le panneau Paramètres de diagnostic, apportez les modifications suivantes pour configurer la journalisation des diagnostics.
Pour Nom, entrez une valeur pour la configuration du journal de diagnostic.
Vous pouvez choisir de stocker/traiter les données de différentes manières.
Sélectionnez l’option permettant de Archiver dans un compte de stockage pour stocker les journaux d’activité dans un compte de stockage Azure. Vous utilisez cette option si vous souhaitez archiver les données qui seront traitées par lots à une date ultérieure. Si vous sélectionnez cette option, vous devez fournir un compte de stockage Azure dans lequel enregistrer les journaux.
Sélectionnez l’option Diffuser vers un hub d’événements pour transférer les données de log vers un Event Hub Azure. Vous utiliserez vraisemblablement cette option si vous disposez d’un pipeline de traitement en aval pour analyser les logs entrants en temps réel. Si vous sélectionnez cette option, vous devez fournir les détails d’Azure Event Hub que vous souhaitez utiliser.
Sélectionnez l’option permettant de Envoyer à Log Analytics pour utiliser le service Azure Monitor pour analyser les données de journal générées. Si vous sélectionnez cette option, vous devez fournir les détails de l’espace de travail Log Analytics que vous utiliseriez pour effectuer l’analyse des journaux. Consultez Afficher ou analyser les données collectées avec la recherche de journaux Azure Monitor pour plus d’informations sur l’utilisation des journaux Azure Monitor.
Spécifiez si vous souhaitez obtenir des journaux d’audit, des journaux de requêtes, ou bien les deux.
Spécifiez le nombre de jours pendant lesquels les données doivent être conservées. La rétention s’applique uniquement si vous utilisez un compte de stockage Azure pour archiver les données du journal.
Cliquez sur Enregistrer.
Une fois que vous avez activé les paramètres de diagnostic, vous pouvez consulter les journaux dans l’onglet Journaux de diagnostic.
Afficher les journaux de diagnostic de votre compte Data Lake Storage Gen1
Il existe deux façons d’afficher les données de journal pour votre compte Data Lake Storage Gen1.
- À partir de l’affichage des paramètres du compte Data Lake Storage Gen1
- À partir du compte stockage Azure où les données sont stockées
Utilisation de la vue des paramètres de stockage Data Lake Gen1
À partir de votre compte Data Lake Storage Gen1 Paramètres, cliquez sur journaux de diagnostic.
Dans le panneau Diagnostics Logs, vous devriez voir les logs classés par Audit Logs et Request Logs.
- Les journaux de requête capturent chaque demande d’API effectuée sur le compte Data Lake Storage Gen1.
- Les journaux d’audit sont similaires aux journaux de requête, mais fournissent une répartition beaucoup plus détaillée des opérations effectuées sur le compte Data Lake Storage Gen1. Par exemple, un seul appel d’API de chargement dans les journaux de demande peut entraîner plusieurs opérations « Append » dans les journaux d’audit.
Pour télécharger les journaux, cliquez sur le lien Télécharger pour chaque entrée de journal.
À partir du compte stockage Azure qui contient des données de journal
Ouvrez le panneau du compte stockage Azure associé à Data Lake Storage Gen1 pour la journalisation, puis cliquez sur Blobs. Le panneau du service Blob répertorie deux conteneurs.
- Le conteneur insights-logs-audit contient les journaux d’audit.
- Le conteneur insights-logs-requests contient les journaux de requête.
Dans ces conteneurs, les logs sont stockés selon la structure suivante.
Par exemple, le chemin complet d’un journal d’audit peut être
https://adllogs.blob.core.windows.net/insights-logs-audit/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/mydatalakestorage/y=2016/m=07/d=18/h=04/m=00/PT1H.json
De même, le chemin d’accès complet à un journal des demandes peut être
https://adllogs.blob.core.windows.net/insights-logs-requests/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/mydatalakestorage/y=2016/m=07/d=18/h=14/m=00/PT1H.json
Comprendre la structure des données de journal
Les journaux d’audit et de requête sont au format JSON. Dans cette section, nous examinons la structure de JSON pour les journaux de requête et d’audit.
Journaux de demandes
Voici un exemple d’entrée dans le journal des demandes au format JSON. Chaque objet blob a un objet racine appelé records qui contient un tableau d’objets de journalisation.
{
"records":
[
. . . .
,
{
"time": "2016-07-07T21:02:53.456Z",
"resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/<data_lake_storage_gen1_account_name>",
"category": "Requests",
"operationName": "GETCustomerIngressEgress",
"resultType": "200",
"callerIpAddress": "::ffff:1.1.1.1",
"correlationId": "4a11c709-05f5-417c-a98d-6e81b3e29c58",
"identity": "1808bd5f-62af-45f4-89d8-03c5e81bac30",
"properties": {"HttpMethod":"GET","Path":"/webhdfs/v1/Samples/Outputs/Drivers.csv","RequestContentLength":0,"StoreIngressSize":0 ,"StoreEgressSize":4096,"ClientRequestId":"3b7adbd9-3519-4f28-a61c-bd89506163b8","StartTime":"2016-07-07T21:02:52.472Z","EndTime":"2016-07-07T21:02:53.456Z","QueryParameters":"api-version=<version>&op=<operationName>"}
}
,
. . . .
]
}
Schéma du journal des demandes
Nom | Catégorie | Description |
---|---|---|
time | Chaîne | Horodatage (en UTC) du journal |
resourceId | Chaîne | ID de la ressource sur laquelle l’opération a eu lieu |
catégorie | Chaîne | Catégorie de log. Par exemple, Demandes. |
NomOpération | Chaîne | Le nom de l’opération qui est journalisée. Par exemple, getfilestatus. |
type de résultat | Chaîne | État de l’opération, par exemple, 200. |
callerIpAddress | Chaîne | Adresse IP du client qui effectue la requête |
correlationId | Chaîne | ID du journal qui peut être utilisé pour regrouper un ensemble d’entrées de journal associées |
identité | Objet | L'identité qui a généré le journal des événements. |
Propriétés | JSON | Voir ci-dessous pour plus d’informations |
Schéma des propriétés du journal des demandes
Nom | Catégorie | Description |
---|---|---|
Méthode HTTP | Chaîne | Méthode HTTP utilisée pour l’opération. Par exemple, GET. |
Chemin | Chaîne | Le chemin sur lequel l'opération a été effectuée |
LongueurDuContenuDeLaRequête | Int | Longueur du contenu de la requête HTTP |
ClientRequestId | Chaîne | ID qui identifie de façon unique cette requête |
Heure de début | Chaîne | Heure à laquelle le serveur a reçu la demande |
Heure de fin | Chaîne | Heure à laquelle le serveur a envoyé une réponse |
StoreIngressSize | Long | Taille en octets entrés dans Data Lake Store |
StoreEgressSize | Long | Taille en octets sortant de Data Lake Store |
Paramètres de requête | Chaîne | Description : il s’agit des paramètres de requête http. Exemple 1 : api-version=2014-01-01&op=getfilestatus Exemple 2 : op=APPEND&append=true&syncFlag=DATA&filesessionid=bee3355a-4925-4435-bb4d-ceea52811aeb&leaseid=bee3355a-4925-4435-bb4d-ceea52811aeb&offset=28313319&api-version=2017-08-01 |
Journaux d’audit
Voici un exemple d’entrée dans le journal d’audit au format JSON. Chaque blob a un objet racine appelé enregistrements qui contient un tableau d'objets de log.
{
"records":
[
. . . .
,
{
"time": "2016-07-08T19:08:59.359Z",
"resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKESTORE/ACCOUNTS/<data_lake_storage_gen1_account_name>",
"category": "Audit",
"operationName": "SeOpenStream",
"resultType": "0",
"resultSignature": "0",
"correlationId": "381110fc03534e1cb99ec52376ceebdf;Append_BrEKAmg;25.66.9.145",
"identity": "A9DAFFAF-FFEE-4BB5-A4A0-1B6CBBF24355",
"properties": {"StreamName":"adl://<data_lake_storage_gen1_account_name>.azuredatalakestore.net/logs.csv"}
}
,
. . . .
]
}
Schéma du journal d’audit
Nom | Catégorie | Description |
---|---|---|
time | Chaîne | Horodatage (au format UTC) du registre des événements |
resourceId | Chaîne | ID de la ressource sur laquelle l’opération a eu lieu |
catégorie | Chaîne | Catégorie de journalisation. Par exemple, Audit. |
operationName | Chaîne | Le nom de l’opération qui est journalisée. Par exemple, getfilestatus. |
typeDeRésultat | Chaîne | État de l’opération, par exemple, 200. |
resultSignature | Chaîne | Détails supplémentaires sur l’opération. |
correlationId | Chaîne | ID du journal qui peut être utilisé pour regrouper un ensemble d’entrées de journal associées |
identité | Objet | L'identité qui a généré le fichier de journal |
Propriétés | JSON | Voir ci-dessous pour plus d’informations |
Schéma des propriétés du journal d’audit
Nom | Catégorie | Description |
---|---|---|
StreamName | Chaîne | Le chemin sur lequel l'opération a été effectuée |
Exemples pour traiter les données de log
Lors de l’envoi de journaux d’activité d’Azure Data Lake Storage Gen1 aux journaux Azure Monitor (consultez Afficher ou analyser les données collectées avec la recherche de journaux Azure Monitor pour plus d’informations sur l’utilisation des journaux Azure Monitor), la requête suivante retourne une table contenant une liste de noms d’affichage d’utilisateurs, l’heure des événements et le nombre d’événements pour l’heure de l’événement, ainsi qu’un graphique visuel. Il peut facilement être modifié pour afficher le GUID utilisateur ou d’autres attributs :
search *
| where ( Type == "AzureDiagnostics" )
| summarize count(TimeGenerated) by identity_s, TimeGenerated
Azure Data Lake Storage Gen1 fournit un exemple sur la façon de traiter et d’analyser les données du journal. Vous trouverez l’exemple à https://github.com/Azure/AzureDataLake/tree/master/Samples/AzureDiagnosticsSample.