Azure Monitor 中的日志查询
Azure Monitor 日志基于 Azure 数据资源管理器,日志查询是使用相同的 Kusto 查询语言 (KQL) 编写的。 这是一种旨在方便阅读和创作的丰富语言,你只需接受一些基本指导,便可开始编写查询。
在 Azure Monitor 中使用查询的区域包括:
- Log Analytics:使用 Azure 门户中的这一主要工具来编辑日志查询并以交互方式分析其结果。 即便你打算在 Azure Monitor 的其他位置使用日志查询,通常也是先在 Log Analytics 中编写和测试查询,然后再将其复制到最终位置。
- 日志搜索警报规则:基于工作区中的数据主动识别问题。 每个警报规则均基于定期自动运行的日志查询。 对结果进行检查,确定是否应创建警报。
- 工作簿:在 Azure 门户中通过交互式视觉对象报表中的各种可视化效果提供日志查询结果。
- Azure 仪表板:将任何查询的结果固定到 Azure 仪表板,这使得你可以将日志和指标数据一起可视化,并且还可以将其与其他 Azure 用户共享。
- Azure 逻辑应用:通过逻辑应用工作流在自动化工作流中使用日志查询结果。
- PowerShell:使用命令行中 PowerShell 脚本或使用
Invoke-AzOperationalInsightsQuery
的 Azure 自动化 runbook 中的日志查询结果。 - Log Analytics 查询 API:通过 REST API 客户端从工作区中检索日志数据。 API 请求包括针对 Azure Monitor 运行的查询,用于确定要检索的数据。
- Azure Monitor 查询客户端库:通过以下生态系统的惯用客户端库从工作区检索日志数据:
入门
若要开始学习使用 KQL 编写日志查询,最佳方法是利用可用的教程和示例:
- Log Analytics 教程:介绍如何使用 Log Analytics 功能的教程。Log Analytics 是 Azure 门户中用来编辑和运行查询的工具。 它还允许你在不直接使用查询语言的情况下编写简单查询。 如果你以前没有使用过 Log Analytics,可从本教程着手,了解将在其他教程和示例中使用的工具。
- KQL 教程:引导性地介绍了基本的 KQL 概念和常用运算符。 这是着手了解语言本身和日志查询结构的最佳教程。
- 示例查询:描述 Log Analytics 中提供的示例查询。 你可以不加修改地使用这些查询,也可以将它们作为学习 KQL 的示例。
参考文档
KQL 文档包含所有命令和运算符的参考信息,可在 Azure 数据资源管理器文档中获得。 即使精通 KQL,你仍然会定期使用这些参考信息来研究以前没有用过的新命令和新方案。
语言差异
虽然 Azure Monitor 与 Azure 数据资源管理器使用相同的 KQL,但还是有一些区别。 KQL 文档将指定那些不受 Azure Monitor 支持或具有不同功能的运算符。 Azure Monitor 内容中介绍了特定于 Azure Monitor 的运算符。 以下部分列出了该语言不同版本之间的差异,以供快速参考。
Azure Monitor 中不支持的语句
Azure Monitor 中不支持的函数
- cluster()
- cursor_after()
- cursor_before_or_at()
- cursor_current()、current_cursor()
- database()
- current_principal()
- extent_id()
- extent_tags()
Azure Monitor 中不支持的运算符
Azure Monitor 中不支持的插件
Azure Monitor 中的其他运算符
下列运算符支持特定的 Azure Monitor 功能并且在 Azure Monitor 外部不可用: