Compartilhar via


Configurar entrega do log de diagnóstico

Note

O Databricks recomenda usar a tabela do sistema de log de auditoria (system.access.audit) para acessar os logs de auditoria da conta. Confira Tabela de referência do sistema de logs de auditoria.

Esse artigo descreve como habilitar a entrega de log de diagnóstico para seus workspaces do Azure Databricks.

Note

Os logs de diagnóstico exigem o plano Premium.

  1. Faça logon no portal do Azure como Proprietário, Colaborador ou como usuário com uma função personalizada com a permissão Microsoft.Databricks/workspaces/assignWorkspaceAdmin/action 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óstico.

    Ativar os diagnósticos do Azure Databricks

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

    Name

    Insira um nome para os logs a serem criados.

    Arquivar em uma conta de armazenamento

    Para usar essa opção, você precisa de uma conta de armazenamento existente à qual 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, retorne 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 sejam exibidas no menu suspenso. Para saber mais sobre custos adicionais incorridos ao gravar em uma conta de armazenamento, confira preços do Armazenamento do Azure.

    Transmitir por streaming para um hub de eventos

    Para usar essa opção, é necessário ter um namespace e um hub de eventos dos Hubs de Eventos do Azure aos quais se conectar. Para criar um namespace do Hubs de Eventos, consulte Criar um namespace dos Hubs de Eventos e um hub de eventos usando o portal do Azure. Em seguida, retorne a essa página no portal para selecionar o namespace e o nome da política dos Hubs de Eventos. Para saber mais sobre custos adicionais incorridos ao gravar em um hub de eventos, confira preços dos Hubs de Eventos do Azure.

    Enviar para o Log Analytics

    Para usar essa opção, use um workspace existente do Log Analytics ou crie um novo executando as etapas para Criar um novo workspace no portal. Para saber mais sobre custos adicionais incorridos ao enviar logs para o Log Analytics, confira Preços do Azure Monitor.

    Configurações de diagnósticos do Azure Databricks

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

  6. Clique em Salvar.

  7. Caso receba um erro que diga "Falha ao atualizar o diagnóstico para <workspace name>. A assinatura <subscription id> não está registrada para usar o microsoft.insights", siga as instruções em Solucionar Problemas de Diagnóstico do Azure para registrar a conta e repetir esse procedimento.

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

Note

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

Habilitar o registro em log usando o PowerShell

  1. Inicie uma sessão do PowerShell do Azure e entre em sua conta do Azure com o seguinte comando:

     Connect-AzAccount
    

    Para entrar em sua conta do Azure com uma conta de usuário ou entidade de serviço, consulte Authenticate with Azure PowerShell.

    Se você ainda não tiver o Azure Powershell instalado, use os comandos a seguir para instalar o Azure PowerShell e importar o módulo do Azure RM.

     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 que estão associadas a essa conta e, por padrão, usa a primeira.

    Se você tiver mais de uma assinatura, será preciso especificar a assinatura específica que foi usada para criar seu Azure Key Vault. Digite o seguinte comando para ver as assinaturas da sua conta:

    Get-AzSubscription
    

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

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. Defina o nome do recurso do Log Analytics como uma variável chamada logAnalytics, em que ResourceName é o nome do workspace do Log Analytics.

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

    $databricks = Get-AzResource -ResourceGroupName <your resource group name> -ResourceName <your Azure Databricks service name> -ResourceType "Microsoft.Databricks/workspaces"
    
  5. Para habilitar o registro em log no Azure Databricks, use o cmdlet Set-AzDiagnosticSetting com as variáveis da nova conta de armazenamento, o serviço do Azure Databricks e a categoria para habilitar o registro em log. 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>
    

Habilitar o registro em log usando a CLI do Azure

  1. Abra o PowerShell.

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

    az login
    

    Para se conectar com uma conta de usuário ou entidade de serviço, consulte Entrar com a CLI do Azure.

  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

Use a API LogSettings.

Request

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

Corpo da 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

Após a habilitação do registro em log para a sua conta, o Azure Databricks envia automaticamente os logs de diagnósticos para o seu local de entrega. Normalmente, os logs ficam disponíveis 15 minutos após a ativação. Os eventos auditáveis do Azure Databricks normalmente aparecem nos logs de diagnóstico dentro de 15 minutos nas regiões comerciais do Azure.

Os logs de logon SSH são entregues com alta latência.

Note

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

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

  • Se as ações demorarem, 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 campo requestParams está sujeito a truncamento. Se o tamanho da representação JSON ultrapassar 100 KB, os valores serão truncados e a cadeia de caracteres ... truncated será anexada a entradas truncadas. Em casos raros nos quais um mapa truncado ainda é maior do que 100 KB, uma única chave TRUNCATED com um valor vazio estará presente.

Exemplo de esquema do log de diagnóstico

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

O exemplo de 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"
}