tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

自定义元数据

PDF
聚焦模式
字号
最后更新时间: 2025-12-03 11:22:42

概述

自定义元数据可以用来区分日志, 您可以在日志服务控制台配置采集规则时为日志定义元数据。CLS 当前支持以下几种自定义元数据:
机器组元数据
采集路径
自定义

前提条件

Loglistener 2.8.7及以上版本。

机器组元数据

当您需要采集多个机器组的日志,且目标采集路径均一致,这个时候您可以通过单一采集配置关联所有机器组,并通过机器组元数据来明确区分采集上来的日志是由哪个机器组产生的。

具体操作

1. 创建/修改机器组 时,为所选机器组配置符合该机器组特征的机器组元数据。



2. 创建采集配置,并关联带有机器组元数据的目标机器组。
3. 采集规则配置步骤中,开启自定义元数据,并将元数据类型设置为机器组元数据



4. 完成配置后,LogListener 上报日志时会将日志所在机器组的机器组的元数据属性以__TAG__.{机器组元数据键}:{机器组元数据值} 的形式上传至日志服务。


采集路径

当您的目标采集路径为模糊匹配时,您可提取文件路径中的指定字段作为自定义元数据, 并通过该自定义元数据明确区分日志来自于哪个文件路径。

具体操作

1. 采集规则配置中, 开启自定义元数据, 将元数据类型设置为采集路径。
2. 填写文件路径正则表达式。该正则表达式需完全匹配文件路径,同时请用"()"标识路径中目标 KEY 对应的正则表达式。



3. LogListener 采集日志时将视"()"为捕获组。LogListener 支持以下两种捕获组:
命名捕获组
命名捕获组通过?<>标识括号中正则提取的字段的名称,并以__TAG__.{字段名称}:{提取字段}的形式与日志一起上报。 如:(?<name>.*?)则代表通过.*?提取出来的字段将被命名为 name。最多支持5个命名捕获组。



非命名捕获组
非命名捕获组不会为提取字段进行特别命名,而是默认使用捕获组的顺位序号作为字段名称,并将以__TAG__.{i}:{提取字段} 的形式与日志一起上报,其中 i 为捕获组的序号。最多支持5个非命名捕获组。




样例

假设文件目录结构如下:
/logs
| - /appA/userA
| - access.log
| - /appB/userB
| - access.log
| - /appC/userC
| - access.log
如果配置目标采集路径时采用模糊匹配的方式将目录前缀设为/logs,文件名设为 access.log,三个 access.log 将一起被采集至同一日志主题。 这导致在检索分析时无法明确区分日志是来自于哪一个日志文件。然而我们可以通过以下正则表达式,提取文件路径中的值, 并作为元数据与日志一起上传。
正则表达式:
/logs/(.*?)/.*
通过以上正则提取,将上报以下元数据:
# /logs/appA/userA/access.log 中的日志将新增键值
__TAG__.1: appA

# /logs/appB/userB/access.log 中的日志将新增键值
__TAG__.1: appB

# /logs/appC/userC/access.log 中的日志将新增键值
__TAG__.1: appC
进一步, 您也可以使用以下正则表达式,通过多个命名捕获组从文件路径中提取多个值作为元数据上报, 并提取值命名。
正则表达式:
/logs/(?<APP>.*?)/(?<USER>.*?)/access.log
通过以上正则提取,将上报以下元数据:
# /logs/appA/userA/access.log 中的日志将新增键值
__TAG__.APP: appA
__TAG__.USER: userA

# /logs/appB/userB/access.log 中的日志将新增键值
__TAG__.APP: appB
__TAG__.USER: userB

# /logs/appC/userC/access.log 中的日志将新增键值
__TAG__.APP: appC
__TAG__.USER: userC

自定义

您也可以在配置采集规则时, 配置自定义的元数据。LogListener 在上报每一条日志时都会带上所指定的自定义元数据。

具体操作

1. 采集规则配置中,开启自定义元数据, 将元数据类型设置为自定义。
2. 填写自定义元数据的键与值。



3. LogListener 在上报每一条日志时都会带上所指定的自定义元数据。



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈