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

在 Azure Monitor 中运行搜索作业

搜索作业是对 Log Analytics 中的任何数据运行的异步查询(包括交互式和长期保留中的数据),这会在工作区内的新搜索表中向交互式查询提供查询结果。 搜索任务利用并行处理,可以在大型数据集上运行数小时。 本文介绍如何创建搜索作业以及如何查询其结果数据。

此视频介绍何时以及如何使用搜索任务:

所需的权限

行动 所需的权限
运行搜索任务 对 Log Analytics 工作区的 Microsoft.OperationalInsights/workspaces/tables/writeMicrosoft.OperationalInsights/workspaces/searchJobs/write 权限,例如 Log Analytics 参与者内置角色所提供的权限。

注意

不支持跨租户搜索作业。 即使分配了包含 searchJobs/write 权限的委派角色,Azure Lighthouse 也不支持搜索作业的委派访问。

何时使用搜索作业

可以使用搜索作业完成以下操作:

  • 长期保留内容以及基本计划和辅助计划的表中检索记录,并将其整合到一个新的 Analytics 表中,以便充分利用 Azure Monitor 日志的完整分析功能。
  • 如果 10 分钟的日志查询超时时间不够,则可扫描大量数据。

搜索作业的用途是什么?

搜索作业会扫描数据并将其结果发送到与源数据相同的工作区中的新表。 搜索作业开始后,结果表即告可用,但结果可能需要一段时间才能开始显示。 费用计算依据为所扫描数据的定价模型和引入结果的大小。 在运行搜索作业之前,可以使用成本估算来确定是否运行作业。

显示成本估算预览的屏幕截图。

搜索作业结果表是一个分析表,可用于日志查询和其他使用工作区中表的 Azure Monitor 功能。 该表使用为工作区设置的保留值,但你可以在创建表后修改此值。

搜索结果表架构基于源表架构和指定的查询。 以下其他列可帮助你跟踪源记录:

_OriginalType Type 值来自源表。
_OriginalItemId 源表中的 _ItemID 值。
_OriginalTimeGenerated 源表中的 TimeGenerated 值。
TimeGenerated 搜索作业运行的时间。

对结果表的查询显示在日志查询审核中,但不显示在初始搜索作业中。

运行搜索任务

运行搜索作业,以将大型数据集中的记录提取到工作区中的新搜索结果表中。

提示

运行搜索作业会产生费用。 在运行搜索作业之前,在交互式查询模式下编写和优化查询。 使用成本估算预览了解潜在成本。

若要运行搜索作业,请在 Azure 门户中执行以下操作:

  1. 在“Log Analytics 工作区”菜单中,选择“日志”。

  2. 键入一个搜索作业查询或仅选择所需的表。

  3. 选择屏幕右侧的省略号菜单,然后选择 “搜索作业”。

    “日志”屏幕的屏幕截图,其中突出显示了“搜索作业”菜单项。

  4. 使用时间选取器指定搜索作业日期范围。 选择总保留期内的任意时间段。

    如果你的 Kusto 查询还指定了时间范围,则使用时间范围的合并来进行搜索作业。

    显示提示时间范围和搜索作业结果表的搜索作业界面的屏幕截图。

  5. 请输入搜索作业结果表的名称,然后选择“运行搜索作业”。

    Azure Monitor 日志运行搜索作业,并在工作区中为搜索作业结果创建新表。

  6. 新表准备就绪后,选择 <查看”searchtablename>_SRCH“ 以查看 Log Analytics 中的表。

    搜索作业结果在开始流入新创建的搜索作业结果表时可用。

    显示带有数据的搜索作业结果表的屏幕截图。

    Azure Monitor 日志显示搜索作业已完成时,会出现已完成消息。 当你看到该消息或进度显示为 100%时,结果表格已经准备好,包含与搜索查询匹配的所有记录。

获取搜索任务状态和详细信息

  1. 在“Log Analytics 工作区”菜单中,选择“日志”。

  2. “表搜索结果”>中,将鼠标悬停在搜索结果表上以查看进度。

    搜索作业结果表中的图标会显示更新指示器图标,直到搜索作业完成。

    显示 Azure 门户中“日志”屏幕上的“表”选项卡的屏幕截图,其中搜索结果表列在“搜索结果”下。

删除搜索作业表

我们建议你在查询完表后删除搜索作业表。 此最佳做法可减少工作区混乱和数据保留的额外费用。

注意事项

搜索作业受以下注意事项的约束:

  • 优化为一次查询一个表
  • 搜索日期范围是总保留期内的任何时间段
  • 支持最长运行 24 小时的搜索,超时后停止
  • 结果限制为记录集中最多 1 亿条记录 - 如果超出限制,Azure Monitor 会将作业中止,状态为部分成功,而表格仅包含到达该点时已摄取的记录。
  • 每个工作区同一时间最多可执行 10 个搜索作业。
  • 每个工作区最多可显示 200 个搜索结果表。
  • 每个工作区每天只能执行 200 个搜索作业
  • 不支持跨租户搜索作业
  • 即使委托包含正确的 searchJobs/write 权限,Azure Lighthouse 委托访问也不支持搜索作业 - 失败并显示错误消息:
    用户 managing-tenant-userId< 在作用域 >delegated-workspace-resourceID 上没有执行 Microsoft.OperationalInsights/workspaces/searchJobs/write 操作的访问权限<>。

KQL 查询注意事项

搜索作业旨在扫描特定表中的大量数据,因此搜索作业查询必须始终以表名称开头。 若要使用分布和分段启用异步执行,查询支持 KQL 的子集,包括以下表格运算符:

这些运算符中的所有函数和二进制运算符都可用。

contains字符串运算符被阻止在搜索作业中使用,因为高级文本匹配对性能有重大影响。 请改用 has 字符串运算符。 有关性能注意事项的详细信息,请参阅 Azure Monitor 中的优化日志查询

定价模型

搜索作业的费用基于以下因素:

  • 搜索作业执行:

    • 分析计划 - 搜索作业扫描的数据中属于长期保留的数据量。 扫描位于 Analytics 表的分析保留中的数据不收取任何费用。

    • 基本或辅助计划 - 搜索作业在长期保留中扫描的所有数据。

      扫描的数据定义为在指定的时间范围内运行搜索作业的表中的数据量。 有关分析和长期保留的详细信息,请参阅 在 Log Analytics 工作区中管理数据保留

  • 搜索作业结果 - 搜索作业找到并引入到结果表中的数据量,基于 Analytics 表的数据引入速率。

例如,如果对基本表进行搜索的时间跨度为 30 天,而该表每天保存 500 GB 的数据,则需要支付 15,000 GB 的扫描数据费用。 如果搜索作业返回 1,000 条记录,则需要支付将这 1,000 条记录引入结果表中的费用。

有关详细信息,请参阅 Azure Monitor 定价