重要
从 2023 年 3 月 31 日起,将禁用新建自定义域。 自定义字段功能将弃用,现有自定义字段将于 2026 年 3 月 31 日停止运行。 应 迁移至引入时转换,以继续解析日志记录。
目前,添加新的自定义字段时,可能需要长达 7 天才能显示数据。
使用 Azure Monitor 的 自定义字段 功能,可以通过添加自己的可搜索字段来扩展 Log Analytics 工作区中的现有记录。 自定义字段是从同一记录中的其他属性中提取的数据自动填充的。
例如,以下示例记录在事件说明中隐藏着有用的数据。 将此数据提取到单独的属性中可使其可用于排序和筛选等作。
注释
在预览版中,工作区中限制为 500 个自定义字段。 当此功能正式发布时,将扩展此限制。
创建自定义字段
创建自定义字段时,Log Analytics 必须了解用于填充其值的数据。 它使用名为 FlashExtract 的 Microsoft Research 技术快速识别此数据。 Azure Monitor 不需要您提供显式指令,而是通过您提供的示例学习您想要提取的数据。
以下部分提供了创建自定义字段的过程。 若要查看示例提取的演练,请转到 示例演练。
注释
在 Log Analytics 工作区中,符合指定条件的记录被添加时,自定义字段将被填充。因此,该字段仅会出现在创建自定义字段后收集的记录上。 在创建自定义字段时,不会将自定义字段添加到数据存储中已有的记录。
步骤 1:识别分配了自定义字段的记录
第一步是标识获取自定义字段的记录。 首先使用 标准日志查询 ,然后选择一条记录以充当 Azure Monitor 从中学习的模型。 当指定要将数据提取到自定义字段中时,将在验证和优化条件的位置打开 字段提取向导 。
- 转到日志,使用查询检索包含自定义字段的记录。
- 选择一条 Log Analytics 将用作模型来提取数据以填充自定义字段的记录。 你将标识要从此记录中提取的数据,Log Analytics 将使用此信息来确定填充所有类似记录的自定义字段的逻辑。
- 右键单击记录,然后选择 “从中提取字段”。
- 字段提取向导被打开,所选记录显示在主示例列中。 将为那些在所选属性中具有相同值的记录定义自定义字段。
- 如果所选内容不完全是所需内容,请选择更多字段以缩小条件范围。 若要更改条件的字段值,必须取消并选择与所需条件匹配的其他记录。
步骤 2:执行初始提取
确定获取自定义字段的记录后,将标识要提取的数据。 Log Analytics 使用此信息来标识类似记录中的类似模式。 在 步骤 3 中,你将能够验证结果,并提供 Log Analytics 在分析中使用的更多详细信息。
- 突出显示示例记录中要用于填充自定义字段的文本。 然后,你将看到一个对话框,以提供字段的名称和数据类型,并执行初始提取。 将自动追加 _CF 字符。
- 单击“ 提取 ”以对收集的记录执行分析。
- “ 摘要 ”和 “搜索结果 ”部分显示提取的结果,以便检查其准确性。 摘要 显示用于标识记录的条件和标识的每个数据值的计数。 搜索结果 提供与条件匹配的记录的详细列表。
步骤 3:验证提取的准确性并创建自定义字段
执行初始提取后,Log Analytics 将基于已收集的数据显示其结果。 如果结果看起来准确,则可以创建自定义字段,无需进一步工作。 如果没有,可以优化结果,以便 Log Analytics 可以改进其逻辑。
- 如果初始提取中的任何值不正确,请单击不准确记录旁边的 “编辑” 图标,然后选择“ 修改此突出显示 ”以修改所选内容。
- 该条目将复制到主示例下方的“其他示例”部分。 可以在此处调整高亮显示,以帮助 Log Analytics 理解其应选择的内容。
- 单击“ 提取 ”以使用此新信息来评估所有现有记录。 根据这一新信息,除了您刚刚修改的记录外,其他记录的结果也可能会被修改。
- 继续添加更正,直到提取中的所有记录正确标识数据以填充新的自定义字段。
- 如果对结果感到满意,请单击“ 保存提取 ”。 自定义字段现已定义,但尚未添加到任何记录中。
- 等待与要收集的指定条件匹配的新记录,然后再次运行日志搜索。 新记录应具有自定义字段。
- 像使用任何其他记录属性一样使用自定义字段。 可以使用它来聚合和分组数据,甚至使用它来生成新的见解。
删除自定义域
可通过两种方法删除自定义字段。 第一个是查看完整列表时每个字段的 “删除 ”选项,如 步骤 2:执行初始提取。 另一种方法是检索记录,然后单击字段左侧的按钮。 该菜单具有删除自定义域的选项。
示例演练
以下部分演示了创建自定义字段的完整示例。 此示例提取 Windows 事件中的服务名称,这些名称指示服务更改状态。 这依赖于服务控制管理器在 Windows 计算机上系统启动时创建的事件。 如果要遵循此示例,则必须 收集系统日志的信息事件。
我们输入以下查询,以从服务控制管理器返回事件 ID 为 7036 的所有事件,该事件指示服务启动或停止。
然后,右键单击事件 ID 为 7036 的任何记录,然后选择 “事件”中的“提取字段”。
此时将打开字段提取向导,其中“EventLog”和“EventID”字段被选定在主示例列中。 这表示将为系统日志中的事件定义自定义字段,事件 ID 为 7036。 这已足够,因此无需选择任何其他字段。
我们在 RenderedDescription 属性中突出显示服务的名称,并使用 Service 标识服务名称。 自定义字段将被命名为Service_CF。 在本例中,字段类型是一个字符串,因此我们可以保持不变。
我们发现服务名称在某些记录中被正确识别,但在其他记录中没有被正确识别。 搜索结果显示 WMI 性能适配器的名称只有一部分未被选择。 摘要显示一条记录标识了模块安装程序,而不是 Windows 模块安装程序。
我们从 WMI 性能适配器 记录开始。 单击其编辑图标,然后 修改此突出显示。
我们将增加突出显示以包含 WMI 一词,然后重新运行提取。
我们可以看到 WMI 性能适配器 的条目已更正,Log Analytics 还使用该信息更正 了 Windows 模块安装程序的记录。
现在,我们可以运行一个查询,用于验证 已创建Service_CF ,但尚未添加到任何记录中。 这是因为自定义字段不适用于现有记录,因此我们需要等待收集新记录。
经过一段时间,会收集到新的事件,我们可以看到符合条件的记录中添加了 Service_CF 字段。
现在,我们可以像使用任何其他记录属性一样使用自定义字段。 为了说明这一点,我们将创建一个查询,该查询按新的 Service_CF 字段进行分组,以检查哪些服务最活跃。