配置诊断日志传送

本文介绍如何为 Azure Databricks 工作区启用诊断日志传送。

注意

诊断日志需要高级计划

  1. 以所有者、参与者或具有 Azure Databricks 工作区 Microsoft.Databricks/workspaces/assignWorkspaceAdmin/action 权限的自定义角色用户身份登录Azure 门户。 然后单击 Azure Databricks 服务资源。

  2. 在侧栏的“监视”部分中,单击“诊断设置”选项卡。

  3. 单击“启用诊断”。

    Azure Databricks 启用诊断

  4. 在“诊断设置”页上,提供以下配置:

    名称

    为要创建的日志输入名称。

    存档到存储帐户

    要使用此选项,需要一个可连接到的现有存储帐户。 要在门户中创建新的存储帐户,请参阅创建存储帐户,并按照说明创建 Azure 资源管理器(即通用帐户)。 然后在门户中返回到此页,选择存储帐户。 新创建的存储帐户可能几分钟后才会显示在下拉菜单中。 若要了解写入到存储帐户引发的额外成本,请参阅 Azure 存储定价

    流式传输到事件中心

    若要使用此选项,你需要一个可连接到的现有 Azure 事件中心命名空间和事件中心。 要创建事件中心命名空间,请参阅使用 Azure 门户创建事件中心命名空间和事件中心。 然后,在门户中返回到此页,选择事件中心命名空间和策略名称。 若要了解写入到事件中心产生的额外成本,请参阅 Azure 事件中心定价

    发送到 Log Analytics

    若要使用此选项,请使用现有的 Log Analytics 工作区,或者创建新的工作区,只需在门户中执行创建新工作区所需的步骤即可。 若要了解向 Log Analytics 发送日志产生的额外成本,请参阅 Azure Monitor 定价

    Azure Databricks 诊断设置

  5. 选择你需要其诊断日志的服务。

  6. 选择“保存”。

  7. 如果收到一个错误,指出“无法更新 <workspace name> 的诊断。 订阅 <subscription id> 未注册为使用 microsoft.insights”,请遵照排查 Azure 诊断问题中的说明注册帐户,然后重试此过程。

  8. 若要更改在将来的任意时间点保存诊断日志的方式,可以返回到此页,修改帐户的诊断日志设置。

注意

如果要设置存储保留策略,请配置 Azure 生命周期管理策略

使用 PowerShell 启用日志记录

  1. 启动 Azure PowerShell 会话,并使用以下命令登录 Azure 帐户:

     Connect-AzAccount
    

    若要以用户身份登录到 Azure 帐户,请参阅使用 Azure Databricks 用户帐户登录 PowerShell。 要以服务主体身份登录到 Azure 帐户,请参阅使用 Microsoft Entra ID 服务主体进行 PowerShell 登录

    如果尚未安装 Azure Powershell,请使用以下命令安装 Azure PowerShell。

     Install-Module -Name Az -AllowClobber
    
  2. 在弹出的浏览器窗口中,输入 Azure 帐户用户名和密码。 Azure PowerShell 会获取与此帐户关联的所有订阅,并按默认使用第一个订阅。

    如果有多个订阅,可能需要指定用来创建 Azure Key Vault 的特定订阅。 若要查看帐户的订阅,请键入以下命令:

    Get-AzSubscription
    

    若要指定与要记录的 Azure Databricks 帐户关联的订阅,请键入以下命令:

    Set-AzContext -SubscriptionId <subscription ID>
    
  3. 将你的 Log Analyticss 资源名称设置为名为 logAnalytics 的变量,其中 ResourceName 是 Log Analytics 工作区的名称。

    $logAnalytics = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name> -ResourceType "Microsoft.OperationalInsights/workspaces"
    
  4. 将 Azure Databricks 服务资源名称设置为名为 databricks 的变量,其中 ResourceName 是 Azure Databricks 服务的名称。

    $databricks = Get-AzResource -ResourceGroupName <your resource group name> -ResourceName <your Azure Databricks service name> -ResourceType "Microsoft.Databricks/workspaces"
    
  5. 若要为 Azure Databricks 启用日志记录,请使用 New-AzDiagnosticSetting cmdlet,同时使用新存储帐户、Azure Databricks 服务和要为其启用日志记录的类别的变量。 运行以下命令,并将 -Enabled 标志设置为 $true

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

使用 Azure CLI 启用日志记录

  1. 打开 PowerShell。

  2. 使用以下命令连接到你的 Azure 帐户:

    az login
    

    若要使用 Microsoft Entra ID 服务主体进行连接,请参阅使用 Microsoft Entra ID 服务主体登录 Azure CLI

    若要使用 Azure Databricks 用户帐户连接,请参阅使用 Azure Databricks 用户帐户进行 Azure CLI 登录

  3. 运行以下诊断设置命令:

    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

使用 LogSettings API。

请求

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

请求正文

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

诊断日志延迟

为帐户启用日志记录后,Azure Databricks 会自动将诊断日志发送到你的传送位置。 日志通常会在激活后的 15 分钟内可用。 在 Azure 商业区域中,Azure Databricks 可审核事件通常会在 15 分钟内显示在诊断日志中。

SSH 登录日志的传送延迟很高。

注意

虽然预计大部分日志将在 15 分钟内送达,但 Azure Databricks 不保证日志传送的期限。