Accès aux journaux de diagnostic d’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 d’activité collectés pour votre compte.
Les organisations peuvent activer la journalisation de diagnostic 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 qui accèdent aux données, la fréquence à laquelle les données sont consultées, la quantité de données stockée sur le compte, etc. Quand cette fonctionnalité est activée, les diagnostics et/ou les demandes sont enregistrés sur la base du meilleur effort. Les entrées de journal des demandes et des diagnostics sont créées uniquement si des demandes sont effectuées sur le point de terminaison de service.
Prérequis
- 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 de diagnostic pour votre compte Azure Data Lake Storage Gen1
Inscrivez-vous au nouveau portail Azure.
Ouvrez votre compte Azure Data Lake Storage Gen1 et dans le panneau de votre compte Azure 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.
Dans le champ Nom, entrez une valeur pour la configuration du journal de diagnostic.
Vous pouvez choisir de stocker/traiter les données de manières différentes.
Sélectionnez l’option Archive to a storage account (Archiver dans un compte de stockage) pour stocker les journaux d’activité dans un compte de stockage Azure. 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 sur lequel enregistrer les journaux d’activité.
Sélectionnez l’option Stream to an event hub (Transmettre à un Event Hub) pour transmettre les données journalisées à un Event Hub Azure. Vous allez probablement utiliser cette option si vous disposez d’un pipeline de traitement en aval pour analyser les journaux d’activité entrants en temps réel. Si vous sélectionnez cette option, vous devez fournir les informations relatives au Event Hub Azure que vous souhaitez utiliser.
Sélectionnez l’option Envoyer à Log Analytics pour analyser les données de journal générées à l’aide du service Azure Monitor. Si vous sélectionnez cette option, vous devez fournir des informations détaillées concernant l’espace de travail Log Analytics que vous allez utiliser pour analyser le journal d’activité. Pour plus d’informations sur l’utilisation des journaux Azure Monitor, consultez Consulter ou analyser les données collectées avec la recherche dans les journaux Azure Monitor.
Spécifiez si vous souhaitez obtenir des journaux d’audit ou des journaux d’activité de demande ou les deux.
Spécifiez le nombre de jours pendant lesquels les données doivent être conservées. La rétention ne s’applique que 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 d’activité dans l’onglet Journaux de diagnostic .
Afficher les journaux de diagnostic de votre compte Azure Data Lake Storage Gen1
Il existe deux manières d’afficher les données de journal de votre compte Data Lake Storage Gen1.
- À partir de la vue des paramètres du compte Data Lake Storage Gen1
- À partir du compte de Stockage Azure dans lequel les données sont stockées
Utilisation de la vue des paramètres Azure Data Lake Storage Gen1
Dans le panneau Paramètres de votre compte Azure Data Lake Storage Gen1, cliquez sur Journaux de diagnostic.
Dans le panneau Journaux de diagnostic, vous devez voir les journaux d’activité classés par journaux d’activité d’audit et journaux d’activité de requête.
- Les journaux d’activité de requête capturent chaque demande d’API effectuée sur le compte Azure Data Lake Storage Gen1.
- Les journaux d’activité d’audit sont similaires aux journaux d’activité de requête, mais ils fournissent une analyse beaucoup plus détaillée des opérations effectuées sur le compte Data Lake Storage Gen1. Par exemple, un simple appel d’API de chargement dans les journaux d’activité de demande peut entraîner plusieurs opérations « Ajouter » dans les journaux d’audit.
Pour télécharger les journaux d’activité, cliquez sur le lien Télécharger en regard de chaque entrée de journal d’activité.
À partir du compte de Stockage Azure qui contient des données de journal
Ouvrez le panneau du compte de Stockage Azure associé au Data Lake Storage Gen1 pour la journalisation, puis cliquez sur Objets blob. Le panneau Service Blob répertorie deux conteneurs.
- Le conteneur insights-logs-audit contient les journaux d’audit.
- Le conteneur insights-logs-requests contient les journaux d’activité de demande.
Les journaux d’activité sont stockés dans ces conteneurs selon la structure suivante.
Par exemple, le chemin d’accès complet à 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 complet d’un journal de requête 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’activité d’audit et de demande sont au format JSON. Dans cette section, nous examinons la structure JSON des journaux d’activité de demande et d’audit.
journaux d’activité de demande
Voici un exemple d’entrée dans le journal de demande au format JSON. Chaque objet blob a un objet racine appelé enregistrements qui contient un tableau d’objets du journal.
{
"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 de requête
Nom | Type | Description |
---|---|---|
time | String | L’horodatage (heure UTC) du journal. |
resourceId | String | L’ID de la ressource sur laquelle l’opération a eu lieu. |
catégorie | String | La catégorie du journal. Par exemple, Demandes. |
operationName | String | Le nom de l’opération qui est journalisée. Par exemple, getfilestatus. |
resultType | String | L’état de l’opération. Par exemple, 200. |
callerIpAddress | String | L’adresse IP du client qui a effectué la demande. |
correlationId | String | L’ID du journal qui peut être utilisé pour regrouper un ensemble d’entrées de journal associées |
identité | Object | L’identité qui a généré le journal. |
properties | JSON | Voir les détails ci-dessous. |
Schéma des propriétés de journal de demande
Nom | Type | Description |
---|---|---|
HttpMethod | String | La méthode HTTP utilisée pour l’opération. Par exemple, GET. |
Path | String | Le chemin d’accès vers l’emplacement où l’opération a eu lieu. |
RequestContentLength | int | La longueur du contenu de la demande HTTP. |
ClientRequestId | String | L’ID qui identifie de façon unique la demande |
StartTime | String | L’heure à laquelle le serveur a reçu la demande. |
EndTime | String | L’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 sortis de Data Lake Store |
QueryParameters | String | Description : Il s’agit des paramètres de requête http. Exemple 1 : api-version=2014-01-01&op=getfilestatus Example 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 objet blob a un objet racine appelé records qui contient un tableau d’objets du journal
{
"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 | Type | Description |
---|---|---|
time | String | L’horodatage (heure UTC) du journal. |
resourceId | String | L’ID de la ressource sur laquelle l’opération a eu lieu. |
catégorie | String | La catégorie du journal. Par exemple, Audit. |
operationName | String | Le nom de l’opération qui est journalisée. Par exemple, getfilestatus. |
resultType | String | L’état de l’opération. Par exemple, 200. |
resultSignature | String | Détails supplémentaires sur l’opération. |
correlationId | String | L’ID du journal qui peut être utilisé pour regrouper un ensemble d’entrées de journal associées |
identité | Object | L’identité qui a généré le journal. |
properties | JSON | Voir les détails ci-dessous. |
Schéma des propriétés de journal d’audit
Nom | Type | Description |
---|---|---|
StreamName | String | Le chemin d’accès vers l’emplacement où l’opération a eu lieu. |
Exemples de traitement des données de journal
Quand vous envoyez des journaux d’Azure Data Lake Storage Gen1 vers Journaux Azure Monitor (voir Consulter ou analyser les données collectées avec la recherche dans les journaux Azure Monitor pour plus d’informations sur l’utilisation de 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 par heure d’événement, ainsi qu’un graphique. Vous pouvez facilement la modifier pour afficher le GUID de l’utilisateur ou d’autres attributs :
search *
| where ( Type == "AzureDiagnostics" )
| summarize count(TimeGenerated) by identity_s, TimeGenerated
Azure Data Lake Storage Gen1 fournit un exemple de traitement et d’analyse des données de journal. Vous pouvez trouver l’exemple à l’adresse https://github.com/Azure/AzureDataLake/tree/master/Samples/AzureDiagnosticsSample.