Partager via


Configurer la livraison des journaux de diagnostic

Note

Databricks recommande d’utiliser la table système du journal d’audit (system.access.audit) pour accéder aux journaux d’audit de votre compte. Consultez Référence de table système du journal d’audit.

Cet article explique comment activer la livraison des journaux de diagnostic pour vos espaces de travail Azure Databricks.

Note

Les journaux de diagnostic nécessitent le plan Premium.

  1. Connectez-vous au portail Azure en tant que propriétaire, contributeur ou utilisateur disposant d’un rôle personnalisé avec l’autorisation Microsoft.Databricks/workspaces/assignWorkspaceAdmin/action pour l’espace de travail Azure Databricks. Cliquez ensuite sur votre ressource de service Azure Databricks.

  2. Dans la section surveillance de la barre latérale, cliquez sur l’onglet paramètres de diagnostic .

  3. Cliquez sur Activer les diagnostics.

    Azure Databricks active les diagnostics

  4. Dans la page Paramètres de diagnostic, indiquez la configuration suivante :

    Name

    Entrez un nom pour les journaux d’activité à créer.

    Archiver dans un compte de stockage

    Pour utiliser cette option, vous avez besoin d’un compte de stockage existant auquel vous connecter. Pour créer un compte de stockage dans le portail, consultez Créer un compte de stockage et suivez les instructions pour créer un compte Azure Resource Manager à usage général. Puis revenez à cette page dans le portail pour sélectionner votre compte de stockage. L’affichage des comptes de stockage nouvellement créés dans le menu déroulant peut prendre quelques minutes. Pour plus d’informations sur les coûts supplémentaires engendrés par l’écriture dans un compte de stockage, consultez stockage Azure tarification.

    Diffuser vers un hub d’événements

    Pour utiliser cette option, vous devez disposer d'un espace de noms Azure Event Hubs existant et d'un concentrateur d'événements auquel vous connecter. Pour créer un espace de noms Event Hubs, consultez Créer un espace de noms Event Hubs et un Event Hub à l’aide du portail Azure. Revenez ensuite à cette page dans le portail pour sélectionner l’espace de noms Event Hubs et le nom de la stratégie. Pour plus d’informations sur les coûts supplémentaires engendrés par l’écriture dans une Event Hub, consultez la page tarification d’Azure Event Hubs.

    Envoyer à Log Analytics

    Pour utiliser cette option, utilisez un espace de travail Log Analytics existant ou créez-en un nouveau en suivant les étapes de la section Créer un nouvel espace de travail dans le portail. Pour plus d’informations sur les coûts supplémentaires engendrés par l’envoi de journaux à des Log Analytics, consultez tarification Azure Monitor.

    Paramètres de diagnostic Azure Databricks

  5. Choisissez les services pour lesquels vous voulez des journaux de diagnostic.

  6. Cliquez sur Enregistrer.

  7. Si vous recevez un message d’erreur indiquant « Échec de la mise à jour des diagnostics pour <workspace name>. L'abonnement <subscription id> n'est pas enregistré pour utiliser microsoft.insights, », suivez les instructions de Résolution de problèmes de diagnostics Azure pour enregistrer le compte, puis réessayez cette procédure.

  8. Si vous souhaitez modifier la façon dont vos journaux de diagnostic seront enregistrés à l’avenir, revenez à cette page pour modifier les paramètres de journal de diagnostic pour votre compte.

Note

Si vous voulez définir des stratégies de rétention de stockage, configurez une stratégie de gestion du cycle de vie Azure.

Activer la journalisation à l’aide de PowerShell

  1. Démarrez une session Azure PowerShell et connectez-vous à votre compte Azure avec la commande suivante :

     Connect-AzAccount
    

    Pour vous connecter à votre compte Azure avec un compte d’utilisateur ou un principal de service, consultez Authentifier avec Azure PowerShell.

    Si vous n’avez pas déjà installé Azure Powershell, utilisez les commandes suivantes pour installer Azure PowerShell.

     Install-Module -Name Az -AllowClobber
    
  2. Dans la fenêtre contextuelle de votre navigateur, entrez votre nom d’utilisateur et votre mot de passe Azure. Azure PowerShell obtient alors tous les abonnements associés à ce compte et utilise par défaut le premier.

    Si vous disposez de plusieurs abonnements, vous devrez peut-être spécifier celui qui a été utilisé pour créer votre Azure Key Vault. Pour afficher les abonnements de votre compte, entrez la commande suivante :

    Get-AzSubscription
    

    Pour spécifier l’abonnement associé au compte Azure Databricks que vous journalisez, tapez la commande suivante :

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. Définissez votre nom de ressource Log Analytics sur une variable nommée logAnalytics , où ResourceName est le nom de l’espace de travail log Analytics.

    $logAnalytics = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name> -ResourceType "Microsoft.OperationalInsights/workspaces"
    
  4. Définissez le nom de la ressource de service Azure Databricks sur une variable nommée databricks , où ResourceName est le nom du service Azure Databricks.

    $databricks = Get-AzResource -ResourceGroupName <your resource group name> -ResourceName <your Azure Databricks service name> -ResourceType "Microsoft.Databricks/workspaces"
    
  5. Pour activer la journalisation d’Azure Databricks, utilisez la cmdletNew-AzDiagnosticSetting avec des variables pour le nouveau compte de stockage, le service Azure Databricks et la catégorie à activer pour la journalisation. Exécutez la commande suivante et mettez le drapeau -Enabled sur $true :

    New-AzDiagnosticSetting -ResourceId $databricks.ResourceId -WorkspaceId $logAnalytics.ResourceId -Enabled $true -name "<diagnostic setting name>" -Category <comma separated list>
    

Activer la journalisation à l’aide d’Azure CLI

  1. Ouvrez PowerShell.

  2. Utilisez la commande suivante pour vous connecter à votre compte Azure :

    az login
    

    Pour vous connecter avec un compte d’utilisateur ou un principal de service, consultez Se connecter avec Azure CLI.

  3. Exécutez la commande de paramètre de diagnostic suivante :

    az monitor diagnostic-settings create --name <diagnostic name>
    --resource-group <log analytics workspace resource group>
    --workspace <log analytics name or object ID>
    --resource <target resource object ID>
    --logs '[
    {
     \"category\": <category name>,
      \"enabled\": true
    }
    ]'
    

REST API

Utilisez l’API LogSettings .

Request

PUT https://management.azure.com/{resourceUri}/providers/microsoft.insights/diagnosticSettings/{name}?api-version=2017-05-01-preview

Corps de la requête

{
  "properties": {
    "workspaceId": "<log analytics resourceId>",
    "logs": [
      {
        "category": "<category name>",
        "enabled": true,
        "retentionPolicy": {
          "enabled": false,
          "days": 0
        }
      }
    ]
  }
}

Latence du journal de diagnostic

Après la journalisation activée pour votre compte, Azure Databricks envoie automatiquement les journaux de diagnostic à votre emplacement de livraison. Les journaux sont disponibles dans un délai de 15 minutes après l’activation. Azure Databricks événements pouvant être audités apparaissent généralement dans les journaux de diagnostic dans un délai de 15 minutes dans les régions commerciales d’Azure.

Les journaux de connexion SSH sont fournis avec une latence élevée.

Note

Bien que la plupart des journaux soient censés être livrés dans les 15 minutes, Azure Databricks ne garantit pas de délai pour la livraison des journaux.

Considérations relatives au schéma de journal de diagnostic

  • Si les actions prennent beaucoup de temps, la demande et la réponse sont journalisées séparément, mais la paire demande et réponse ont le même requestId.
  • Les actions automatisées, telles que le redimensionnement d’un cluster en raison de la mise à l’échelle automatique ou du lancement d’un travail en raison d’une planification, sont effectuées par l’utilisateur System-User.
  • Le champ requestParams est susceptible d’être tronqué. Si la taille de sa représentation JSON dépasse 100 Ko, les valeurs sont tronquées et la chaîne ... truncated est ajoutée aux entrées tronquées. Dans de rares cas où une carte tronquée est toujours supérieure à 100 Ko, une clé unique TRUNCATED avec une valeur vide est présente à la place.

Exemple de schéma de journal de diagnostic

Les journaux d’audit produisent les événements au format JSON. Les propriétés serviceName et actionName identifient l’événement. La convention de nommage suit l’API REST Databricks.

L’exemple JSON suivant illustre un événement journalisé lorsqu’un utilisateur a créé un travail :

{
  "TenantId": "<your-tenant-id>",
  "SourceSystem": "|Databricks|",
  "TimeGenerated": "2019-05-01T00:18:58Z",
  "ResourceId": "/SUBSCRIPTIONS/SUBSCRIPTION_ID/RESOURCEGROUPS/RESOURCE_GROUP/PROVIDERS/MICROSOFT.DATABRICKS/WORKSPACES/PAID-VNET-ADB-PORTAL",
  "OperationName": "Microsoft.Databricks/jobs/create",
  "OperationVersion": "1.0.0",
  "Category": "jobs",
  "Identity": {
    "email": "mail@example.com",
    "subjectName": null
  },
  "SourceIPAddress": "131.0.0.0",
  "LogId": "201b6d83-396a-4f3c-9dee-65c971ddeb2b",
  "ServiceName": "jobs",
  "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36",
  "SessionId": "webapp-cons-webapp-01exaj6u94682b1an89u7g166c",
  "ActionName": "create",
  "RequestId": "ServiceMain-206b2474f0620002",
  "Response": {
    "statusCode": 200,
    "result": "{\"job_id\":1}"
  },
  "RequestParams": {
    "name": "Untitled",
    "new_cluster": "{\"node_type_id\":\"Standard_DS3_v2\",\"spark_version\":\"5.2.x-scala2.11\",\"num_workers\":8,\"spark_conf\":{\"spark.databricks.delta.preview.enabled\":\"true\"},\"cluster_creator\":\"JOB_LAUNCHER\",\"spark_env_vars\":{\"PYSPARK_PYTHON\":\"/databricks/python3/bin/python3\"},\"enable_elastic_disk\":true}"
  },
  "Type": "DatabricksJobs"
}