你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
诊断日志提供对 Azure AI 搜索资源中发生的操作的见解。 与跟踪在订阅级别对 Azure 资源执行的操作(称为 控制平面)的活动日志相比,诊断日志记录监视搜索服务本身的操作。 诊断日志记录对于有效监督服务作(如索引和查询)至关重要。
本文介绍如何启用诊断日志,并查找有关 Azure AI 搜索资源上系统和用户操作的信息。
注意
Azure AI 搜索不会记录已访问搜索服务上的内容或操作的人员或应用的标识。 如果需要此级别的监视,则需要在客户端应用程序中实现它。
Prerequisites
- 同一订阅中的 Azure Log Analytics 工作区。
启用诊断日志记录
在“监视”>“诊断设置”下,选择“添加诊断设置”。
提供一个描述性名称,用于标识日志记录的服务和级别,例如“my-search-service-all-logs”或“my-search-service-audit-logs”。
在“日志”下,选择一个类别:
- 审核日志会捕获用户或应用与数据或服务设置的交互,但不包括用户或组标识。
- 操作日志会捕获有关搜索服务操作的信息。
- allLogs 会收集所有信息。
详细日志记录的存储成本高昂,管理和存储起来很复杂。 你可能希望先使用 allLogs,然后切换到更针对性的日志记录(如果它满足你的信息要求)。 有关这些类别的详细信息,请参阅 Azure Monitor 中的诊断设置。
对于目标,建议使用发送到 Log Analytics 工作区,以便你可以对数据运行 Kusto 查询。 提供用于存储日志的现有 Log Analytics 工作区。
保存设置。
如果需要更全面的数据收集策略,请重复这些步骤。
创建的每个诊断设置都需要单独的存储。 如果使用 Azure 门户查看日志,则默认使用第一个诊断设置。 可以导航到特定工作区以获取可视化支持。
注意
如果使用基于密钥的身份验证,则 Azure AI 搜索无法监视单个用户对搜索服务上的内容的访问。 如果需要此级别的监视,则需要在客户端应用程序中实现它。
在 Log Analytics 中查看日志
按照以下说明浏览搜索服务的 Log Analytics 数据。
在“监视”下选择“日志”。 查询中心默认打开。 可以尝试可用的查询,或关闭中心并在 KQL 模式下打开查询窗口,以运行通过 Kusto 查询语言 (KQL) 编写的查询。
在查询窗口中,可以针对日志运行 Kusto 查询。
示例 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
运行此查询可以查看不同时间按 OperationName 划分的操作量,以及每隔 10 秒装箱的操作计数。
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| summarize count()
by bin(TimeGenerated, 10s), OperationName
| render areachart kind=unstacked