Dela via


Konfigurera leverans av diagnostikloggar

Note

Databricks rekommenderar att du använder systemtabellen för granskningsloggar (system.access.audit) för att komma åt ditt kontos granskningsloggar. Se referens till systemtabell för granskningslogg.

Den här artikeln beskriver hur du aktiverar leverans av diagnostikloggar för dina Azure Databricks-arbetsytor.

Note

Diagnostikloggar kräver Premium-planen.

  1. Logga in på Azure Portal som ägare, deltagare eller som en användare med en anpassad roll med Microsoft.Databricks/workspaces/assignWorkspaceAdmin/action behörighet för Azure Databricks-arbetsytan. Klicka sedan på din Azure Databricks-tjänstresurs.

  2. I avsnittet Övervakning i sidofältet klickar du på fliken Diagnostikinställningar .

  3. Klicka på Slå på diagnostik.

    Azure Databricks aktiverar diagnostik

  4. På sidan Diagnostikinställningar anger du följande konfiguration:

    Name

    Ange ett namn för loggarna som ska skapas.

    Arkivera till ett lagringskonto

    Om du vill använda det här alternativet behöver du ett befintligt lagringskonto att ansluta till. Information om hur du skapar ett nytt lagringskonto i portalen finns i Skapa ett lagringskonto och följ anvisningarna för att skapa ett Konto för generell användning i Azure Resource Manager. Gå sedan tillbaka till den här sidan i portalen för att välja ditt lagringskonto. Det kan ta några minuter innan nyligen skapade lagringskonton visas i den nedrullningsbara menyn. Information om ytterligare kostnader som uppstår när du skriver till ett lagringskonto finns i Prissättning för Azure Storage.

    Strömma till en eventhubb

    Om du vill använda det här alternativet behöver du en befintlig Azure Event Hubs-namnrymd och händelsehubb att ansluta till. Information om hur du skapar ett Event Hubs-namnområde finns i Skapa ett Event Hubs-namnområde och en händelsehubb med hjälp av Azure Portal. Gå sedan tillbaka till den här sidan i portalen för att välja Event Hubs-namnområdet och principnamnet. Information om ytterligare kostnader som uppstår vid skrivning till en händelsehubb finns i Prissättning för Azure Event Hubs.

    Skicka till Log Analytics

    Om du vill använda det här alternativet använder du antingen en befintlig Log Analytics-arbetsyta eller skapar en ny genom att följa stegen för att skapa en ny arbetsyta i portalen. Information om ytterligare kostnader som uppstår när loggar skickas till Log Analytics finns i Prissättning för Azure Monitor.

    Diagnostikinställningar för Azure Databricks

  5. Välj de tjänster som du vill ha diagnostikloggar för.

  6. Välj Spara.

  7. Om du får ett felmeddelande om att det inte gick att uppdatera diagnostiken för <workspace name>. Prenumerationen <subscription id> är inte registrerad för att använda microsoft.insights", följer du anvisningarna för felsökning av Azure Diagnostics för att registrera kontot och försöker sedan utföra den här proceduren igen.

  8. Om du vill ändra hur diagnostikloggarna sparas när som helst i framtiden går du tillbaka till den här sidan för att ändra inställningarna för diagnostikloggen för ditt konto.

Note

Om du vill ange kvarhållningsprinciper för lagring konfigurerar du en princip för livscykelhantering i Azure.

Aktivera loggning med PowerShell

  1. Starta en Azure PowerShell-session och logga in på ditt Azure-konto med följande kommando:

     Connect-AzAccount
    

    Information om hur du loggar in på ditt Azure-konto med ett användarkonto eller tjänstens huvudnamn finns i Autentisera med Azure PowerShell.

    Om du inte redan har Installerat Azure Powershell använder du följande kommandon för att installera Azure PowerShell.

     Install-Module -Name Az -AllowClobber
    
  2. Ange användarnamnet och lösenordet för ditt Azure-konto i popup-fönstret i webbläsaren. Azure PowerShell hämtar alla prenumerationer som är associerade med det här kontot och använder som standard den första.

    Om du har fler än en prenumeration kan du behöva ange den specifika prenumeration som användes för att skapa ditt Azure Key Vault. Om du vill se prenumerationerna för ditt konto skriver du följande kommando:

    Get-AzSubscription
    

    Ange den prenumeration som är associerad med det Azure Databricks-konto som du loggar genom att skriva följande kommando:

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. Ange ditt Log Analytics-resursnamn till en variabel med namnet logAnalytics, där ResourceName är namnet på Log Analytics-arbetsytan.

    $logAnalytics = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name> -ResourceType "Microsoft.OperationalInsights/workspaces"
    
  4. Ange resursnamnet för Azure Databricks-tjänsten till en variabel med namnet databricks, där ResourceName är namnet på Azure Databricks-tjänsten.

    $databricks = Get-AzResource -ResourceGroupName <your resource group name> -ResourceName <your Azure Databricks service name> -ResourceType "Microsoft.Databricks/workspaces"
    
  5. Om du vill aktivera loggning för Azure Databricks använder du cmdleten New-AzDiagnosticSetting med variabler för det nya lagringskontot, Azure Databricks-tjänsten och kategorin för att aktivera loggning. Kör följande kommando och ange -Enabled flaggan till $true:

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

Aktivera loggning med hjälp av Azure CLI

  1. Öppna PowerShell.

  2. Använd följande kommando för att ansluta till ditt Azure-konto:

    az login
    

    Information om hur du ansluter med ett användarkonto eller tjänstens huvudnamn finns i Logga in med Azure CLI.

  3. Kör följande diagnostikinställningskommando:

    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

Använd LogSettings-API:et.

Request

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

begäranens innehåll

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

Svarstid för diagnostiklogg

När loggning har aktiverats för ditt konto skickar Azure Databricks automatiskt diagnostikloggar till din leveransplats. Loggar är vanligtvis tillgängliga inom 15 minuter efter aktiveringen. Granskningsbara händelser i Azure Databricks visas vanligtvis i diagnostikloggar inom 15 minuter i Azure Commercial-regioner.

SSH-inloggningsloggar levereras med hög svarstid.

Note

De flesta loggar förväntas levereras inom 15 minuter, men Azure Databricks garanterar inte någon tidsram för loggleverans.

Schemaöverväganden för diagnostiklogg

  • Om åtgärderna tar lång tid loggas begäran och svaret separat, men begärande- och svarsparet har samma requestId.
  • Automatiserade åtgärder, till exempel storleksändring av ett kluster på grund av automatisk skalning eller start av ett jobb på grund av schemaläggning, utförs av användaren System-User.
  • Fältet requestParams kan trunkeras. Om storleken på dess JSON-representation överskrider 100 KB trunkeras värdena och strängen ... truncated läggs till i trunkerade poster. I sällsynta fall där en trunkerad karta fortfarande är större än 100 KB, finns i stället en enda TRUNCATED nyckel med ett tomt värde.

exempelschema för diagnostiklogg

Granskningsloggar utdatahändelser i JSON. Egenskaperna serviceName och actionName identifierar händelsen. Namngivningskonventionen följer Databricks REST API.

Följande JSON-exempel är ett exempel på en händelse som loggades när en användare skapade ett jobb:

{
  "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"
}