Tag是日志服务中用于标识数据的字段,如来源IP、文件路径等。使用LoongCollector采集数据时,采集器会自动添加Tag。本文主要介绍了如何对这些 Tag 进行自定义操作,例如添加、删除、重命名。
使用限制
本功能仅支持LoongCollector 3.0.10及以上版本。如使用Logtail或低版本LoongCollector,建议升级至LoongCollector最新版本。
使用本功能会修改Tag的名称、存储位置。如在日志消费中依赖修改的Tag字段,可能造成不兼容问题。
Tag分类
Tag字段类似于字段索引,包含key和value两部分。如图所示:__tag__:__inode__:263554
,__tag__:__inode__
为Tag名称(key),263554
为Tag值(value)。
Tag根据来源主要分为两类:
Agent相关:与采集 Agent 本身相关,不依赖插件。 如 IP、主机名称等。
输入插件相关:依赖输入插件,由输入插件提供并富化相关信息到日志中。如文件 inode、读取偏移量、Pod 名称、Namespace、镜像名称等。
计费说明
Tag字段本身不收费,但若将其设置为索引字段,则会产生费用,具体收费标准详见计费说明。关于字段索引的设置与删除操作,可参考创建索引。
创建/修改 Tag名称
LoongCollector 对Tag进行了规范化,并实现了Tag处理功能。您可以配置高级参数,来控制 Tag 的添加、删除和重命名。
Agent相关Tag
该类 Tag 不依赖任何输入插件,属于全局参数。您可以在创建采集配置或者修改采集配置时添加配置参数,本文以修改采集配置为例,创建采集配置请参见创建采集配置。
登录日志服务控制台。在Project列表区域,单击目标Project。
单击日志存储下您的Logstore,在Logtail配置中添加Logtail配置,单击立即接入,本例使用正则-文本日志,表示将以正则匹配的方式解析文本日志。
在Logtail配置列表中,单击目标Logtail采集配置。
在Logtail配置页面,单击编辑。
在全局配置中单击其他全集配置,在高级参数后边单击
,配置Agent自身相关Tag。
{ "PipelineMetaTagKey": { "HOST_NAME": "sourceName", "AGENT_TAG": "__default__", "HOST_ID": "__default__", "CLOUD_PROVIDER": "__default__" } }
参数名
类型
是否必填
默认值
样例
说明
PipelineMetaTagKey
object
否
空
{"HOST_NAME":"__hostname__"}
key为Tag参数名,value为Tag在日志中的字段名。当 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与输入插件强相关,它是输入插件配置的一部分,可通过输入配置的高级参数进行设置。您可以在创建采集配置或者修改采集配置时添加配置参数,本文以修改采集配置为例,创建采集配置请参见创建采集配置。
目前,该功能仅适用于文件采集和新版标准输出采集插件。
登录日志服务控制台。在Project列表区域,单击目标Project。
单击日志存储下您的Logstore,在Logtail配置中添加Logtail配置,单击立即接入,本例使用正则-文本日志,表示将以正则匹配的方式解析文本日志。
在Logtail配置列表中,单击目标Logtail采集配置。
在Logtail配置页面,单击编辑。
在输入配置中单击其他输入配置,在高级参数后边单击
,配置输入插件相关Tag。
{ "Tags": { "FileInodeTagKey": "__default__", "FilePathTagKey": "__default__" }, "FileOffsetKey":"__default__" }
参数名
类型
是否必填
默认值
样例
说明
Tags
object
否
空
{"FileInodeTagKey":"__inode__"}
key为Tag参数名,value为Tag在日志中的字段名。当 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.FileInodeTagKey或FileOffsetKey参数同时存在时,EnableLogPositionMeta参数会被忽略。
删除Tag
在高级参数配置中将该Tag设置为空字符串,从而实现删除Tag目的。
以下示例中AGENT_TAG
的value设置为空字符串,该Tag不会显示。具体操作,请参见创建/修改 Tag名称。
{
"PipelineMetaTagKey": {
"HOST_NAME": "sourceName",
"AGENT_TAG": "",
"HOST_ID": "__default__",
"CLOUD_PROVIDER": "__default__"
}
}
查看Tag
在Project列表区域,单击目标Project。
在对应的日志库右侧的
图标,选择查询分析,查看当前Logstore的日志。
如下图所示,Tag字段展示在日志页面的最上方一行。
__tag__:sourceName:设置的Tag key为
PipelineMetaTagKey.HOST_NAME
,默认value为__tag__:__hostname__
,设置value为__tag__:sourceName
,代表来源主机名称。__tag__:__host_id__
:设置的Tag key为PipelineMetaTagKey.HOST_NAME
。该参数value使用默认值__host_id__
。__tag__:__cloud_provider__
:设置的Tag key为PipelineMetaTagKey.CLOUD_PROVIDER
。该参数value使用默认值__cloud_provider__
。__tag__:__user_defined_id__
:设置的Tag key为AGENT_TAG
,即该参数仅适用于用户自定义标识机器组,而IP地址机器组不包含此参数。
__tag__:__inode__
:设置的Tag key为Tags.FileInodeTagKey
,该参数value使用默认值__inode__
。__tag__:__path__
:设置的Tag key为Tags.FilePathTagKey
,该参数value使用默认值__path__
。__file_offset__
:设置的Tag key为FileOffsetKey
,该参数value使用默认值__file_offset__
。
修改Tag值
目前,该功能仅适用于文件采集和新版标准输出采集插件。
通过SPL处理插件管理Tag字段,修改Tag的值。使用SPL处理Tag字段时,需要遵循以下规则:
SPL将字段
__tag__:
作为 Tag 的标识,并在SPL处理过程中自动为所有Tag字段添加该前缀。因此,在编写SPL语句时,需确保字段名包含此前缀以正确引用 Tag 相关数据。在SPL输出中,所有以Tag为前缀的字段均会被识别为Tag,这种方法可用于增加Tag。
本文在修改采集配置时添加SPL,以 __tag__ :sourceName
为例,为了更便捷地查询日志,可通过在日志采集配置中将值修改为user_module,从而用应用名称区分不同日志。创建采集配置时添加SPL请参见创建采集配置时添加SPL。
在Project列表区域,单击目标Project。
在
页签中,单击目标日志库前面的>,依次选择 。在Logtail配置列表中,单击目标Logtail配置后操作列的管理Logtail配置。
单击页面上方的编辑,在页面下方的处理配置区域,处理配置中处理模式选择SPL,然后单击保存。
SPL语句设置为:
* | extend "__tag__:sourceName"='user_module'
在对应的日志库右侧的
图标,选择查询分析,查看当前Logstore的日志。
__tag__:sourceName
的字段值为user_module
。
相关文档
普通索引字段支持设置成Tag字段,Tag字段支持显示和隐藏。具体操作请参见Tag字段。