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

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

重要

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

注释

辅助日志功能尚未在由世纪互联运营的 Microsoft Azure 中正式发布 (GA)。 因此,强烈建议客户不要在生产环境中使用它。

先决条件

Action 所需权限
管理数据表 Microsoft.OperationalInsights/workspaces/* Log Analytics 工作区范围或更高级别的权限。
例如,由特权内置角色提供的 Log Analytics 参与者

若要将数据引入表,可能需要以下各项:

  • 数据收集终结点(DCE)。 有关详细信息,请参阅 DCE

  • 在 JSON 文件中至少有一条源数据记录的示例。 这用于在门户中创建自定义表,例如从 VM 收集文本和 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 ,该列用于标识记录的引入时间。 如果列缺失,则会自动将其添加到表的 DCR 中的转换中。 有关信息,请参阅 支持的日期/时间格式

创建自定义表

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

重要

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

警告

表名用于计费目的,因此不应包含敏感信息。

若要使用 Azure 门户创建自定义表模板,请执行以下操作:

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

    屏幕截图显示 Log Analytics 工作区的“表”屏幕。

  2. 选择“创建”

  3. 为表指定一个名称,并视需要为表指定一个描述。 无需将 _CL 后缀添加到自定义表的名称中 - 它会自动添加到在门户中指定的名称中。

  4. “表计划”下,选择 “分析 ”(默认值)、 “基本”或 “辅助”/“湖”。

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

    显示新数据收集规则的屏幕截图。

  6. 选择一个数据收集终结点,然后选择“下一步”。 如果选择了已与 DCE 关联的 DCR,则此下拉菜单灰显。

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

    显示文件的自定义日志浏览的屏幕截图。

    如果示例数据不包含 TimeGenerated 列,则会收到一条消息,指出正在使用此列创建转换。

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

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

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

      显示自定义日志数据预览的屏幕截图。

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

      显示初始自定义日志数据查询的屏幕截图。

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

    显示自定义日志最终架构的屏幕截图。

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

    显示自定义日志创建的屏幕截图。

删除表

可以删除不是 Azure 表的任何表,但删除数据的方式取决于表类型。

有关详细信息,请参阅删除 Log Analytics 工作区中的表时数据会发生什么情况

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

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

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

    显示 Log Analytics 工作区的“表”屏幕的屏幕截图,其中突出显示了“按名称进行筛选”和“类型”字段。

  3. 选择要删除的表,点击表右侧的省略号按钮 (...),选择删除,并通过输入yes确认删除。

    显示 Log Analytics 工作区中表的“删除表”屏幕的屏幕截图。

添加或删除自定义列

自定义表允许在创建表后添加或删除列来修改架构。 Azure 表仅允许添加和删除自定义列。

定义自定义表的列名时,请使用以下规则:

  • 列名必须以字母(A-Z 或 a-z)开头。

  • 在第一个字符之后,仅使用字母、数字或下划线。

  • 不要在列名中使用空格、点、短划线或其他标点符号。

  • 列名不支持非 ASCII 字母(例如 Ö、É、Ö)。

  • 对于 Analytics 和 Basic 表,列名仅区分大小写。 当遇到仅因大小写不同而导致的重复列名时,辅助日志表的引入会导致数据丢失。

  • 列名长度必须为 2 到 45 个字符。

  • Azure表中的自定义列名必须以 _CF 结尾。

  • GUID 类型是一个逻辑注释,但值实际上以字符串的形式存储和查询。 有关详细信息,请参阅 Azure Monitor Logs 中的 Column 数据类型

  • 不要使用与系统或保留列冲突的名称,包括idBilledSizeIsBillableInvalidTimeGeneratedTenantIdTitleTypeUniqueId_ItemId_ResourceGroup_ResourceId、、 _SubscriptionId、 。 _TimeReceived

重要

自定义表的架构规则比 常规 Kusto 标识符规则更严格。 Kusto 可以在查询中使用引号引用不寻常的属性名称,但自定义表架构仅接受列名中的字母、数字和下划线。

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

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

  2. 选择要编辑的表右侧的省略号 (...),然后选择“编辑架构”。

    此时会打开“架构编辑器”屏幕。

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

    屏幕截图显示“架构编辑器”屏幕,其中突出显示了“添加列”和“删除”按钮。

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

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