Diagnostisk loggning i Azure Databricks

Azure Databricks innehåller omfattande diagnostikloggar för aktiviteter som utförs av Azure Databricks-användare, så att ditt företag kan övervaka detaljerade Azure Databricks användningsmönster.

Konfigurera leverans av diagnostiklogg

Anteckning

Diagnostikloggar kräver Azure Databricks Premium plan.

  1. Logga in på Azure Portal som ägare eller deltagare för Azure Databricks och klicka på din Azure Databricks Service-resurs.

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

  3. Klicka på Slå på diagnostik.

    Azure Databricks turn on diagnostics

  4. Ange följande konfiguration på sidan Diagnostikinställningar:

    Namn

    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. Om du vill skapa ett nytt lagringskonto i portalen kan du läsa Skapa ett lagringskonto och följa instruktionerna för att Azure Resource Manager ett allmänt konto. Gå sedan tillbaka till den här sidan i portalen och välj ditt lagringskonto. Det kan ta några minuter innan nyligen skapade lagringskonton visas i listrutan. Information om ytterligare kostnader som uppstår när du skriver till ett lagringskonto finns i Azure Storage prissättning.

    Strömma till en händelsehubb

    Om du vill använda det här alternativet behöver du en befintlig Azure Event Hubs namnområde och händelsehubb att ansluta till. Information om hur Event Hubs en namnrymd finns i Skapa Event Hubs namnområdeoch en händelsehubb med hjälp av Azure Portal . Gå sedan tillbaka till den här sidan i portalen för att Event Hubs namnområdet och principnamnet. Information om ytterligare kostnader som uppstår när du skriver till en händelsehubb finns i Azure Event Hubs priser.

    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 du skickar loggar till Log Analytics finns i Azure Monitor priser.

    Azure Databricks Diagnostics settings

  5. Välj de tjänster som du vill använda diagnostikloggar för och ange kvarhållningsprinciper.

    Kvarhållning gäller endast för lagringskonton. Om du inte vill tillämpa en bevarandeprincip och vill behålla data för alltid anger du Kvarhållning (dagar) till 0.

  6. Välj Spara.

  7. Om du får felmeddelandet "Det gick inte att uppdatera diagnostiken för . Prenumerationen har inte registrerats för användning av microsoft.insights. Följ anvisningarna Azure Diagnostics för att registrera kontot och försök sedan igen.

  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 diagnostikloggen 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 använder du följande kommandon för att 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 den första.

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

    Get-AzSubscription
    

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

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

    $logAnalytics = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name> -ResourceType "Microsoft.OperationalInsights/workspaces"
    
  4. Ange namnet Azure Databricks tjänstresursen till en variabel med namnet databricks , där är namnet på ResourceName 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 Set-AzDiagnosticSetting med variabler för det nya lagringskontot, Azure Databricks-tjänsten och kategorin som ska aktiveras 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 diagnostikinstä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 diagnostiklogg

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

Anteckning

SSH-inloggningsloggar levereras med lång svarstid.

Schema för diagnostikloggar

Schemat för diagnostikloggposter är följande:

Fält Beskrivning
operationversion Schemaversionen av diagnostikloggformatet.
Tid UTC-tidsstämpel för åtgärden.
properties.sourceIPAddress IP-adressen för källbegäran.
properties.userAgent Webbläsaren eller API-klienten som användes för att göra begäran.
properties.sessionId Sessions-ID för åtgärden.
Identiteter Information om användaren som gör begärandena:

* * ( e-postadress): Användarens e-postadress.
Kategori Tjänsten som loggade begäran.
operationName Åtgärden, till exempel inloggning, utloggning, läsning, skrivning osv.
properties.requestId Unikt begärande-ID.
properties.requestParams Parameternyckel/värde-par som används i händelsen.

Fältet requestParams trunkerar. Om storleken på dess JSON-representation överskrider 100 KB trunkeras värdena och strängen läggs till ... truncated 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 nyckel TRUNCATED med ett tomt värde.
properties.response Svar på begäran:

* * Felmeddelandet om det uppstod ett fel.
* * : Resultatet av begäran.
* * HTTP-statuskod som anger om begäran lyckas eller inte.
properties.logId Den unika identifieraren för loggmeddelandena.

Händelser

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

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

Om åtgärderna tar lång tid loggas begäran och svaret separat, men begäran- och svarsparet har samma properties.requestId .

Med undantag för monteringsrelaterade åtgärder inkluderar Azure Databricks inte DBFS-relaterade åtgärder.

Anteckning

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

Exempel på loggutdata

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

{
    "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 valde alternativet Skicka till Log Analytics när du aktiverat diagnostisk loggning, vidarebefordras diagnostikdata från containern vanligtvis till Azure Monitor loggar inom 15 minuter.

Innan du visar loggarna kontrollerar du om Log Analytics-arbetsytan har uppgraderats för att använda det nya Kusto-frågespråket. Kontrollera genom att öppna Azure Portal och välja Log Analytics längst till vänster. Välj sedan Log Analytics-arbetsytan. Om du får ett meddelande om att uppgradera kan du gå till Uppgradera Azure Log Analytics-arbetsytan till en ny loggsökning.

Om du vill visa dina diagnostikdata Azure Monitor loggar öppnar du sidan Loggsökning från den vänstra menyn eller området Hantering på sidan. Ange sedan din fråga i loggsökningsrutan.

Azure Log Analytics

Frågor

Här är några ytterligare frågor som du kan ange i loggsökningsrutan. De här frågorna är skrivna i Kusto Query Language.

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

    DatabricksAccounts
    | where ActionName contains "login"
    | extend d=parse_json(Identity)
    | project UserEmail=d.email, SourceIPAddress
    
  • Så här kontrollerar du de 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)