Partilhar via


Configurar a entrega de registos de diagnóstico

Note

O Databricks recomenda o uso da tabela do sistema de log de auditoria (system.access.audit) para acessar os logs de auditoria da sua conta. Consulte a referência da tabela do sistema de registo de auditoria.

Este artigo descreve como habilitar a entrega de log de diagnóstico para seus espaços de trabalho do Azure Databricks.

Note

Os logs de diagnóstico requerem o plano Premium.

  1. Inicie sessão no portal do Azure como Proprietário, Colaborador ou como utilizador com uma função personalizada com a Microsoft.Databricks/workspaces/assignWorkspaceAdmin/action permissão para o espaço de trabalho do Azure Databricks. Em seguida, clique no recurso de serviço do Azure Databricks.

  2. Na seção Monitoramento da barra lateral, clique na guia Configurações de diagnóstico .

  3. Clique em Ativar diagnósticos.

    Ative os diagnósticos no Azure Databricks

  4. Na página Configurações de diagnóstico, forneça a seguinte configuração:

    Name

    Insira um nome para os registos a serem criados.

    Arquivar em uma conta de armazenamento

    Para usar essa opção, você precisa de uma conta de armazenamento existente para se conectar. Para criar uma nova conta de armazenamento no portal, consulte Criar uma conta de armazenamento e siga as instruções para criar uma conta de uso geral do Azure Resource Manager. Em seguida, volte a esta página no portal para selecionar sua conta de armazenamento. Pode levar alguns minutos para que as contas de armazenamento recém-criadas apareçam no menu suspenso. Para obter informações sobre custos adicionais incorridos ao gravar em uma conta de armazenamento, consulte Preços do Armazenamento do Azure.

    Transmitir para um hub de eventos

    Para usar esta opção, precisa de um namespace e hub de eventos existentes no Azure Event Hubs para se conectar. Para criar um namespace de Hubs de Eventos, consulte Criar um namespace de Hubs de Eventos e um hub de eventos usando o portal do Azure. Em seguida, retorne a esta página no portal para selecionar o namespace e o nome da política dos Hubs de Eventos. Para obter informações sobre custos adicionais incorridos ao gravar num hub de eventos, consulte Preços dos Hubs de Eventos do Azure.

    Enviar para o Log Analytics

    Para usar essa opção, use um espaço de trabalho existente do Log Analytics ou crie um novo seguindo as etapas para Criar um novo espaço de trabalho no portal. Para obter informações sobre custos adicionais incorridos com o envio de logs para o Log Analytics, consulte Preços do Azure Monitor.

    Configurações de diagnóstico do Azure Databricks

  5. Escolha os serviços para os quais deseja logs de diagnóstico.

  6. Selecione Guardar.

  7. Se receber um erro que diz "Falha ao atualizar o diagnóstico para <workspace name>. A assinatura <subscription id> não está registrada para usar microsoft.insights", siga as instruções de Solucionar problemas do Diagnóstico do Azure para registrar a conta e tente novamente este procedimento.

  8. Se você quiser alterar como seus logs de diagnóstico serão salvos a qualquer momento no futuro, retorne a esta página para modificar as configurações de log de diagnóstico da sua conta.

Note

Se você quiser definir políticas de retenção de armazenamento, configure uma política de gerenciamento de ciclo de vida do Azure.

Habilitar o registo usando o PowerShell

  1. Abra uma sessão no Azure PowerShell e inicie sessão na sua conta do Azure com o seguinte comando:

     Connect-AzAccount
    

    Para entrar na sua conta do Azure como utilizador, consulte Início de sessão no PowerShell com uma conta de utilizador do Azure Databricks. Para entrar na sua conta do Azure como uma entidade de serviço, consulte início de sessão do PowerShell com uma entidade de serviço do Microsoft Entra ID.

    Se você ainda não tiver o Azure Powershell instalado, use os seguintes comandos para instalar o Azure PowerShell.

     Install-Module -Name Az -AllowClobber
    
  2. Na janela pop-up do navegador, insira o nome de usuário e a senha da sua conta do Azure. O Azure PowerShell obtém todas as assinaturas associadas a essa conta e, por padrão, usa a primeira.

    Se você tiver mais de uma assinatura, talvez seja necessário especificar a assinatura específica que foi usada para criar seu Cofre da Chave do Azure. Para ver as subscrições da sua conta, escreva o seguinte comando:

    Get-AzSubscription
    

    Para especificar a assinatura associada à conta do Azure Databricks que você está registrando, digite o seguinte comando:

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. Defina o nome do recurso do Log Analytics como uma variável chamada logAnalytics, onde ResourceName é o nome do espaço de trabalho do Log Analytics.

    $logAnalytics = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name> -ResourceType "Microsoft.OperationalInsights/workspaces"
    
  4. Defina o nome do recurso do serviço Azure Databricks como uma variável chamada databricks, onde ResourceName é o nome do serviço Azure Databricks.

    $databricks = Get-AzResource -ResourceGroupName <your resource group name> -ResourceName <your Azure Databricks service name> -ResourceType "Microsoft.Databricks/workspaces"
    
  5. Para ativar o registo para o Azure Databricks, utilize o cmdlet New-AzDiagnosticSetting com variáveis para a nova conta de armazenamento, o serviço Azure Databricks e a categoria a ser ativada para registo. Execute o seguinte comando e defina o sinalizador -Enabled como $true:

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

Ativar logging usando a CLI do Azure

  1. Abra o PowerShell.

  2. Use o seguinte comando para se conectar à sua conta do Azure:

    az login
    

    Para se conectar usando um principal de serviço do Microsoft Entra ID, consulte Login da CLI do Azure com um principal de serviço do Microsoft Entra ID.

    Para se conectar usando uma conta de utilizador do Azure Databricks, consulte início de sessão na CLI do Azure com uma conta de utilizador do Azure Databricks.

  3. Execute o seguinte comando de configuração de diagnóstico:

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

API REST

Utilize a API LogSettings.

Request

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

Corpo de solicitação

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

Latência do log de diagnóstico

Depois de o registo estar habilitado para a sua conta, o Azure Databricks envia automaticamente os registos de diagnóstico para o seu local de entrega. Os logs normalmente estão disponíveis dentro de 15 minutos após a ativação. Os eventos auditáveis do Azure Databricks normalmente aparecem em logs de diagnóstico em até 15 minutos nas regiões comerciais do Azure.

Os registos de login SSH são entregues com atraso elevado.

Note

Embora se espere que a maioria dos logs seja entregue em 15 minutos, o Azure Databricks não garante um período de tempo para a entrega de logs.

Considerações sobre o esquema de log de diagnóstico

  • Se as ações levarem muito tempo, a solicitação e a resposta serão registradas separadamente, mas o par de solicitação e resposta terá o mesmo requestId.
  • Ações automatizadas, como redimensionar um cluster devido ao dimensionamento automático ou iniciar um trabalho devido ao agendamento, são executadas pelo usuário System-User.
  • O requestParams campo está sujeito a truncamento. Se o tamanho de sua representação JSON exceder 100 KB, os valores serão truncados e a cadeia de caracteres ... truncated será acrescentada às entradas truncadas. Em casos raros em que um mapa truncado ainda é maior que 100 KB, uma única chave TRUNCATED com um valor vazio é usada.

Esquema de exemplo de log de diagnóstico

A auditoria registra eventos de saída em JSON. As serviceName propriedades e actionName identificam o evento. A convenção de nomenclatura segue a API REST do Databricks.

O exemplo JSON a seguir é um exemplo de um evento registrado quando um usuário criou um trabalho:

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