诊断日志提供对Azure 人工智能搜索资源中发生的操作的深入了解。 与跟踪订阅级别对Azure资源执行的操作的活动日志(称为 control 平面)相比,诊断日志记录监视搜索服务本身的操作。 诊断日志记录对于有效监督服务作(如索引和查询)至关重要。
本文介绍如何启用诊断日志记录,并查找有关Azure AI Search资源上的系统和用户操作的信息。
先决条件
- 同一订阅中的 Azure Log Analytics 工作区。
启用诊断日志记录
在 Azure 门户中,转到你的搜索服务。
在“ 监视>诊断设置”下,选择“ 添加诊断设置”。
提供一个描述性名称,用于标识日志记录的服务和级别,例如“my-search-service-all-logs”或“my-search-service-audit-logs”。
在 “日志”下,选择一个类别:
- 审核日志 捕获用户或应用与数据或服务设置的交互,但不包括用户或组标识。
- 操作日志 捕获有关搜索服务操作的信息。
- allLogs 收集所有日志。
详细日志记录可能带来高昂的存储费用,并且管理和存储可能很复杂。 你可以先使用allLogs,然后根据信息需求切换到更有针对性的日志记录。 有关这些类别的详细信息,请参阅 Azure Monitor 中的诊断设置。
对于目的地,我们建议发送到日志分析工作区,这样您便可以对数据运行 Kusto 查询。 提供用于存储日志的现有Log Analytics工作区。
保存设置。
如果需要更 全面的数据收集策略,请重复这些步骤。
创建的每个诊断设置都需要单独的存储。 如果使用Azure门户查看日志,则默认使用第一个诊断设置。 可以导航到特定工作区以获取可视化支持。
注释
如果使用的是基于 key 的身份验证,Azure AI Search无法监视单个用户访问搜索服务上的内容。 如果需要此级别的监视,则需要在客户端应用程序中实现它。
在Log Analytics中查看日志
按照以下说明浏览搜索服务的 Log Analytics 数据。
在“监视”下选择“日志”。 默认情况下,查询中心将打开。 可以尝试可用的查询,或关闭中心并在 KQL 模式下打开查询窗口,以运行以 Kusto 查询语言(KQL)编写的查询。
在查询窗口中,可以针对日志运行 Kusto 查询。
在 Azure 门户中查询及结果的截图。
Kusto 示例查询
下面是一些可用于浏览日志数据的基本 Kusto 查询。
针对指定时间段内Azure AI Search服务的所有诊断日志运行此查询:
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