管理LoongCollector采集Tag

Tag是日志服务中用于标识数据的字段,如来源IP、文件路径等。使用LoongCollector采集数据时,采集器会自动添加Tag。本文主要介绍了如何对这些 Tag 进行自定义操作,例如添加、删除、重命名。

使用限制

  • 本功能仅支持LoongCollector 3.0.10及以上版本。如使用Logtail或低版本LoongCollector,建议升级至LoongCollector最新版本。

  • 使用本功能会修改Tag的名称、存储位置。如在日志消费中依赖修改的Tag字段,可能造成不兼容问题。

Tag分类

Tag字段类似于字段索引,包含keyvalue两部分。如图所示:__tag__:__inode__:263554__tag__:__inode__Tag名称(key),263554Tag值(value)。

image

Tag根据来源主要分为两类:

  • Agent相关:与采集 Agent 本身相关,不依赖插件。 如 IP、主机名称等。

  • 输入插件相关:依赖输入插件,由输入插件提供并富化相关信息到日志中。如文件 inode、读取偏移量、Pod 名称、Namespace、镜像名称等。

image

计费说明

Tag字段本身不收费,但若将其设置为索引字段,则会产生费用,具体收费标准详见计费说明。关于字段索引的设置与删除操作,可参考创建索引

创建/修改 Tag名称

LoongCollector 对Tag进行了规范化,并实现了Tag处理功能。您可以配置高级参数,来控制 Tag 的添加、删除和重命名。

Agent相关Tag

该类 Tag 不依赖任何输入插件,属于全局参数。您可以在创建采集配置或者修改采集配置时添加配置参数,本文以修改采集配置为例,创建采集配置请参见创建采集配置

  1. 登录日志服务控制台Project列表区域,单击目标Project。

    image

  2. 单击日志存储下您的Logstore,在Logtail配置中添加Logtail配置,单击立即接入,本例使用正则-文本日志,表示将以正则匹配的方式解析文本日志。image

  3. Logtail配置列表中,单击目标Logtail采集配置。

  4. Logtail配置页面,单击编辑

  5. 在全局配置中单击其他全集配置,在高级参数后边单击image,配置Agent自身相关Tag。

    {
      "PipelineMetaTagKey": {
        "HOST_NAME": "sourceName",
        "AGENT_TAG": "__default__",
        "HOST_ID": "__default__",
        "CLOUD_PROVIDER": "__default__"
      }
    }

    image

    参数名

    类型

    是否必填

    默认值

    样例

    说明

    PipelineMetaTagKey

    object

    {"HOST_NAME":"__hostname__"}

    keyTag参数名,valueTag在日志中的字段名。当 value 为__default__时,取默认值。当 value 为空字符串时,表示删除 Tag。 可配置 Tag 如下:

    • HOST_NAME:主机名。默认添加,默认值为"__hostname__"。

    • AGENT_TAG:用户自定义标识。默认添加,默认值为"__user_defined_id__"。该参数仅适用于用户自定义标识机器组,而IP地址机器组不包含此参数。

    • HOST_ID:主机 ID。默认不添加,默认值为"__host_id__"。

    • CLOUD_PROVIDER:云厂商。默认不添加,默认值为"__cloud_provider__"。

输入插件相关Tag

该类Tag与输入插件强相关,它是输入插件配置的一部分,可通过输入配置的高级参数进行设置。您可以在创建采集配置或者修改采集配置时添加配置参数,本文以修改采集配置为例,创建采集配置请参见创建采集配置

重要

目前,该功能仅适用于文件采集和新版标准输出采集插件。

  1. 登录日志服务控制台Project列表区域,单击目标Project。

    image

  2. 单击日志存储下您的Logstore,在Logtail配置中添加Logtail配置,单击立即接入,本例使用正则-文本日志,表示将以正则匹配的方式解析文本日志。image

  3. Logtail配置列表中,单击目标Logtail采集配置。

  4. Logtail配置页面,单击编辑

  5. 在输入配置中单击其他输入配置,在高级参数后边单击image,配置输入插件相关Tag。

    重要
    • 在输入配置设置FileOffsetKey,采集配置的自动生成索引会将该Tag字段(__file_offset__)设置成索引字段,收费标准请参见计费说明。如果无需对该某字段建立索引,可以删除该字段的索引,同时保留其 Tag 字段。具体操作,请参见更新索引

    • Tag不会在查询分析页面的上层显示,具有独特的属性和功能,并且Tag名称为__file_offset__。如图所示:

      image

    {
      "Tags": {
        "FileInodeTagKey": "__default__",
        "FilePathTagKey": "__default__"
      },
      "FileOffsetKey":"__default__"
    }

    image

    参数名

    类型

    是否必填

    默认值

    样例

    说明

    Tags

    object

    {"FileInodeTagKey":"__inode__"}

    keyTag参数名,valueTag在日志中的字段名。当 value 为__default__时,取默认值。当 value 为空字符串时,表示删除 Tag。 可配置 Tag 如下:

    • FileInodeTagKey:文件 inode。 默认不添加,默认值为"__inode__"。

    • FilePathTagKey:文件路径。默认添加,默认值为"__path__"。

    以下参数仅当EnableContainerDiscovery参数取值为true时有效。

    • K8sNamespaceTagKey:文件所在容器命名空间。默认添加,默认值为"_namespace_"。

    • K8sPodNameTagKey:文件所在Pod 名。默认添加,默认值为"_pod_name_"。

    • K8sPodUidTagKey:文件所在 Pod UID。默认添加,默认值为"_pod_uid_"。

    • ContainerNameTagKey:文件所在容器名。默认添加,默认值为"_container_name_"。

    • ContainerIpTagKey:文件所在容器IP。默认添加,默认值为"_container_ip_"。

    • ContainerImageNameTagKey:文件所在容器镜像。默认添加,默认值为"_image_name_"。

    FileOffsetKey

    string

    __file_offset__

    日志在文件中的位置 Tag。默认不添加,默认值为__file_offset__。当 value 为__default__时,取默认值。当 value 为空字符串时,表示删除 Tag。

    重要

    EnableLogPositionMeta参数与 Tags.FileInodeTagKeyFileOffsetKey参数同时存在时,EnableLogPositionMeta参数会被忽略。

删除Tag

在高级参数配置中将该Tag设置为空字符串,从而实现删除Tag目的。

以下示例中AGENT_TAGvalue设置为空字符串,该Tag不会显示。具体操作,请参见创建/修改 Tag名称

{
  "PipelineMetaTagKey": {
    "HOST_NAME": "sourceName",
    "AGENT_TAG": "",
    "HOST_ID": "__default__",
    "CLOUD_PROVIDER": "__default__"
  }
}

查看Tag

  1. Project列表区域,单击目标Project。

    image

  2. 在对应的日志库右侧的图标图标,选择查询分析,查看当前Logstore的日志。

    image

  3. 如下图所示,Tag字段展示在日志页面的最上方一行。

    image

    • Agent相关Tag

      • __tag__:sourceName:设置的Tag keyPipelineMetaTagKey.HOST_NAME,默认value__tag__:__hostname__,设置value__tag__:sourceName,代表来源主机名称。

      • __tag__:__host_id__:设置的Tag keyPipelineMetaTagKey.HOST_NAME。该参数value使用默认值__host_id__

      • __tag__:__cloud_provider__:设置的Tag keyPipelineMetaTagKey.CLOUD_PROVIDER。该参数value使用默认值__cloud_provider__

      • __tag__:__user_defined_id__:设置的Tag keyAGENT_TAG,即该参数仅适用于用户自定义标识机器组,而IP地址机器组不包含此参数。

    • 输入插件相关Tag

      • __tag__:__inode__:设置的Tag keyTags.FileInodeTagKey,该参数value使用默认值__inode__

      • __tag__:__path__:设置的Tag keyTags.FilePathTagKey,该参数value使用默认值__path__

      • __file_offset__:设置的Tag keyFileOffsetKey,该参数value使用默认值__file_offset__

        重要
        • 在输入配置设置FileOffsetKey,采集配置的自动生成索引会将该Tag字段(__file_offset__)设置成索引字段,收费标准请参见计费说明。如果无需对该某字段建立索引,可以删除该字段的索引,同时保留其 Tag 字段。具体操作,请参见更新索引

        • Tag不会在查询分析页面的上层显示,具有独特的属性和功能,并且Tag名称为__file_offset__。如图所示:

          image

修改Tag

重要

目前,该功能仅适用于文件采集和新版标准输出采集插件。

通过SPL处理插件管理Tag字段,修改Tag的值。使用SPL处理Tag字段时,需要遵循以下规则:

  1. SPL将字段__tag__:作为 Tag 的标识,并在SPL处理过程中自动为所有Tag字段添加该前缀。因此,在编写SPL语句时,需确保字段名包含此前缀以正确引用 Tag 相关数据。

  2. SPL输出中,所有以Tag为前缀的字段均会被识别为Tag,这种方法可用于增加Tag。

本文在修改采集配置时添加SPL,以 __tag__ :sourceName 为例,为了更便捷地查询日志,可通过在日志采集配置中将值修改为user_module,从而用应用名称区分不同日志。创建采集配置时添加SPL请参见创建采集配置时添加SPL

  1. Project列表区域,单击目标Project。

    image

  2. 日志存储 > 日志库页签中,单击目标日志库前面的>,依次选择数据接入 > Logtail配置

    image

  3. Logtail配置列表中,单击目标Logtail配置后操作列的管理Logtail配置

  4. 单击页面上方的编辑,在页面下方的处理配置区域,处理配置处理模式选择SPL,然后单击保存

    SPL语句设置为:* | extend "__tag__:sourceName"='user_module'

  5. 在对应的日志库右侧的图标图标,选择查询分析,查看当前Logstore的日志。

    __tag__:sourceName的字段值为user_module

    image

相关文档

普通索引字段支持设置成Tag字段,Tag字段支持显示和隐藏。具体操作请参见Tag字段