你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

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

重要

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

先决条件

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

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

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

  • 在 JSON 文件中至少有一条源数据记录的示例。 这用于在门户中创建自定义表,例如从虚拟机收集文本和 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 工作区的“表”屏幕。

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

    显示基于 DCR 的新自定义日志的屏幕截图。

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

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

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

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

    显示自定义日志表名称的屏幕截图。

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

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

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

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

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

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

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

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

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

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

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

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

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

删除表

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

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

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

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

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

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

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

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

添加或删除自定义列

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

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

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

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

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

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

  • 列名称仅在“分析”表和“基本”表中区分大小写。 辅助日志表引入过程中,若列名仅存在大小写差异,则会因列名重复而丢弃数据。

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

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

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

重要

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

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

  1. 从“日志分析工作区”菜单中,选择“表”。

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

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

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

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

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

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