共用方式為

为 Azure AI 搜索配置诊断日志

诊断日志提供对 Azure AI 搜索资源中发生的操作的见解。 与跟踪在订阅级别(即控制平面)对 Azure 资源执行的操作的活动日志相比,诊断日志记录监控搜索服务本身的操作。 诊断日志记录对于有效监督服务作(如索引和查询)至关重要。

本文介绍如何启用诊断日志记录,并查找有关 Azure AI 搜索资源上的系统和用户操作的信息。

先决条件

启用诊断日志记录

可以通过 Azure Monitor 进行诊断日志记录。 尽管某些日志记录(如活动日志和内置指标)会自动报告,但不会进行前期配置,但有关服务内作和数据访问的资源级日志要求你创建诊断设置并指定存储选项。

  1. 登录到 Azure 门户并导航到搜索服务。

  2. 在“ 监视>诊断设置”下,选择“ 添加诊断设置”。

  3. 提供一个描述性名称,用于标识日志记录的服务和级别,例如“my-search-service-all-logs”或“my-search-service-audit-logs”。

  4. “日志”下,选择一个类别:

    • 审核日志 捕获用户或应用与数据或服务设置的交互,但不包括用户或组标识。
    • 操作日志 捕获有关搜索服务操作的信息。
    • allLogs 收集所有日志。

    详细日志记录可能带来高昂的存储费用,并且管理和存储可能很复杂。 你可以先使用allLogs,然后根据信息需求切换到更有针对性的日志记录。 有关这些类别的详细信息,请参阅 Azure Monitor 中的诊断设置

  5. 对于目的地,建议 发送到 Log Analytics 工作区,以便您可以针对数据运行 Kusto 查询。 提供用于存储日志的现有 Log Analytics 工作区。

  6. 保存设置。

如果需要更 全面的数据收集策略,请重复这些步骤。

创建的每个诊断设置都需要单独的存储。 如果使用 Azure 门户查看日志,则默认使用第一个诊断设置。 可以导航到特定工作区以获取可视化支持。

注释

如果使用 基于密钥的身份验证,Azure AI 搜索无法监视单个用户访问搜索服务上的内容。 如果需要此级别的监视,则需要在客户端应用程序中实现它。

在 Log Analytics 中查看日志

按照以下说明浏览搜索服务的 Log Analytics 数据。

  1. 在“监视”下选择“日志”。 默认情况下,查询中心将打开。 可以尝试可用的查询,或关闭中心并在 KQL 模式下打开查询窗口,以运行以 Kusto 查询语言(KQL)编写的查询。

    Azure 门户查询资源管理器中 KQL 模式选项的屏幕截图。

  2. 在查询窗口中,可以针对日志运行 Kusto 查询。

    Azure 门户中查询和结果的屏幕截图。

Kusto 示例查询

下面是一些可用于浏览日志数据的基本 Kusto 查询。

针对指定时间段内 Azure AI 搜索服务中的所有诊断日志运行此查询:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"

运行此查询以查看 10 个最新日志:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| take 10

运行此查询以按资源对操作进行分组。

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH" |
summarize count() by Resource

运行此查询以查找执行作所花费的平均时间:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| summarize avg(DurationMs)
by OperationName

运行此查询以查看按操作名称分解的操作量,并按每10秒的间隔计数分类。

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| summarize count()
by bin(TimeGenerated, 10s), OperationName
| render areachart kind=unstacked