在 Azure Monitor 日志中添加或删除表和列

使用数据收集规则,你可以筛选和转换日志数据,然后再将数据发送到 Azure 表或自定义表。 本文介绍如何创建自定义表并将自定义列添加到 Log Analytics 工作区中的表。

重要

每当更新表架构时,务必更新向表发送数据的数据收集规则。 在数据收集规则中定义的表架构决定了 Azure Monitor 如何将数据流式传输到目标表。 进行表架构更改时,Azure Monitor 不会自动更新数据收集规则。

先决条件

若要创建自定义表,你需要:

  • Log Analytics 工作区,你在其中至少拥有参与者权限

  • 数据收集终结点 (DCE)

  • 一个 JSON 文件,其中至少包含自定义表的一条示例记录。 这将如下所示:

    [
      {
        "TimeGenerated": "supported_datetime_format",
        "<column_name_1>": "<column_name_1_value>",
        "<column_name_2>": "<column_name_2_value>"
      },
      {
        "TimeGenerated": "supported_datetime_format",
        "<column_name_1>": "<column_name_1_value>",
        "<column_name_2>": "<column_name_2_value>"
      },
      {
        "TimeGenerated": "supported_datetime_format",
        "<column_name_1>": "<column_name_1_value>",
        "<column_name_2>": "<column_name_2_value>"
      }
    ]
    

    Log Analytics 工作区的所有表必须具有名为 TimeGenerated 的列。 如果示例数据具有名为 TimeGenerated 的列,则此值将用于标识记录的引入时间。 否则,会在表的 DCR 中的转换中添加一个 TimeGenerated 列。 有关 TimeGenerated 格式的信息,请参阅支持的日期/时间格式

创建自定义表

Azure 表具有预定义的架构。 若要将日志数据存储在不同的架构中,请使用数据收集规则来定义如何收集数据、转换数据以及将数据发送到 Log Analytics 工作区中的自定义表。

重要

自定义表的后缀为“_CL”;例如,tablename_CL。 Azure 门户会自动将 _CL 后缀添加到表名。 使用其他方法创建自定义表时,需要自行添加 _CL 后缀。 数据收集规则内数据流属性中的 tablename_CL 必须与 Log Analytics 工作区中的 tablename_CL 名称匹配

注意

若要了解如何为那些使用已弃用 Log Analytics 代理(也称 MMA 或 OMS)引入的日志创建自定义表,请参阅使用 Log Analytics 代理收集文本日志

若要在 Azure 门户中创建自定义表,请执行以下操作:

  1. 从“Log Analytics 工作区”菜单中,选择“表”。

    Screenshot that shows the Tables screen for a Log Analytics workspace.

  2. 选择“创建”,然后选择“新的自定义日志(基于 DCR)”。

    Screenshot showing new DCR-based custom log.

  3. 指定名称,并根据需要指定表的说明。 无需将 _CL 后缀添加到自定义表的名称中 - 它会自动添加到在门户中指定的名称中。

  4. 从“数据收集规则”下拉列表中选择现有的数据收集规则,或选择“创建新的数据收集规则”并指定新数据收集规则的“订阅”、“资源组”和“名称”。

    Screenshot showing new data collection rule.

  5. 选择一个数据收集终结点,然后选择“下一步”。

    Screenshot showing custom log table name.

  6. 选择“浏览文件”,找到具有新表的示例数据的 JSON 文件。

    Screenshot showing custom log browse for files.

    如果示例数据不包含 TimeGenerated 列,那么你将收到一条消息,显示正在使用此列创建转换。

  7. 如果要在将日志数据引入到表中之前对其进行转换,请执行以下操作:

    1. 选择“转换编辑器”。

      使用转换编辑器可以为传入数据流创建转换。 这是针对每个传入记录运行的 KQL 查询。 Azure Monitor 日志将查询结果存储在目标表中。

      Screenshot showing custom log data preview.

    2. 选择“运行”以查看结果。

      Screenshot showing initial custom log data query.

  8. 选择“应用”以保存转换并查看即将创建的表的架构。 选择“下一步”继续 。

    Screenshot showing custom log final schema.

  9. 验证最终详细信息,然后选择“创建”以保存自定义日志。

    Screenshot showing custom log create.

删除表

Log Analytics 中有几种类型的表,并且每个表的删除体验不同:

  • Azure 表 - 无法删除。 删除解决方案时,解决方案的一部分的表将从工作区中删除,但在为表定义的保留策略期间或不存在的保留策略期间,数据将保留在工作区中。 如果解决方案是在工作区中重新创建的,则这些表和以前引入的数据将再次可见。 若要避免产生费用,请在删除解决方案之前,为解决方案中的表定义保留策略为至少(4 天)。
  • 还原表 (table_RST) - 删除为还原预配的热缓存,但不会删除源表数据。
  • 搜索结果表 (table_SRCH) - 立即永久删除表和数据。
  • 自定义日志表 (table_CL) - 立即删除表定义,但数据在为表或工作区定义的保留策略期间保留在工作区中。 表的保留策略在 14 天内删除,工作区保留控制。 如果使用相同的名称和架构创建自定义日志表,该表和以前引入的数据将再次可见。 若要避免产生费用并从表中删除数据,请在删除表之前,为解决方案中的表定义保留策略为至少(4 天)。

若要从 Azure 门户中删除表,请执行以下操作:

  1. 在“Log Analytics 工作区”菜单中,选择“表”。

  2. 按名称搜索要删除的表,或在“类型”字段中选择“搜索结果”。

    Screenshot that shows the Tables screen for a Log Analytics workspace with the Filter by name and Type fields highlighted.

  3. 依次选择要删除的表、表右侧的省略号 (...)、“删除”,然后键入“是”来确认删除。

    Screenshot that shows the Delete Table screen for a table in a Log Analytics workspace.

添加或删除自定义列

可以修改自定义表的架构,并将自定义列添加到标准表,或者从标准表中删除列。

注意

列名必须以字母开头,最多可包含 45 个字母数字字符和下划线 (_)。 _ResourceIdid_ResourceId_SubscriptionIdTenantIdTypeUniqueIdTitle 是保留的列名。

若要将自定义列添加到 Log Analytics 工作区中的表,或者要删除列,请执行以下操作:

  1. 从“Log Analytics 工作区”菜单中,选择“表”。

  2. 选择要编辑的表右侧的省略号 (...),然后选择“编辑架构”。 此时会打开“架构编辑器”屏幕。

  3. 向下滚动到“架构编辑器”屏幕的“自定义列”部分。

    Screenshot showing the Schema Editor screen with the Add a column and Delete buttons highlighted.

  4. 若要添加新列,请执行以下操作:

    1. 选择“添加列”。
    2. 设置列名和说明(可选),然后从“类型”下拉列表中选择预期的值类型。
    3. 选择“保存”,以保存新列。
  5. 若要删除列,请选择要删除的列左侧的“删除”图标。

后续步骤

了解有关以下方面的详细信息: