Accès aux journaux de diagnostic d’Azure Data Lake Analytics

Important

Azure Data Lake Analytics mis hors service le 29 février 2024. Découvrez-en plus avec cette annonce.

Pour l’analytique des données, votre organization peut utiliser Azure Synapse Analytics ou Microsoft Fabric.

La journalisation de diagnostic vous permet de collecter les pistes d’audit d’accès aux données. Ces journaux d’activité fournissent des informations comme :

  • Une liste des utilisateurs qui ont accédé aux données.
  • La fréquence à laquelle les données sont consultées.
  • La quantité de données stockées dans le compte.

Activation de la journalisation

  1. Connectez-vous au Portail Azure.

  2. Ouvrez votre compte Data Lake Analytics et sélectionnez Paramètres de diagnostic dans la section Supervision. Ensuite, sélectionnez + Ajouter un paramètre de diagnostic.

    Capture d’écran qui montre l’action Paramètres de diagnostic sélectionnée et + Ajouter un paramètre de diagnostic en évidence.

  3. Dans Paramètres de diagnostic, entrez un nom pour cette configuration de journalisation, puis sélectionnez les options de journalisation.

    Capture d’écran montrant les paramètres pour activer les diagnostics afin de collecter les journaux d’audit et de requête

    • Vous pouvez choisir de stocker/traiter les données de quatre manières différentes.

      • Sélectionnez 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. Si vous sélectionnez cette option, vous devez fournir un compte de stockage Azure dans lequel enregistrer les journaux d’activité.

      • Sélectionnez Stream vers un hub d’événements pour diffuser des données de journal vers un Azure Event Hubs. Utilisez cette option si vous disposez d’un pipeline de traitement en aval qui analyse les journaux d’activité entrants en temps réel. Si vous sélectionnez cette option, vous devez fournir les détails de la Azure Event Hubs que vous souhaitez utiliser.

      • Sélectionnez Envoyer à un espace de travail Log Analytics pour envoyer les données au service Azure Monitor. Utilisez cette option si vous souhaitez utiliser les journaux Azure Monitor pour recueillir et analyser les journaux.

      • Sélectionnez Envoyer à une solution partenaire si vous souhaitez utiliser l’intégration de notre partenaire. Pour plus d’informations, vous pouvez suivre ce lien.

    • Spécifiez si vous souhaitez obtenir des journaux d’audit ou des journaux d’activité de demande ou les deux. Un journal des requêtes capture chaque demande d’API. Un journal d’audit enregistre toutes les opérations qui sont déclenchées par cette demande d’API.

    • Pour Archiver dans un compte de stockage, spécifiez le nombre de jours pendant lesquels conserver les données.

    • Sélectionnez Enregistrer.

      Notes

      Vous devez choisir entre Archiver dans un compte de stockage, Diffuser vers un hub d’événements, Envoyer à l’espace de travail Log Analytics, ou Envoyer vers une solution partenaire avant de sélectionner le bouton Enregistrer.

Utiliser le compte de Stockage Azure qui contient les données du journal

  1. Pour afficher les conteneurs d’objets blob qui contiennent les données de journalisation, ouvrez le compte de stockage Azure utilisé par Data Lake Analytics pour la journalisation, puis sélectionnez Conteneurs.

    • Le conteneur insights-logs-audit contient les journaux d’audit.
    • Le conteneur insights-logs-requests contient les journaux d’activité de demande.
  2. Les journaux d’activité sont stockés dans ces conteneurs, selon la structure de fichiers suivante :

    resourceId=/
      SUBSCRIPTIONS/
        <<SUBSCRIPTION_ID>>/
          RESOURCEGROUPS/
            <<RESOURCE_GRP_NAME>>/
              PROVIDERS/
                MICROSOFT.DATALAKEANALYTICS/
                  ACCOUNTS/
                    <DATA_LAKE_ANALYTICS_NAME>>/
                      y=####/
                        m=##/
                          d=##/
                            h=##/
                              m=00/
                                PT1H.json
    

    Notes

    Le panneau ## dans le chemin d’accès contiennent l’année, le mois, le jour et l’heure auxquels le journal a été créé. Data Lake Analytics crée un fichier toutes les heures, par conséquent, m= contient toujours une valeur de 00.

    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.DATALAKEANALYTICS/ACCOUNTS/mydatalakeanalytics/y=2016/m=07/d=18/h=04/m=00/PT1H.json

    De même, le chemin d’accès complet à un journal de demande peut être :

    https://adllogs.blob.core.windows.net/insights-logs-requests/resourceId=/SUBSCRIPTIONS/<sub-id>/RESOURCEGROUPS/myresourcegroup/PROVIDERS/MICROSOFT.DATALAKEANALYTICS/ACCOUNTS/mydatalakeanalytics/y=2016/m=07/d=18/h=14/m=00/PT1H.json

Traiter les données de journal

Azure Data Lake Analytics 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.

Structure journal

Les journaux d’activité d’audit et de demande présentent un format JSON structuré.

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.DATALAKEANALYTICS/ACCOUNTS/<data_lake_analytics_account_name>",
         "category": "Requests",
         "operationName": "GetAggregatedJobHistory",
         "resultType": "200",
         "callerIpAddress": "::ffff:1.1.1.1",
         "correlationId": "4a11c709-05f5-417c-a98d-6e81b3e29c58",
         "identity": "1808bd5f-62af-45f4-89d8-03c5e81bac30",
         "properties": {
             "HttpMethod":"POST",
             "Path":"/JobAggregatedHistory",
             "RequestContentLength":122,
             "ClientRequestId":"3b7adbd9-3519-4f28-a61c-bd89506163b8",
             "StartTime":"2016-07-07T21:02:52.472Z",
             "EndTime":"2016-07-07T21:02:53.456Z"
             }
    }
    ,
    . . . .
  ]
}

Schéma du journal de requête

Nom Type Description
time String L’horodatage (heure UTC) du journal.
resourceId String L’identificateur 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, GetAggregatedJobHistory.
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’identificateur du journal. Cette valeur peut être utilisée pour regrouper un ensemble d’entrées de journal associées.
identité Object L’identité qui a généré le journal.
properties JSON Consultez la section suivante (Schéma des propriétés de journal de demande) pour plus d’informations

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’identificateur qui identifie de façon unique cette demande.
StartTime String Heure à laquelle le serveur a reçu la demande
EndTime String Heure à laquelle le serveur a envoyé une réponse

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é enregistrements qui contient un tableau d’objets du journal.

{
"records":
  [
    {
         "time": "2016-07-28T19:15:16.245Z",
         "resourceId": "/SUBSCRIPTIONS/<subscription_id>/RESOURCEGROUPS/<resource_group_name>/PROVIDERS/MICROSOFT.DATALAKEANALYTICS/ACCOUNTS/<data_lake_ANALYTICS_account_name>",
         "category": "Audit",
         "operationName": "JobSubmitted",
         "identity": "user@somewhere.com",
         "properties": {
             "JobId":"D74B928F-5194-4E6C-971F-C27026C290E6",
             "JobName": "New Job",
             "JobRuntimeName": "default",
             "SubmitTime": "7/28/2016 7:14:57 PM"
             }
    }
  ]
}

Schéma du journal d’audit

Nom Type Description
time String L’horodatage (heure UTC) du journal.
resourceId String L’identificateur 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, JobSubmitted.
resultType String Un sous-état de l’état de la tâche (operationName).
resultSignature String Détails supplémentaires sur le status de travail (operationName).
identité String L’utilisateur qui a demandé l’opération. Par exemple : susan@contoso.com.
properties JSON Consultez la section suivante (Schéma des propriétés de journal d’audit) pour plus d’informations

Notes

resultType et resultSignature fournissent des informations sur le résultat d’une opération et contiennent uniquement une valeur si une opération est terminée. Par exemple, ils contiennent uniquement une valeur quand operationName contient la valeur JobStarted ou JobEnded.

Schéma des propriétés de journal d’audit

Nom Type Description
JobId String L’ID affecté à la tâche.
JobName String Le nom fourni pour la tâche.
JobRunTime String Le runtime utilisé pour traiter la tâche.
SubmitTime String L’heure (UTC) à laquelle la tâche a été envoyée.
StartTime String L’heure à laquelle l’exécution de la tâche a commencé après la soumission (UTC).
EndTime String L’heure à laquelle la tâche s’est terminée.
Parallélisme String Le nombre d’unités Data Lake Analytics demandées pour cette tâche pendant la soumission.

Notes

SubmitTime, StartTime, EndTime et Parallélisme fournissent des informations sur une opération. Ces entrées ne contiennent une valeur que si cette opération a démarré ou est terminée. Par exemple, SubmitTime contient uniquement une valeur après que operationName a la valeur JobSubmitted.

Étapes suivantes