Udostępnij przez


Konfigurowanie dostarczania dzienników diagnostycznych

Note

Usługa Databricks zaleca użycie tabeli systemu dzienników inspekcji (system.access.audit) w celu uzyskania dostępu do dzienników inspekcji konta. Zobacz tabela systemu dziennika audytu.

W tym artykule opisano sposób włączania dostarczania dzienników diagnostycznych dla obszarów roboczych usługi Azure Databricks.

Note

Dzienniki diagnostyczne wymagają planu Premium.

  1. Zaloguj się do portalu Azure jako właściciel, uczestnik lub jako użytkownik z rolą niestandardową z uprawnieniem Microsoft.Databricks/workspaces/assignWorkspaceAdmin/action dla obszaru roboczego usługi Azure Databricks. Następnie wybierz zasób usługi Azure Databricks.

  2. W sekcji Monitorowanie paska bocznego kliknij kartę Ustawienia diagnostyczne.

  3. Kliknij pozycję Włącz diagnostykę.

    Włączanie diagnostyki w usłudze Azure Databricks

  4. Na stronie Ustawienia diagnostyczne podaj następującą konfigurację:

    Name

    Wprowadź nazwę dzienników do utworzenia.

    Archiwizowanie na koncie magazynowym

    Aby użyć tej opcji, musisz mieć istniejące konto magazynu, do którego można się połączyć. Aby utworzyć nowe konto magazynu w portalu, zobacz Tworzenie konta magazynu i postępuj zgodnie z instrukcjami, aby utworzyć konto w usłudze Azure Resource Manager, konto ogólnego przeznaczenia. Następnie wróć do tej strony w portalu, aby wybrać konto magazynowe. Wyświetlenie nowo utworzonych kont magazynu w menu rozwijanym może potrwać kilka minut. Aby uzyskać informacje o dodatkowych kosztach związanych z zapisywaniem na koncie magazynu, zobacz Cennik Azure Storage.

    Transmisja do centrum zdarzeń

    Aby użyć tej opcji, musisz mieć już istniejącą przestrzeń nazw w usłudze Azure Event Hubs oraz Event Hub, do którego można się połączyć. Aby utworzyć przestrzeń nazw usługi Event Hubs, zobacz Tworzenie przestrzeni nazw usługi Event Hubs i centrum zdarzeń przy użyciu witryny Azure Portal. Następnie wróć do tej strony w portalu, aby wybrać przestrzeń nazw Event Hubs i nazwę zasad. Aby uzyskać informacje o dodatkowych kosztach związanych z zapisywaniem do centrum zdarzeń, zobacz Cennik usługi Azure Event Hubs.

    Wyślij do Log Analytics

    Aby użyć tej opcji, użyj istniejącego obszaru roboczego usługi Log Analytics lub utwórz nowy, wykonując kroki tworzenia nowego obszaru roboczego w portalu. Aby uzyskać informacje o dodatkowych kosztach poniesionych przez wysyłanie dzienników do usługi Log Analytics, zobacz Cennik usługi Azure Monitor.

    Ustawienia diagnostyki usługi Azure Databricks

  5. Wybierz usługi, dla których chcesz uzyskać dzienniki diagnostyczne.

  6. Wybierz Zapisz.

  7. Jeśli zostanie wyświetlony błąd z komunikatem "Nie można zaktualizować diagnostyki dla <workspace name>. Subskrypcja <subscription id> nie jest zarejestrowana do korzystania z usługi Microsoft.Insights, postępuj zgodnie z instrukcjami w sekcji rozwiązywania problemów Diagnostyka usługi Azure, aby zarejestrować konto, a następnie spróbuj ponownie wykonać tę procedurę.

  8. Jeśli chcesz zmienić sposób zapisywania dzienników diagnostycznych w dowolnym momencie w przyszłości, wróć do tej strony, aby zmodyfikować ustawienia dziennika diagnostycznego dla twojego konta.

Note

Jeśli chcesz ustawić zasady przechowywania magazynu, skonfiguruj zasady zarządzania cyklem życia platformy Azure .

Włączanie rejestrowania przy użyciu programu PowerShell

  1. Uruchom sesję programu PowerShell Azure i zaloguj się na konto platformy Azure przy użyciu następującego polecenia:

     Connect-AzAccount
    

    Aby zalogować się do konta platformy Azure przy użyciu konta użytkownika lub jednostki usługi, zobacz Uwierzytelnianie przy użyciu programu Azure PowerShell.

    Jeśli nie masz już zainstalowanego programu Azure PowerShell, użyj następujących poleceń, aby zainstalować program Azure PowerShell.

     Install-Module -Name Az -AllowClobber
    
  2. W oknie podręcznym przeglądarki wprowadź nazwę użytkownika i hasło konta platformy Azure. Program Azure PowerShell pobiera wszystkie subskrypcje skojarzone z tym kontem, a domyślnie używa pierwszego.

    Jeśli masz więcej niż jedną subskrypcję, może być konieczne określenie konkretnej subskrypcji użytej do utworzenia usługi Azure Key Vault. Aby wyświetlić subskrypcje konta, wpisz następujące polecenie:

    Get-AzSubscription
    

    Aby określić subskrypcję skojarzona z kontem usługi Azure Databricks, które rejestrujesz, wpisz następujące polecenie:

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. Ustaw nazwę zasobu usługi Log Analytics na zmienną o nazwie logAnalytics, gdzie ResourceName jest nazwą obszaru roboczego usługi Log Analytics.

    $logAnalytics = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name> -ResourceType "Microsoft.OperationalInsights/workspaces"
    
  4. Ustaw nazwę zasobu usługi Azure Databricks na zmienną o nazwie databricks, gdzie ResourceName jest nazwą usługi Azure Databricks.

    $databricks = Get-AzResource -ResourceGroupName <your resource group name> -ResourceName <your Azure Databricks service name> -ResourceType "Microsoft.Databricks/workspaces"
    
  5. Aby włączyć rejestrowanie dla usługi Azure Databricks, użyj polecenia cmdlet New-AzDiagnosticSetting, podając zmienne dla nowego konta magazynu, usługi Azure Databricks oraz kategorii przeznaczonej do rejestrowania. Uruchom następujące polecenie i ustaw flagę -Enabled na $true:

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

Włączanie rejestrowania przy użyciu Azure CLI

  1. Otwórz program PowerShell.

  2. Użyj następującego polecenia, aby nawiązać połączenie z kontem platformy Azure:

    az login
    

    Aby nawiązać połączenie przy użyciu konta użytkownika lub jednostki usługi, zobacz Zaloguj się za pomocą Azure CLI.

  3. Uruchom następujące polecenie ustawienia diagnostycznego:

    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
    }
    ]'
    

interfejs API REST

Użyj interfejsu API LogSettings .

Request

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

Ciało żądania

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

Opóźnienie dziennika diagnostycznego

Po włączeniu rejestrowania dla konta usługa Azure Databricks automatycznie wysyła dzienniki diagnostyczne do lokalizacji dostarczania. Dzienniki są zwykle dostępne w ciągu 15 minut od aktywacji. Zdarzenia z możliwością inspekcji usługi Azure Databricks są zwykle wyświetlane w dziennikach diagnostycznych w ciągu 15 minut w regionach komercyjnych platformy Azure.

Dzienniki logowania protokołu SSH są dostarczane z dużym opóźnieniem.

Note

Oczekuje się, że większość dzienników zostanie dostarczona w ciągu 15 minut, jednak usługa Azure Databricks nie gwarantuje przedziału czasu na dostarczanie dzienników.

Zagadnienia dotyczące schematu dziennika diagnostycznego

  • Jeśli akcje trwają długo, żądanie i odpowiedź są rejestrowane oddzielnie, ale para żądań i odpowiedzi ma tę samą wartość requestId.
  • Zautomatyzowane akcje, takie jak zmiana rozmiaru klastra z powodu skalowania automatycznego lub uruchamiania zadania z powodu planowania, są wykonywane przez użytkownika System-User.
  • Pole requestParams podlega skróceniu. Jeśli rozmiar reprezentacji JSON przekracza 100 KB, wartości są skrócone, a ciąg ... truncated jest dołączany do skróconych wpisów. W rzadkich przypadkach, gdy obcinana mapa jest nadal większa niż 100 KB, zamiast tego występuje pojedynczy klucz TRUNCATED z pustą wartością.

przykładowy schemat dziennika diagnostycznego

Inspekcja rejestruje zdarzenia wyjściowe w formacie JSON. Właściwości serviceName i actionName identyfikują zdarzenie. Konwencja nazewnictwa jest zgodna z Databricks REST API.

Poniższy przykładowy kod JSON to przykład zdarzenia zarejestrowanego podczas tworzenia zadania przez użytkownika:

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