在 Azure Monitor 的 Log Analytics 工作区中创建自定义字段(预览版)

重要

从 2023 年 3 月 31 日起,将禁用新建自定义域。 自定义字段功能将弃用,现有自定义字段将于 2026 年 3 月 31 日停止运行。 应 迁移至引入时转换,以继续解析日志记录。

目前,添加新的自定义字段时,可能需要长达 7 天才能显示数据。

使用 Azure Monitor 的 自定义字段 功能,可以通过添加自己的可搜索字段来扩展 Log Analytics 工作区中的现有记录。 自定义字段是从同一记录中的其他属性中提取的数据自动填充的。

图表显示在 Log Analytics 工作区,一个原始记录与已修改记录关联,并在修改后的记录中添加了属性值对到原始属性。

例如,以下示例记录在事件说明中隐藏着有用的数据。 将此数据提取到单独的属性中可使其可用于排序和筛选等作。

示例提取的屏幕截图。

注释

在预览版中,工作区中限制为 500 个自定义字段。 当此功能正式发布时,将扩展此限制。

创建自定义字段

创建自定义字段时,Log Analytics 必须了解用于填充其值的数据。 它使用名为 FlashExtract 的 Microsoft Research 技术快速识别此数据。 Azure Monitor 不需要您提供显式指令,而是通过您提供的示例学习您想要提取的数据。

以下部分提供了创建自定义字段的过程。 若要查看示例提取的演练,请转到 示例演练

注释

在 Log Analytics 工作区中,符合指定条件的记录被添加时,自定义字段将被填充。因此,该字段仅会出现在创建自定义字段后收集的记录上。 在创建自定义字段时,不会将自定义字段添加到数据存储中已有的记录。

步骤 1:识别分配了自定义字段的记录

第一步是标识获取自定义字段的记录。 首先使用 标准日志查询 ,然后选择一条记录以充当 Azure Monitor 从中学习的模型。 当指定要将数据提取到自定义字段中时,将在验证和优化条件的位置打开 字段提取向导

  1. 转到日志,使用查询检索包含自定义字段的记录。
  2. 选择一条 Log Analytics 将用作模型来提取数据以填充自定义字段的记录。 你将标识要从此记录中提取的数据,Log Analytics 将使用此信息来确定填充所有类似记录的自定义字段的逻辑。
  3. 右键单击记录,然后选择 “从中提取字段”。
  4. 字段提取向导被打开,所选记录显示在主示例列中。 将为那些在所选属性中具有相同值的记录定义自定义字段。
  5. 如果所选内容不完全是所需内容,请选择更多字段以缩小条件范围。 若要更改条件的字段值,必须取消并选择与所需条件匹配的其他记录。

步骤 2:执行初始提取

确定获取自定义字段的记录后,将标识要提取的数据。 Log Analytics 使用此信息来标识类似记录中的类似模式。 在 步骤 3 中,你将能够验证结果,并提供 Log Analytics 在分析中使用的更多详细信息。

  1. 突出显示示例记录中要用于填充自定义字段的文本。 然后,你将看到一个对话框,以提供字段的名称和数据类型,并执行初始提取。 将自动追加 _CF 字符。
  2. 单击“ 提取 ”以对收集的记录执行分析。
  3. 摘要 ”和 “搜索结果 ”部分显示提取的结果,以便检查其准确性。 摘要 显示用于标识记录的条件和标识的每个数据值的计数。 搜索结果 提供与条件匹配的记录的详细列表。

步骤 3:验证提取的准确性并创建自定义字段

执行初始提取后,Log Analytics 将基于已收集的数据显示其结果。 如果结果看起来准确,则可以创建自定义字段,无需进一步工作。 如果没有,可以优化结果,以便 Log Analytics 可以改进其逻辑。

  1. 如果初始提取中的任何值不正确,请单击不准确记录旁边的 “编辑” 图标,然后选择“ 修改此突出显示 ”以修改所选内容。
  2. 该条目将复制到主示例下方的“其他示例”部分。 可以在此处调整高亮显示,以帮助 Log Analytics 理解其应选择的内容。
  3. 单击“ 提取 ”以使用此新信息来评估所有现有记录。 根据这一新信息,除了您刚刚修改的记录外,其他记录的结果也可能会被修改。
  4. 继续添加更正,直到提取中的所有记录正确标识数据以填充新的自定义字段。
  5. 如果对结果感到满意,请单击“ 保存提取 ”。 自定义字段现已定义,但尚未添加到任何记录中。
  6. 等待与要收集的指定条件匹配的新记录,然后再次运行日志搜索。 新记录应具有自定义字段。
  7. 像使用任何其他记录属性一样使用自定义字段。 可以使用它来聚合和分组数据,甚至使用它来生成新的见解。

删除自定义域

可通过两种方法删除自定义字段。 第一个是查看完整列表时每个字段的 “删除 ”选项,如 步骤 2:执行初始提取。 另一种方法是检索记录,然后单击字段左侧的按钮。 该菜单具有删除自定义域的选项。

示例演练

以下部分演示了创建自定义字段的完整示例。 此示例提取 Windows 事件中的服务名称,这些名称指示服务更改状态。 这依赖于服务控制管理器在 Windows 计算机上系统启动时创建的事件。 如果要遵循此示例,则必须 收集系统日志的信息事件

我们输入以下查询,以从服务控制管理器返回事件 ID 为 7036 的所有事件,该事件指示服务启动或停止。

显示事件源和 ID 的查询的屏幕截图。

然后,右键单击事件 ID 为 7036 的任何记录,然后选择 “事件”中的“提取字段”。

显示“复制”和“提取”字段选项的屏幕截图,可在右键单击结果列表中的记录时使用。

此时将打开字段提取向导,其中“EventLog”和“EventID”字段被选定在主示例列中。 这表示将为系统日志中的事件定义自定义字段,事件 ID 为 7036。 这已足够,因此无需选择任何其他字段。

主示例的屏幕截图。

我们在 RenderedDescription 属性中突出显示服务的名称,并使用 Service 标识服务名称。 自定义字段将被命名为Service_CF。 在本例中,字段类型是一个字符串,因此我们可以保持不变。

字段标题的屏幕截图。

我们发现服务名称在某些记录中被正确识别,但在其他记录中没有被正确识别。 搜索结果显示 WMI 性能适配器的名称只有一部分未被选择。 摘要显示一条记录标识了模块安装程序,而不是 Windows 模块安装程序

显示“搜索结果”窗格中突出显示的服务名称部分以及摘要中突出显示的一个不正确的服务名称的屏幕截图。

我们从 WMI 性能适配器 记录开始。 单击其编辑图标,然后 修改此突出显示

修改高亮显示的屏幕截图。

我们将增加突出显示以包含 WMI 一词,然后重新运行提取。

其他示例的屏幕截图。

我们可以看到 WMI 性能适配器 的条目已更正,Log Analytics 还使用该信息更正 了 Windows 模块安装程序的记录。

显示“搜索结果”窗格中突出显示的完整服务名称以及摘要中突出显示的正确服务名称的屏幕截图。

现在,我们可以运行一个查询,用于验证 已创建Service_CF ,但尚未添加到任何记录中。 这是因为自定义字段不适用于现有记录,因此我们需要等待收集新记录。

初始计数的屏幕截图。

经过一段时间,会收集到新的事件,我们可以看到符合条件的记录中添加了 Service_CF 字段。

最终结果

现在,我们可以像使用任何其他记录属性一样使用自定义字段。 为了说明这一点,我们将创建一个查询,该查询按新的 Service_CF 字段进行分组,以检查哪些服务最活跃。

按查询分组的屏幕截图。

后续步骤