Diagnosztikai naplózás a Azure Databricks

Azure Databricks átfogó diagnosztikai naplókat biztosít a Azure Databricks által végzett tevékenységekről, így a vállalat részletes Azure Databricks mintákat.

Diagnosztikai naplók kézbesítésének konfigurálása

Megjegyzés

A diagnosztikai naplókhoz prémium Azure Databricks szükséges.

  1. Jelentkezzen be az Azure Portal munkaterület tulajdonosi vagy közreműködői Azure Databricks, és kattintson a Azure Databricks service erőforrásra.

  2. Az oldalsáv Figyelés szakaszában kattintson a Diagnosztikai beállítások fülre.

  3. Kattintson a Diagnosztika bekapcsolása elemre.

    Azure Databricks a diagnosztika bekapcsolás

  4. A Diagnosztikai beállítások lapon adja meg a következő konfigurációt:

    Név

    Adja meg a létrehozni szükséges naplók nevét.

    Archiválás tárfiókba

    A beállítás csak akkor használható, ha egy meglévő tárfiókhoz csatlakozik. Új tárfiók a portálon való létrehozásához lásd: Tárfiók létrehozása, és kövesse az utasításokat egy Azure Resource Manager általános célú fiók létrehozásához. Ezután térjen vissza erre az oldalra a portálon a tárfiók kiválasztásához. Eltarthat néhány percig, hogy az újonnan létrehozott tárfiókok megjelenjenek a legördülő menüben. A tárfiókba való írás további költségeivel kapcsolatos információkért lásd: Az Azure Storage díjszabása.

    Streamelés eseményközpontba

    A beállításhoz szüksége lesz egy meglévő Azure Event Hubs és eseményközpontra, amelyhez csatlakozni tud. A névtér létrehozásához Event Hubs lásd: Create an Event Hubs namespace and an event hub by using the Azure Portal. Ezután térjen vissza erre az oldalra a portálon, és válassza ki Event Hubs névterét és szabályzatnevét. További információ az eseményközpontba való írással kapcsolatban felmerülő további költségekről: Azure Event Hubs díjszabása.

    Küldés a Log Analyticsnek

    Ha ezt a beállítást választja, használjon egy meglévő Log Analytics-munkaterületet, vagy hozzon létre egy újat az Új munkaterület létrehozása a portálon lépéseit követve. A naplók Log Analyticsbe való küldésével kapcsolatos további költségekkel kapcsolatos információkért tekintse meg a Azure Monitor díjszabását.

    Azure Databricks diagnosztikai beállítások

  5. Válassza ki a szolgáltatásokat, amelyekhez diagnosztikai naplókat szeretne, és állítsa be a megőrzési szabályzatokat.

    A megtartás csak a tárfiókok esetében érvényes. Ha nem szeretne megőrzési szabályzatot alkalmazni, és az adatokat örökre meg szeretné őrizni, állítsa a Megőrzés (nap) beállítását 0-ra.

  6. Kattintson a Mentés gombra.

  7. Ha a következő hibaüzenet jelenik meg: "Nem sikerült frissíteni a diagnosztikát a következőn: . Az előfizetés nincs regisztrálva a microsoft.insights használatára, kövesse a hibaelhárítási Azure Diagnostics a fiók regisztrálásához, majd próbálja újra ezt az eljárást.

  8. Ha a jövőben módosítani szeretné a diagnosztikai naplók mentésének a módszerét, térjen vissza erre az oldalra a fiók diagnosztikai naplóbeállításának módosításához.

Naplózás bekapcsolása a PowerShell használatával

  1. Indítson el egy Azure PowerShell-munkamenetet, és jelentkezzen be az Azure-fiókjába az alábbi paranccsal:

    Connect-AzAccount
    

    Ha még nincs telepítve az Azure PowerShell, a következő parancsokkal telepítheti a Azure PowerShell és importálhatja az Azure RM modult.

    Install-Module -Name Az -AllowClobber
    Import-Module AzureRM
    
  2. Az előugró böngészőablakban adja meg az Azure-fiókja felhasználónevét és jelszavát. Azure PowerShell a fiókhoz társított összes előfizetést lekért, és alapértelmezés szerint az elsőt használja.

    Ha több előfizetéssel rendelkezik, előfordulhat, hogy meg kell adnia az Azure-kulcstartó létrehozásához használt előfizetést. A fiókjához elérhető előfizetések a következő paranccsal adatokat láthatják:

    Get-AzSubscription
    

    A naplózó fiókhoz társított előfizetés Azure Databricks írja be a következő parancsot:

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. Állítsa a Log Analytics-erőforrás nevét egy nevű változóra, ahol a logAnalytics ResourceName a Log Analytics-munkaterület neve.

    $logAnalytics = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name> -ResourceType "Microsoft.OperationalInsights/workspaces"
    
  4. Állítsa a Azure Databricks erőforrás nevét egy nevű változóra, ahol a a Azure Databricks databricks ResourceName neve.

    $databricks = Get-AzResource -ResourceGroupName <your resource group name> -ResourceName <your Azure Databricks service name> -ResourceType "Microsoft.Databricks/workspaces"
    
  5. Ha engedélyezni szeretné a naplózást a Azure Databricks, használja a Set-AzDiagnosticSetting parancsmagot az új tárfiók, az Azure Databricks szolgáltatás és a naplózáshoz engedélyezni szükséges kategóriával. Futtassa a következő parancsot, és állítsa -Enabled a jelzőt a következőre: $true

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

Naplózás engedélyezése az Azure CLI használatával

  1. Nyissa meg a PowerShellt.

  2. Az alábbi paranccsal csatlakozzon az Azure-fiókjához:

    az login
    
  3. Futtassa a következő diagnosztikai beállítási parancsot:

    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

Használja a LogSettings API-t.

Kérés

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

A kérés törzse

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

Diagnosztikai naplók kézbesítése

Miután engedélyezte a naplózást a fiókjában, a Azure Databricks automatikusan elkezd diagnosztikai naplókat küldeni a kézbesítési helyre. A naplók az aktiválástól számított 15 percen belül elérhetők. Azure Databricks naplózható események általában 15 percen belül megjelennek a diagnosztikai naplókban az Azure kereskedelmi régióiban.

Megjegyzés

Az SSH bejelentkezési naplók kézbesítése nagy késéssel fog lekért adatokkal.

Diagnosztikai napló sémája

A diagnosztikai naplórekordok sémája a következő:

Mező Leírás
operationversion (műveletverzió) A diagnosztikai napló formátumának sémaverziója.
Idő A művelet UTC időbélyege.
properties.sourceIPAddress A forráskérés IP-címe.
properties.userAgent A kérés igénylésekor használt böngésző vagy API-ügyfél.
properties.sessionId A művelet munkamenet-azonosítója.
Identitások Információk a kéréseket igénylést felhasználó felhasználóról:

* email: Felhasználói e-mail-cím.
Kategória A kérést naplózó szolgáltatás.
operationName A művelet, például bejelentkezés, kijelentkezés, olvasás, írás stb.
properties.requestId Egyedi kérelemazonosító.
properties.requestParams Az eseményben használt paraméterkulcs-érték párok.
properties.response Válasz a kérésre:

* errorMessage: Hibaüzenet, ha hiba történt.
* result: A kérés eredménye.
* statusCode: HTTP-állapotkód, amely jelzi, hogy a kérés sikeres volt-e.
properties.logId A naplóüzenetek egyedi azonosítója.

Események

A category és a tulajdonság egy eseményt azonosít egy operationName naplórekordban. Azure Databricks a következő szolgáltatásokhoz biztosít diagnosztikai naplókat:

  • DBFS
  • Fürtök
  • Készletek
  • Fiókok
  • Feladatok
  • Jegyzetfüzet
  • SSH
  • Munkaterület
  • Titkos kulcsok
  • Databricks SQL
  • SQL-engedélyek

Ha a műveletek hosszú ideig tartnak, a rendszer külön naplózza a kérést és a választ, de a kérelem-válasz pár properties.requestId ugyanaz.

A csatlakoztatással kapcsolatos műveletek kivételével a diagnosztikai Azure Databricks nem tartalmaznak DBFS-hez kapcsolódó műveleteket.

Megjegyzés

Az automatikus műveleteket – például a fürt automatikus skálázás miatti átméretezését vagy egy feladat ütemezés miatti indítását – a rendszerfelhasználó végzi.

Példa naplókimenetre

Az alábbi JSON-minta egy példa a Azure Databricks kimenetére:

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

Diagnosztikai naplók elemzése

Ha a diagnosztikai naplózás bekapcsolásakor a Küldés a Log Analyticsbe lehetőséget választotta, a rendszer általában 15 percen belül továbbítja a tárolóból származó diagnosztikai adatokat Azure Monitor naplókba.

A naplók megtekintése előtt ellenőrizze, hogy a Log Analytics-munkaterület frissítve lett-e az új Kusto lekérdezési nyelv használatára. Az ellenőrzéshez nyissa meg a Azure Portal, és válassza a Log Analytics lehetőséget a bal oldalon. Ezután válassza ki a Log Analytics-munkaterületet. Ha frissíthető üzenetet kap, tekintse meg az Azure Log Analytics-munkaterület új naplókeresésre való frissítését.

A diagnosztikai adatok megtekintéséhez Azure Monitor naplókban nyissa meg a naplókeresési oldalt a lap bal oldali menüjében vagy a Felügyelet területen. Ezután írja be a lekérdezést a Naplók keresőmezőbe.

Azure Log Analytics

Lekérdezések

Íme néhány további lekérdezés, amelyek a Naplók keresőmezőbe íratva adhatja meg őket. Ezek a lekérdezések Kusto lekérdezési nyelven vannak megírva.

  • Az összes olyan felhasználó lekérdezése, aki hozzáfért Azure Databricks munkaterületéhez és helyéhez:

    DatabricksAccounts
    | where ActionName contains "login"
    | extend d=parse_json(Identity)
    | project UserEmail=d.email, SourceIPAddress
    
  • A használt Spark-verziók ellenőrzése:

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