你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Microsoft Sentinel data lake 上运行 KQL 查询

Microsoft Defender 门户中的数据湖浏览功能提供了一个统一的界面来分析你的数据湖。 它允许运行 KQL(Kusto 查询语言)查询、创建作业和管理它们。

通过 Data Lake 探索下的 KQL 查询页,可以编辑和运行 Data Lake 资源的 KQL 查询。 创建作业以将数据从 Data Lake 提升到分析层,或在 Data Lake 层中创建聚合表。 按需运行作业或计划作业。 “ 作业 ”页允许你管理作业;启用、禁用、编辑或删除。 有关详细信息,请参阅 在 Microsoft Sentinel 数据湖中创建作业

先决条件

在 Microsoft Sentinel data lake 中运行 KQL 查询需要满足以下先决条件。

加入数据湖

完成载入过程后,可以在 Microsoft Defender 门户中运行 KQL 查询。 有关加入的详细信息,请参阅加入 Microsoft Sentinel 数据湖

权限

Microsoft Entra ID 角色允许访问 Data Lake 中的所有工作区。 或者,可以使用 Azure RBAC 角色授予对单个工作区的访问权限。 具有 Microsoft Sentinel 工作区的 Azure RBAC 权限的用户可以对 Data Lake 层中的这些工作区运行 KQL 查询。 有关角色和权限的详细信息,请参阅 Microsoft Sentinel data lake 角色和权限

编写 KQL 查询

为 Data Lake 编写查询类似于在高级搜寻体验中编写查询。 可以使用相同的 KQL 语法和函数。 KQL 支持高级分析和机器学习函数。 查询编辑器提供了一个界面,用于运行 KQL 查询,其中包含 IntelliSense 和自动完成等功能,以帮助你高效编写。 有关 KQL 语法和函数的详细概述,请参阅 Kusto 查询语言 (KQL) 概述

Defender 门户中的 KQL 查询

选择 “新建查询 ”以创建新的查询选项卡。门户在每个选项卡中保存最后一个查询。在选项卡之间切换以同时处理多个查询。

查询历史记录 ”选项卡显示以前运行的查询、查询处理时间和完成状态的列表。 可以通过从列表中选择前一个查询,在新选项卡中打开该查询。 门户将查询历史记录保存 30 天。 选择要编辑或重新运行的查询。

Defender 门户中 KQL 查询页的屏幕截图。

选择工作区

可以针对单个工作区或多个工作区运行查询。 使用 “所选工作区 ”下拉列表选择查询编辑器右上角的工作区。 您选择的工作区将决定可供查询的表。 所选工作区适用于查询编辑器中的所有查询选项卡。 使用多个工作区时, union() 运算符默认应用于具有相同名称和架构的不同工作区的表。 使用workspace()运算符从特定工作区查询表,例如workspace("MyWorkspace").AuditLogs

如果选择单个空工作区或正在载入的工作区,则架构浏览器不会显示任何表。

显示工作区选择面板的屏幕截图。

时间范围选择

使用查询编辑器上方的时间选取器选择查询的时间范围。 通过使用 “自定义时间范围 ”选项,可以设置特定的开始时间和结束时间。 持续时间最长为 12 年。

显示时间范围选择器的屏幕截图。

还可以在 KQL 查询语法中指定时间范围,例如:

  • where TimeGenerated between (datetime(2020-01-01) .. datetime(2020-12-31))
  • where TimeGenerated between(ago(180d)..ago(90d))

注释

查询受限于 500,000 行或 64 MB 数据,并在 8 分钟后超时。 选择广泛的时间范围时,查询可能会超过这些限制。 请考虑对长时间运行的查询使用异步查询。 有关详细信息,请参阅 异步查询

查看架构信息

架构浏览器为所选工作区提供可用表及其列的列表,按类别分组。 系统表显示在 “资产 ”类别中。 自定义包含的表格分组在“自定义日志”类别中。 使用架构浏览器浏览 Data Lake 中可用的数据,并发现表和列。 使用搜索框快速查找特定表。

显示 KQL 编辑器中架构浏览器面板的屏幕截图。

结果窗口

结果窗口显示查询的结果。 可以使用结果窗口左上角的 “导出 ”按钮,以表格式查看结果,并将结果导出到 CSV 文件。 使用“ 显示空列 ”按钮切换空列的可见性。 “ 自定义列 ”按钮允许选择要在结果窗口中显示的列。

可以使用结果窗口右上角的搜索框搜索结果。

显示 KQL 查询编辑器中结果窗口的屏幕截图。

现成可用的查询

查询选项卡提供一组开箱即用的 KQL 查询。 这些查询涵盖常见方案和用例,例如安全事件调查和威胁搜寻。 可以使用这些查询 as-is 或修改它们以满足你的特定需求。

使用 ... 图标从列表中选择查询。 可以在新的查询选项卡中将其打开,以便编辑或立即运行它。

有关示例查询的详细信息,请参阅 Microsoft Sentinel data lake 的示例 KQL 查询

KQL 查询编辑器中“示例查询”选项卡的屏幕截图。

异步查询

可以异步运行长时间运行的查询,以便在查询在服务器上运行时继续工作。 若要异步运行查询,请选择 “运行查询 ”按钮上的向下箭头,然后选择“ 运行异步查询”。 输入查询名称以标识异步查询。 提交查询后,可以在 “异步查询 ”选项卡中监视其状态。查询完成后,可以通过从列表中选择查询名称来查看结果。

显示 KQL 查询编辑器中“异步查询”选项卡的屏幕截图。

如果同步查询运行时间超过 2 分钟,则会显示一条提示,询问是否要异步运行查询。 选择 “运行异步 ”以更改查询以异步运行。

显示将长时间运行的查询更改为异步查询的提示的屏幕截图。

提取异步查询结果

若要查看异步查询结果,请从 “异步查询 ”选项卡中选择已完成的异步查询,然后选择“ 提取结果”。 查询显示在查询编辑器中的注释中,结果将显示在 “结果”选项卡中

结果存储 24 小时,可以多次访问。 可以使用结果窗口左上角的 “导出 ”按钮将结果导出到 CSV 文件。

显示 KQL 查询编辑器中异步查询的结果的屏幕截图。

职位

作业用于针对数据湖层中的数据运行 KQL 查询,并将结果提升到分析层。 可以创建一次性或计划作业,并且可以在 “作业 ”页中启用、禁用、编辑或删除作业。 若要基于当前查询创建作业,请选择“ 创建作业 ”按钮。 有关创建和管理作业的详细信息,请参阅 Microsoft Sentinel data lake 中创建作业

Azure 数据资源管理器

可以使用 Azure 数据资源管理器(ADX)针对 Microsoft Sentinel 数据湖运行 KQL 查询。 ADX 提供强大的查询引擎和高级分析功能。 若要使用 ADX 连接到 Data Lake,请使用以下 URI 创建新的连接: https://api.securityplatform.microsoft.com/lake/kql

使用 ADX 查询 Data Lake 中的表时,必须使用 external_table() 函数来访问数据。 例如:

external_table("AADRiskyUsers")
| take 100

查询注意事项和限制

  • 查询在您选择的工作区中运行。 在运行查询之前,请确保选择正确的工作区。

  • 对 Microsoft Sentinel 数据湖执行 KQL 查询会根据查询计费计量产生费用。 有关详细信息,请参阅计划成本并了解 Microsoft Sentinel 定价和计费

  • 检查数据导入和表保留策略。 在设置查询时间范围之前,请注意数据湖表上的数据保留以及数据是否可用于所选时间范围。 有关详细信息,请参阅 Microsoft Defender 门户中管理数据层级和保留期

  • 针对 Data Lake 的 KQL 查询的性能低于分析层上的查询。 仅当浏览历史数据或在仅数据湖模式下存储表时,才对数据湖使用 KQL 查询。

  • 目前支持以下 KQL 控件命令:

    • .show version
    • .show databases
    • .show databases entities
    • .show database
  • 使用 stored_query_results 此命令时,在 KQL 查询中提供时间范围。 查询编辑器上方的时间选择器不适用于此命令。

  • 对数据湖进行 KQL 查询不支持使用开箱即用的或自定义函数。

  • 不支持通过 KQL 查询对数据湖调用外部数据。

  • 除以下各项外,所有 KQL 运算符和函数均受支持:

    • adx()
    • arg()
    • externaldata()
    • ingestion_time()

湖层中 KQL 查询的服务参数和限制

在 Microsoft Sentinel data lake 中编写查询时,以下服务参数限制适用。

类别 参数/限制
并发交互式查询 每分钟 45 个
查询结果数据 64 MB
查询结果行 500,000 行
查询范围 多个工作区
查询超时值 8 分钟
可查询时间范围 最多 12 年,具体取决于数据保留期。

有关 KQL 查询的故障排除,请参阅 Microsoft Sentinel data lake 中的 KQL 查询疑难解答