创建基本 Azure Monitor 日志查询,从日志数据中提取信息

已完成

可以使用 Azure Monitor 日志查询从日志数据中提取信息。 查询是检查 Azure Monitor 捕获的日志数据的一个重要部分。

在示例方案中,运营团队使用 Azure Monitor 日志查询来检查其系统的运行状况。

使用 Log Analytics 编写 Azure Monitor 日志查询

你可以在 Microsoft Azure 门户中找到 Log Analytics 工具,并用它来运行示例查询或自行创建查询:

  1. 在 Azure 门户左侧的菜单窗格中,选择“监视”。

    Azure Monitor 页和更多选项一起显示,包括“活动日志”、“警报”、“指标”和“日志”。

  2. 选择“日志”。

    可在此处键入查询并查看输出。

    Azure Monitor 的屏幕截图,其中已打开新查询选项卡。

使用 Kusto 语言编写查询

可以使用 Kusto 查询语言来查询在 Azure 中运行的服务的日志信息。 Kusto 查询是处理数据并返回结果的只读请求。 通过使用旨在使语法易于阅读、编写和自动执行的数据流模型,可以用纯文本形式表示查询。 该查询使用以类似于 Azure SQL 数据库的层次结构组织的架构实体:数据库、表和列。

Kusto 查询包含一系列查询语句,这些查询语句用分号 (;) 分隔。 至少有一个语句是表格表达式语句。 表格表达式语句格式化以列和行表形式排列的数据。

表格表达式语句的语法具有从一个表格查询运算符到另一个表格查询运算符的表格数据流,从数据源开始。 数据源可以是数据库中的表,也可以是生成数据的运算符。 然后,数据将流过与竖线 (|) 分隔符绑定在一起的一组数据转换运算符。

例如,下面的 Kusto 查询有一个表格表达式语句。 该语句首先引用名为 Events 的表。 托管此表的数据库在此处是隐式的,并且是连接信息的一部分。 该表的数据存储在行中,数据由 StartTime 列的值进行筛选。 数据进一步由 State 列的值进行筛选。 然后查询返回得到的行计数。

Events
| where StartTime >= datetime(2018-11-01) and StartTime < datetime(2018-12-01)
| where State == "FLORIDA"  
| count

备注

Azure Monitor 使用的 Kusto 查询语言区分大小写。 语言关键字通常以小写编写。 在查询中使用表名或列名时,请确保大小写正确。

从所监视计算机的事件日志中捕获的事件只是数据源的其中一种类型。 Azure Monitor 提供了许多其他种数据源类型。 例如,Heartbeat 数据源向 Log Analytics 工作区报告所有计算机的运行状况。 你也可从性能计数器捕获数据,并更新管理记录。

以下示例会检索每台计算机的最新检测信号记录。 计算机由其 IP 地址进行标识。 在此示例中,使用 arg_max 函数的 summarize 聚合针对每个 IP 地址返回带有最新值的记录。

Heartbeat
| summarize arg_max(TimeGenerated, *) by ComputerIP