Diagnostisk loggning i Azure Databricks

Viktigt

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Azure Databricks ger omfattande diagnostiska loggar från slut punkt till slut punkt av aktiviteter som utförs av Azure Databricks användare, så att företaget kan övervaka detaljerade Azure Databricks användnings mönster.

Konfigurera diagnostisk logg leverans

Anteckning

Diagnostiska loggar kräver Azure Databricks Premium planen.

  1. Logga in på Azure Portal som ägare eller deltagare för arbets ytan Azure Databricks och klicka på Azure Databricks tjänst resursen.

  2. I avsnittet övervakning på sid panelen klickar du på fliken diagnostikinställningar .

  3. Klicka på Slå på diagnostik.

    Azure Databricks diagnostikinställningar

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

    Namn

    Ange ett namn för loggarna som ska skapas.

    Arkivera till ett lagrings konto

    Om du vill använda det här alternativet behöver du ett befintligt lagrings konto för att ansluta till. Om du vill skapa ett nytt lagrings konto i portalen går du till skapa ett lagrings konto och följer instruktionerna för att skapa Azure Resource Manager ett allmänt syftes konto. Gå sedan tillbaka till den här sidan i portalen och välj ditt lagrings konto. Det kan ta några minuter för nyligen skapade lagrings konton att visas på den nedrullningsbara menyn. Mer information om ytterligare kostnader som kan uppstå genom att skriva till ett lagrings konto finns Azure Storage prissättning.

    Strömma till en händelsehubb

    Om du vill använda det här alternativet behöver du ett befintligt Azure Event Hubs-namnområde och händelsehubben för att ansluta till. Om du vill skapa en Event Hubs namnrymd, se skapa ett Event Hubs-namnområde och en Event Hub med hjälp av Azure Portal. Gå sedan tillbaka till den här sidan i portalen för att välja Event Hubs namn område och princip namn. Information om ytterligare kostnader som kan uppstå genom att skriva till en Event Hub finns i Azure Event Hubs prissättning.

    Skicka till Log Analytics

    Om du vill använda det här alternativet använder du antingen en befintlig Log Analytics arbets yta eller skapar en ny genom att följa stegen för att skapa en ny arbets yta i portalen. Mer information om ytterligare kostnader för att skicka loggar till Log Analytics finns Azure Monitor prissättning.

    Azure Databricks diagnostikinställningar

  5. Välj de tjänster som du vill använda diagnostikloggar för och ange bevarande principer.

    Kvarhållning gäller endast för lagrings konton. Om du inte vill tillämpa någon bevarande princip och du vill behålla data permanent, ställer du in kvarhållning (dagar) på 0.

  6. Välj Spara.

  7. Om du får ett fel meddelande om att diagnostiken inte kunde uppdateras för . Prenumerationen är inte registrerad för att använda Microsoft. Insights, följ fel söknings Azure-diagnostik -instruktionerna för att registrera kontot och försök sedan att göra om proceduren.

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

Aktivera loggning med PowerShell

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

    Connect-AzAccount
    

    Om du inte redan har installerat Azure PowerShell kan du använda följande kommandon för att installera Azure PowerShell och importera Azure RM-modulen.

    Install-Module -Name Az -AllowClobber
    Import-Module AzureRM
    
  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 det första.

    Om du har mer än en prenumeration kanske du måste ange den angivna prenumerationen 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
    

    Om du vill ange den prenumeration som är associerad med det Azure Databricks konto som du loggar in skriver du följande kommando:

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. Ange Log Analytics resurs namn till en variabel med namnet logAnalytics , där ResourceName är namnet på arbets ytan Log Analytics.

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

    $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 set-AzDiagnosticSetting med variabler för det nya lagrings kontot, Azure Databricks-tjänsten och den kategori som ska aktive ras för loggning. Kör följande kommando och ange -Enabled flaggan till $true :

    Set-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
    
  3. Kör följande kommando för diagnostisk inställning:

    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.

Förfrågan

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

Begärandetext

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

Leverans av diagnostisk logg

När loggning har Aktiver ATS för ditt konto börjar Azure Databricks automatiskt att skicka diagnostikloggar till leverans platsen. Loggarna är tillgängliga inom 15 minuters aktivering. Azure Databricks gransknings bara händelser visas vanligt vis i diagnostiska loggar inom 15 minuter i Azures kommersiella regioner.

Anteckning

Inloggnings loggar för SSH levereras med hög latens.

Schema för diagnostikloggar

Schemat för diagnostiska logg poster är följande:

Fält Beskrivning
operationversion Schema versionen av diagnostikens logg format.
tid UTC-tidsstämpel för åtgärden.
egenskaper. sourceIPAddress IP-adressen för käll förfrågan.
egenskaper. userAgent Webbläsaren eller API-klienten som används för att utföra begäran.
egenskaper. sessionId Sessions-ID för åtgärden.
identiteter Information om den användare som gör begär Anden:

* e-post: användarens e-postadress.
kategori Tjänsten som loggade begäran.
operationName Åtgärden, till exempel inloggning, utloggning, läsa, skriva, osv.
egenskaper. requestId Unikt ID för begäran.
egenskaper. requestParams Parameter nyckel-värdepar som används i händelsen.
egenskaper. Response Svar på begäran:

* errormessage: fel meddelandet om ett fel uppstod.
* resultat: resultatet av begäran.
* StatusCode: http-status kod som anger om begäran lyckades eller inte.
egenskaper. logId Den unika identifieraren för logg meddelanden.

Händelser

categoryEgenskaperna och operationName identifierar en händelse i en loggpost. Azure Databricks innehåller diagnostikloggar för följande tjänster:

  • DBFS
  • Kluster
  • Pooler
  • Konton
  • Jobb
  • Notebook-fil
  • SSH
  • Arbetsyta
  • Hemligheter
  • SQL-behörigheter

Om åtgärder tar lång tid loggas begäran och svaret separat, men paret för begäran och svar har samma properties.requestId .

Med undantag för Mount-relaterade åtgärder innehåller Azure Databricks diagnostikloggar inte några DBFS-relaterade åtgärder.

Anteckning

Automatiserade åtgärder – till exempel att ändra storlek på ett kluster på grund av automatisk skalning eller att starta ett jobb på grund av schemaläggning – utförs av användaren system-User.

Exempel på logg utdata

Följande JSON-exempel är ett exempel på Azure Databricks logga utdata:

{
    "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@contoso.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"
}

Analysera diagnostikloggar

Om du har valt alternativet Skicka till Log Analytics när du aktiverade diagnostikloggning vidarebefordras diagnostikdata från din behållare vanligt vis till Azure Monitor loggar inom 15 minuter.

Innan du visar loggarna bör du kontrol lera att din Log Analytics arbets yta har uppgraderats för att använda det nya Kusto. Du kan kontrol lera genom att öppna Azure Portal och välja Log Analytics längst till vänster. Välj sedan din Log Analytics arbets yta. Om du får ett meddelande om att uppgradera kan du läsa mer i Uppgradera Azure Log Analytics-arbetsytan till ny loggs ökning.

Om du vill visa dina diagnostikdata i Azure Monitor loggar öppnar du logg Sök sidan från den vänstra menyn eller hanterings ytan på sidan. Ange sedan frågan i rutan loggs ökning .

Azure Log Analytics

Frågor

Här följer några ytterligare frågor som du kan ange i logg Sök rutan. Dessa frågor skrivs i Kusto-frågespråk.

  • Fråga alla användare som har åtkomst till Azure Databricks arbets ytan och deras plats:

    DatabricksAccounts
    | where ActionName contains "login"
    | extend d=parse_json(Identity)
    | project UserEmail=d.email, SourceIPAddress
    
  • Så här kontrollerar du vilka Spark-versioner som används:

    DatabricksClusters
    | where ActionName == "create"
    | extend d=parse_json(RequestParams)
    | extend SparkVersion= d.spark_version
    | summarize Count=count() by tostring(SparkVersion)