教程:使用 Log Analytics

Log Analytics是Azure门户中用于查询和分析 Azure Monitor Logs 收集的数据的工具。 当需要排查问题、调查性能趋势或了解Azure资源的行为方式时,请使用Log Analytics编写和运行 log 查询

本教程将使用示例数据带您了解 Log Analytics 界面。 可以浏览表架构、编写和运行基本查询,以及处理结果。

在本教程中,你将了解:

  • 了解日志数据的架构。
  • 编写和运行简单的查询,以及修改查询时间范围。
  • 对查询结果进行筛选、排序和分组。
  • 查看、修改和共享查询结果的视觉对象。
  • 加载、导出和复制查询与结果。

Prerequisites

  • 具有对Azure 门户访问权限的 Microsoft 帐户或 Microsoft Entra ID 标识。
  • 如果使用自己的订阅而不是演示环境,则需要一个具有数据的Log Analytics工作区。 您的表格可能与演示数据不匹配。

Note

Log Analytics有两种模式:简单和 Kusto 查询语言(KQL)。 本教程主要使用 KQL 模式。 如果您更喜欢通过点选界面而非编写 KQL 查询,请参阅使用 Log Analytics 简单模式分析数据

本教程使用Log Analytics功能来生成查询并使用示例查询。 准备好了解查询的语法并开始直接编辑查询本身时,请尝试 Kusto 查询语言(KQL)教程。 该教程演示了可在 Log Analytics 中编辑和运行的示例查询。 它使用了本教程将介绍的多项功能。

打开 Log Analytics

从订阅中的 Azure Monitor 菜单中选择 “日志 ”。 此步骤将初始范围设置为 Log Analytics 工作区,以便查询从该工作区中的所有数据中进行选择。 如果从Azure资源的菜单中选择Logs,范围将缩小到仅从该资源的记录。 有关详细信息,请参阅 日志查询范围

通过选择当前查询的省略号来查找当前范围。 如果您使用的是自己的环境,则会看到一个可用于选择其他作用域的选项。 但在演示环境中不提供此选项。

显示演示的 Log Analytics 范围的屏幕截图。

验证: 确认查询编辑器可见,范围在左上角显示工作区名称或“演示”。

查看表格信息

屏幕左侧包括“ ”选项卡,可在其中检查当前范围内可用的表。 默认情况下,根据解决方案对这些表进行分组,但你可以更改其分组或对其进行筛选。

  1. 展开日志管理解决方案并找到AppRequests表。 展开表以查看其架构,或将鼠标悬停在其名称上以显示其详细信息。

  2. 选择 “有用链接” 下的链接(本示例中为 AppRequests),以查看记录该表及其各列的参考文档。

  3. 将鼠标悬停在 AppRequests 表上,然后选择“ 运行 ”以查看表中过去 24 小时内的记录。 此预览版有助于在运行更广泛的查询之前验证数据。

    显示 AppRequests 表的预览数据的屏幕截图。

验证: 预览窗格显示包含 名称URLDurationMsResultCodeClientCity 等列的记录。 如果 AppRequests 表未显示在 日志管理下,则工作区可能未配置 Application Insights 数据。

编写查询

使用 AppRequests 表编写查询:

  1. 双击表名,或将鼠标悬停在表名上,然后选择“ 在编辑器中使用 ”将其添加到查询窗口。 或者,直接在窗口中键入 AppRequests 。 IntelliSense 可帮助完成当前作用域和 KQL 命令中的表的名称。

  2. 将光标置于查询文本中的任意位置,然后选择 “运行” 按钮,或按 Shift+Enter。 此查询是最简单的查询,将表中的所有记录返回至 “显示结果 ”限制。

验证: 检查结果窗格的右下角。 你应看到记录数大于零。 有关最大结果数的信息,请参阅 “配置查询结果限制”。

若要了解如何创作自己的查询,请参阅 Azure Monitor 日志中的日志查询入门

设置查询时间范围

所有查询都会返回在设置的时间范围内生成的记录。 默认情况下,时间选取器设置为 “过去 24 小时”。 预览运行后,查询将时间范围显式设置为 24 小时。通过使用屏幕顶部的时间 范围 下拉列表设置不同的时间范围,或编辑查询中的 where 运算符 。 如果你同时使用这两种方法,Log Analytics 将采用这两个时间范围的并集。 有关详细信息,请参阅 指定时间范围

  1. 通过从“时间范围”下拉列表中选择“过去 12 小时”来更改时间范围。

  2. 如果查询中存在 where 运算符,请将其移除。

  3. 选择“运行”以返回结果。

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

验证: 由于配置的 显示 限制,右下角的记录计数可能不小于之前的 24 小时结果。

应用多个查询筛选器

通过添加筛选条件进一步减少结果。 查询可以包含任意数量的筛选器,以精确定位所需的记录。

  1. 通过选择查询编辑器右上角的模式下拉列表,从 KQL 模式 切换到 简单模式 。 在简单模式下,添加筛选器而不编写 KQL 语法。

  2. 选择“显示限制”右侧的“添加筛选器”图标。

  3. 选择 “名称 ”筛选器。 默认运算符是 Select from list ,它根据当前结果中的记录显示值。

  4. 选择 “GET Home/Index”。 如果未看到预期值,请尝试扩展时间范围、增加显示限制或删除其他筛选器,以确保这些记录包含在结果中。

    显示应用了多个筛选器的查询的结果的屏幕截图。

  5. 切换回 KQL 模式 并查看应用的筛选器的 KQL 语法。 查询现在应包含包含 where 列条件的 Name 运算符。

验证: 与未筛选的查询相比,记录计数会减少。 “名称”列中的所有可见记录都显示 GET 主页/索引

分析查询结果

Log Analytics提供的功能用于处理运行查询以外的结果。

展开并排序记录

  1. 展开记录以查看其所有列的值,方法是选择行左侧的 V 形 (>)。

  2. 选择任何列标题以按该列对结果进行排序。 再次选择同一标头可在升序、降序和默认顺序之间切换。

    显示查询结果已按 TimeGenerated 列排序且一条记录已展开的屏幕截图。

从列标题进行筛选

结果表支持通过列标题进行类似 Excel 的筛选。 使用此方法进行快速交互式分析。

  1. 选择 DurationMs 列标题旁边的省略号(...)。 此选择显示筛选器选项卡和列选项选项卡。重新运行查询时,此处配置的筛选器将清除。

  2. 在该处设置筛选器,将记录限制为耗时超过 150 毫秒的应用请求。

    显示在搜索结果中展开的记录的屏幕截图。

验证: 应用 DurationMs 筛选器后,所有可见记录都显示大于 150 的 DurationMs 值。 记录数减少。

在查询结果中搜索

使用结果窗格右上角的搜索框搜索查询结果。

  1. 在查询结果搜索框中输入 得克萨斯州

  2. 选择向下箭头,在搜索结果中查找此字符串的下一个实例。

显示结果窗格右上角的搜索框的屏幕截图。

验证: 结果中突出显示了匹配文本。 箭头导航显示匹配结果总数(例如“2/12”)。

Note

搜索框仅筛选浏览器中显示的结果,不会修改 KQL 查询或从服务器重新提取数据。

重新整理并汇总数据

重新组织并汇总查询结果中的数据以提高可视化效果。

  1. 选择结果窗格右侧的“列”以打开“列”边栏

  2. 将“URL”列拖到“行组”部分。 结果现已按该列整理,您可以折叠各组。

    此操作将处理返回的原始查询的数据 - 它不会从服务器中重新提取数据。 重新运行查询时,Log Analytics基于原始查询检索数据。

    显示按 URL 分组的查询结果的屏幕截图。

验证: 结果显示在可折叠的组中,其中包含每个组的 URL 标头。 选择组标头以展开或折叠该组。

创建数据透视表

若要分析各个页面的性能,请创建数据透视表:

  1. 在“列”边栏中,选择“透视模式”

  2. 选择“URL”和“DurationMs”以显示对每个 URL 的所有调用的总持续时间。

  3. 若要查看每个 URL 的最大调用持续时间,请选择 sum(DurationMs), 然后选择 最大值

    显示如何打开“透视模式”并基于 URL 和 DurationMS 值配置数据透视表的屏幕截图。

  4. 通过在结果窗格中选择 max(DurationMs) 列标题,按最长调用持续时间对结果进行排序。

验证: 数据透视表中每个 URL 占一行,并显示一个 max(DurationMs) 值。 结果按时长降序排序,最长时长显示在顶部。

将查询结果可视化为图表

查看使用数值数据作为图表的查询。 使用内置查询库中的示例查询,而不是生成查询。

  1. 清空查询编辑器中的任何现有文本,或者选择当前查询选项卡旁边的加号图标以打开新的查询选项卡。

  2. 在左侧窗格中选择“查询”。 此窗格包含要加载到查询编辑器的示例查询。 如果使用自己的工作区,则会在多个类别中找到各种查询。

  3. “应用程序”类别中找到响应时间趋势查询。 若要加载它,请双击查询或将鼠标悬停在查询名称上以显示详细信息,然后选择“ 加载到编辑器”。 空白行将新查询与以前的任何查询分开。 在 KQL 中,空白行标记查询的末尾,因此编辑器中的每个查询都独立运行。

  4. 将光标置于新查询中的任意位置,然后选择“ 运行”。

    显示查询结果图表的屏幕截图。

  5. 切换 “结果 ”选项卡或更改 图表格式 以浏览其他选项。

验证: 该图表显示具有每小时数据点的时序折线图。 Y 轴显示平均响应持续时间(以毫秒为单位)。 如果发现数据出现峰值,请通过调整时间范围进一步排查。

若要在出现高峰时收到通知,请创建警报规则。 在操作栏中,打开 查询中心 旁边的(...),然后选择 + 新建警报规则。 有关详细信息,请参阅 教程:为 Azure 资源创建日志搜索警报。 演示环境中不支持创建警报规则,但你仍然可以浏览查看其工作原理的选项。

导出和复制结果

运行查询后,导出或复制结果以供Log Analytics外部使用。 在操作栏中的 “共享 ”菜单中:

  • 复制指向查询的链接: 创建指向当前查询的链接,你可以与有权访问同一工作区的其他人共享该链接。
  • 复制查询文本: 选择编辑器中的查询文本到剪贴板。

这些功能在演示环境中不起作用,因为演示没有唯一的 URL 或保存查询,但你可以在自己的环境中尝试它们。

  • 复制结果: 在结果窗格中选择行,右键单击,然后选择 “复制 ”或使用 Ctrl+C。 将数据粘贴到电子表格或文本编辑器中。
  • 导出到 CSV - 所有列导出到 CSV - 显示列 以下载数据。
  • Export 到Power BI(作为 M 查询)Export 到Power BI(新数据集)以打开Power BI中的数据进行进一步分析和可视化。
  • open in Excel: 导出数据并在Excel中打开它。 只有在计算机上安装了Excel时,此选项才可用。

在操作栏中的 “保存 ”菜单中,有用于保存查询或将视觉对象固定到仪表板的选项。 若要了解如何将视觉对象固定到共享仪表板,请参阅 创建和共享仪表板,以便可视化Azure Monitor日志中的数据

排查常见问题

问题 可能的原因 解决方案
演示环境不会加载 浏览器阻止弹出窗口或第三方 Cookie。 允许portal.azure.cn弹出式窗口。 尝试使用专用或隐身浏览器窗口。
AppRequests 表不可见 工作区没有 Application Insights 数据。 使用演示环境,或 将 Application Insights 资源连接到 工作区。
查询返回零结果 所选时间范围没有数据,或者筛选器太窄。 展开时间范围(例如 过去 7 天)。 删除筛选器以验证数据是否存在。
工作区上的“无法访问”错误 你的账户没有该工作区的读取权限。 要求管理员分配 Log Analytics Reader 角色。 请参阅 “管理对日志数据和工作区的访问权限”。
“图表”选项卡显示“无可用图表” 查询不返回适合绘制图表的时序或数值数据。 确保查询包含一个带有 summarize 子句的 bin(TimeGenerated, ...) 运算符。
筛选器选项卡为空 不会为当前查询结果加载筛选器。 首先运行查询。 然后选择 “筛选器 ”选项卡,然后选择刷新或重新加载选项以填充筛选器值。
DurationMs 筛选器在使用 > 150 ms 时无结果 您的工作区数据整体响应时间均较低。 降低阈值(例如,尝试 > 5 毫秒),或使用具有不同响应时间的演示环境。
“透视模式”选项不可见 “列”边栏未打开。 选择结果窗格右侧的 以打开侧边栏 >,然后选择 透视模式

后续步骤

现在,你已了解如何使用 Log Analytics,请完成有关使用日志查询的教程: