You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
采集配置管理
DescribeRule(弃用)
复制全文
下载 pdf
DescribeRule(弃用)
日志服务提供新版接口 DescribeRuleV2 用于查看指定的采集配置信息。​
使用说明​
  • 此接口的调用频率限制为 20 次/s,超出频率限制会报错 ExceedQPSLimit。​
  • 此接口返回信息限制如下:​
  • 机器数上限为10,000,即HostCount总数不超过10,000。​
  • 机器组上限为100,即HostGroupInfo个数不超过100。​
请求说明​
  • 请求方式:GET​
  • 请求地址:https://{tls-endpoint}/DescribeRule​
请求参数​
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。​
Query​
​
参数​
类型​
是否必选​
示例值​
描述​
RuleId​
String​
是​
faf6d529-e75e-457f-a23a-9c4203a6dff3xx​
采集配置的 ID。​
​
返回参数​
下表仅列出本接口特有的返回参数。更多信息请参见返回结构。​
​
参数​
类型​
示例值​
描述​
ProjectId​
String​
c7***********​
采集配置所属的项目的 ID。​
ProjectName​
String​
testname​
采集配置所属的项目的名称。​
TopicId​
String​
4a**********​
采集配置所属的日志主题的 ID。​
TopicName​
String​
testname​
采集配置所属的日志主题的名称。​
RuleInfo​
Object of RuleInfo​
/​
采集配置的信息。​
HostGroupInfos​
Array of HostGroupInfo​
/​
采集配置绑定的机器组的信息。​
​
RuleInfo​
​
参数​
类型​
示例值​
描述​
Paths​
Array of String​
["/data/nginx/log/**/access.log"]​
采集路径列表。​
Pause​
Integer​
0​
采集配置的运行状态。​
  • 0:运行中。​
  • 1:已暂停。​
RuleId​
String​
faf******​
采集配置的 ID。​
LogType​
String​
delimiter_log​
采集模式。​
  • minimalist_log:单行全文模式。​
  • json_log:JSON 模式。​
  • delimiter_log:分隔符模式。​
  • multiline_log:多行全文模式。​
  • fullregex_log:完整正则模式。​
TopicId​
String​
4a************​
采集配置所属于的日志主题的 ID。​
RuleName​
String​
testname​
采集配置的名称。​
InputType​
Integer​
0​
采集类型。​
  • 0:宿主机日志文件​
  • 1:K8s 容器标准输出​
  • 2:K8s 容器内日志文件​
LogSample​
String​
2018-05-22 15:35:53.850 INFO XXXX​
日志样例。​
TopicName​
String​
topictestname​
采集配置所属于的日志主题的名称。​
CreateTime​
String​
2021-08-18 13:32:23​
采集配置创建的时间。​
ModifyTime​
String​
2021-08-18 13:32:23​
采集配置修改的时间。​
ExtractRule​
Object of ExtractRule​
/​
提取规则。​
ExcludePaths​
Array of ExcludePath​
/​
采集黑名单列表。​
ContainerRule​
Object of ContainerRule​
/​
容器采集规则。​
UserDefineRule​
Object of UserDefineRule​
/​
用户自定义的采集规则。​
RuleType​
Integer​
1​
采集规则的类型标识,用于区分不同类型的采集规则。​
​
HostGroupInfo​
​
参数​
类型​
示例值​
描述​
HostCount​
Integer​
2​
机器数量。​
RuleCount​
Integer​
1​
绑定的采集配置的数量。​
AutoUpdate​
Boolean​
true​
机器组服务器中安装的 LogCollector 是否开启自动升级功能。​
  • true:日志服务将会在每天的指定时间段进行升级前检查,若满足升级条件,则自动升级 LogCollector,无需手动操作。​
  • false:(默认)LogCollector 不自动升级,如需使用更高版本的 LogCollector,请参考升级 LogCollector操作。​
CreateTime​
String​
2021-08-18 13:32:23​
机器组创建的时间。​
ModifyTime​
String​
2021-08-18 13:32:23​
机器组修改的时间。​
HostGroupId​
String​
0fd**********​
机器组的 ID。​
HostGroupName​
String​
testname​
机器组的名称。​
HostGroupType​
String​
IP​
机器组的类型。​
  • IP:机器 IP。​
  • Label:机器标识。​
UpdateEndTime​
String​
"02:00"​
LogCollector 自动升级的结束时间。​
HostIdentifier​
String​
label​
机器的标识符。​
IamProjectName​
String​
default​
机器组所属的 IAM 项目。​
ServiceLogging​
Boolean​
true​
是否开启 Logcollector 服务日志功能。​
  • true:开启。​
  • false:(默认)关闭。​
UpdateStartTime​
String​
"00:00"​
LogCollector 自动升级的开始时间。​
说明​
  • 仅在 AutoUpdate 为 true 时需要设置。​
  • 自动升级时间建议设置为业务低峰期,自动升级过程中可能会重启LogCollector,但不会丢失日志。​
AgentLatestVersion​
String​
"2.3.4"​
日志服务发布的 LogCollector 最新版本号。​
NormalHeartbeatStatusCount​
Integer​
1​
心跳正常的机器数量。​
AbnormalHeartbeatStatusCount​
Integer​
1​
心跳异常的机器数量。​
​
ExtractRule​
​
参数​
类型​
示例值​
描述​
Keys​
Array of String​
[ "time", "", "level", "msg" ]​
日志字段名称(Key)列表。​
  • 当且仅当 LogType 为 delimiter_log 或 fullregex_log 时有效。​
  • 支持配置最多 100 个字段名称。​
  • 当 LogType 为 delimiter_log时,不能配置重复的字段名称,不能指定全部字段名称为空。​
  • 当 LogType 为 fullregex_log 时,不能配置重复的字段名称,不能指定字段名称为空。​
Quote​
String​
"​
引用符。被引用符包裹的内容不会被分隔而是会被解析为一个完整的字段。当且仅当 LogType 为 delimiter_log 时有效。​
TimeKey​
String​
request_time​
日志时间字段的字段名称。如果将日志中的指定时间字段作为日志时间戳,则需要填写 TimeKey 和 TimeFormat。​
TimeKey 和 TimeFormat 必须成对出现。​
LogRegex​
String​
[(\d+-\d+-\w+:\d+:\d+,\d+)]\s[(\w+)]\s(.*)​
整条日志需要匹配的正则表达式。​
  • 当且仅当采集的日志类型为 fullregex_log 时有效。​
  • 必须是合法的正则表达式。​
TimeZone​
String​
GMT+08:00​
时区,支持机器时区(默认)和自定义时区。其中,自定义时区支持 GMT 和 UTC。​
  • GMT 格式:GMT+08:00。​
  • UTC 格式:Asia/Shanghai。​
Delimiter​
String​
#​
日志分隔符。当且仅当 LogType 为 delimiter_log 时有效。​
BeginRegex​
String​
[(\d+-\d+-\w+:\d+:\d+,\d+)]\s[(\w+)]\s(.*)​
第一行日志需要匹配的正则表达式。​
  • 当且仅当 LogType 为 multiline_log 或 fullregex_log 时有效。​
  • 必须是合法的正则表达式。​
TimeFormat​
String​
%Y-%m-%dT%H:%M:%S,%f​
时间字段的解析格式。如果将日志中的指定时间字段作为日志时间戳,则需要填写 TimeKey 和 TimeFormat。​
  • TimeKey 和 TimeFormat 必须成对出现。​
LogTemplate​
Object of LogTemplate​
{ "Type": "Nginx", "Format": "format main '$remote_addr - $remote_user [$time_local] \"$request\" $request_time $request_length $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\"';" }​
根据指定的日志模板自动提取日志字段。​
UnMatchLogKey​
String​
LogParseFailed​
当上传解析失败的日志时,解析失败的日志的 key 名称。​
UnMatchUpLoadSwitch=true 和 UnMatchLogKey 必须成对出现。​
FilterKeyRegex​
Array of FilterKeyRegex​
/​
过滤规则列表。​
  • 当 LogType 为 minimalist_log 或 multiline_log 时,最多能够配置 1 条过滤规则,并且过滤字段的名字 key 必须为 content。​
  • 当 LogType 为 delimiter_log、json_log 或 fullregex_log 时,最多能够配置 5 条过滤规则,并且过滤字段的名字 key 不能重复、不能为空。过滤字段的日志内容需要匹配的正则表达式必须是合法的正则表达式,并且长度限制为 256 个字符。​
TimeExtractRegex​
String​
[0-9]{0,2}\/[0-9a-zA-Z]+\/[0-9:,]+​
提取时间的正则表达式,用于提取 TimeKey字段中的时间值并解析为对应的采集时间。​
UnMatchUpLoadSwitch​
Boolean​
true​
是否上传解析失败的日志。UnMatchUpLoadSwitch=true 和 UnMatchLogKey 必须成对出现。​
  • true:上传解析失败的日志。​
  • false:不上传解析失败的日志。​
EnableNanosecond​
Boolean​
true​
是否启用纳秒精度时间功能。开启后,解析日志时间时会解析并上报纳秒精度的时间。​
  • true:开启纳秒精度时间。​
  • false:关闭纳秒精度时间。​
TimeSample​
String​
2006-01-02T15:04:05Z07:00​
时间样例。​
用于判断填写的时间解析格式是否正确。​
​
ExcludePath​
​
参数​
类型​
示例值​
描述​
Type​
String​
Path​
采集路径类型。​
  • File:文件名称。​
  • Path:目录。​
Value​
String​
/accesslog​
采集路径。必须指定为绝对路径。​
  • 当 Type 是 Path 时,Value 表示一个目录。​
  • 当 Type 是 File 时,Value 表示一个文件名称。​
​
ContainerRule​
​
参数​
类型​
示例值​
描述​
EnvTag​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
是否将环境变量作为日志标签,添加到原始日志数据中。开启后,日志服务将在日志中新增容器环境变量相关字段,设置多个键值对时,表示添加多个字段。 例如设置 Key 为 source,设置 Value为data_source,假设容器包含环境变量 source=DC,那么将在日志中新增字段 __tag__data_source__: DC。​
Stream​
String​
all​
采集信息。​
  • stdout:采集容器标准输出 stdout。​
  • stderr:采集容器标准错误 stderr。​
  • all:同时采集容器标准输出 stdout 和容器标准错误 stderr。​
KubernetesRule​
Object of KubernetesRule​
{ "NamespaceNameRegex": ".*test.*", "WorkloadType": "Deployment", "WorkloadNameRegex": ".*test.*", "IncludePodLabelRegex": { "Key1": "Value1", "Key2": "Value2" }, "ExcludePodLabelRegex": { "Key1": "Value1", "Key2": "Value2" }, "PodNameRegex": ".*test.*", "LabelTag": { "Key1": "Value1", "Key2": "Value2" } }​
Kubernetes 容器的采集规则。​
ContainerNameRegex​
String​
.*test.*​
待采集的容器名称。若未指定容器名称,表示采集机器组中全部容器。 支持正则匹配,例如设置容器名称为 ^(container-test)$,表示采集所有名称为 container-test的容器。​
ExcludeContainerEnvRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
容器环境变量黑名单用于指定不采集的容器范围,不启用黑名单时表示采集全部容器。 如果启用容器环境变量黑名单,则 Key 必选,Value 可选。​
  • Value 为空,表示不采集所有在容器环境变量中包含 Key 的容器。​
  • Value 不为空,表示采集时只排除匹配键值对的容器,即只排除在容器环境变量中包含 Key、并且其值匹配 Value 的容器。 Value 支持正则匹配,例如设置 Key 为 module,设置 Value 为 ^(tcp|udp)$,表示不采集在容器环境变量中包含 module:tcp、module:udp 的容器。​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即容器环境变量只要符合任一键值对,就会被排除出采集范围。​
  • 启用容器环境变量黑名单时,Key 不能重复。​
IncludeContainerEnvRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
容器环境变量白名单通过容器环境变量指定待采集的容器,不启用白名单时表示指定采集全部容器。 启用容器环境变量的白名单时,需要填写键值对。其中 Key 必选,Value 可选。​
  • Value 为空:采集所有在容器环境变量中包含 Key 的容器。​
  • Value 不为空:只采集在容器环境变量中包含 Key 并且其值匹配 Value 的容器。 Value 支持正则匹配。例如设置 Key 为 module,设置 Value 为 ^(tcp|udp)$,表示只采集在容器环境变量中包含 module:tcp、module:udp 的容器。​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即容器环境变量只要符合任一 Key-Value 对就会被列为采集范围。​
  • 启用容器环境变量白名单时,Key 不能重复。​
ExcludeContainerLabelRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
容器 Label 黑名单用于指定不采集的容器范围,不启用黑名单时表示采集全部容器。 如果启用容器 Label 黑名单,则 Key 必选,Value 可选。​
  • Value 为空,表示不采集所有在容器 Label 中包含 Key 的容器。​
  • Value 不为空,表示采集时只排除匹配键值对的容器,即只排除在容器 Label 中包含 Key、并且其值匹配 Value 的容器。 Value支持正则匹配,例如设置 Key 为 app,设置 Value 为 ^(test1|test2)$,表示不采集在容器 Label 中包含 app:test1、app:test2 的容器。​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即容器 Label 只要符合任一键值对,就会被排除出采集范围。​
  • 启用容器 Label 黑名单时,Key不能重复。​
IncludeContainerLabelRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
容器 Label 白名单通过容器 Label 指定待采集的容器,不启用白名单时指定采集全部容器。 启用容器 Label 的白名单时,需要填写键值对。其中 Key 必选,Value 可选。​
  • Value 为空:采集所有在容器 Label 中包含 Key 的容器。​
  • Value 不为空:只采集在容器 Label 中包含 Key 并且其值匹配 Value 的容器。 Value 支持正则匹配。例如设置Key 为 app,设置 Value 为 ^(test1|test2)$,表示只采集在容器 Labe l中包含 app:test1、app:test2 的容器。​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即容器 Label 只要符合任一 Key-Value 对就会被列为采集范围。​
  • 启用容器 Label 白名单时,Key 不能重复。​
​
UserDefineRule​
​
参数​
类型​
示例值​
描述​
Fields​
JSON Map​
{"ClusterID":"dabaad5f-7a10-4771-b3ea-d821f73e****"}​
为日志添加常量字段。常量字段需遵循以下限制:​
  • 支持上传最多 5 个常量字段。​
  • 字段名(Key)不可重复,不可为空。长度限制为 1~128 字符,包括英文字母、数字、和特殊字符(-_./),且不能以下划线开头。​
  • 字段值(Value)不可为空,长度最大为 512 KiB。​
Plugin​
Object of Plugin​
{"processors":[{"json":{"field":"__content__","trim_keys":{"mode":"all","chars":"#"},"trim_values":{"mode":"all","chars":"#"},"allow_overwrite_keys":true,"allow_empty_values":true}​
LogCollector 插件配置。启用插件配置之后,可以添加一个或多个 LogCollector 处理器插件,解析结构复杂或不固定的日志。​
Advanced​
Object of Advanced​
{ "CloseInactive": 10 }​
LogCollector 扩展配置。​
RawLogKey​
String​
raw​
原始日志字段名称。​
仅在 EnableRawLog 设置为 true 时生效,RawLogKey 默认为 __raw__,表示原始的日志数据将被封装在 __raw__字段中,和解析后的日志数据一起上传到日志服务中。​
TailFiles​
Boolean​
true​
LogCollector 采集策略,即指定 LogCollector 采集增量日志还是全量日志。默认为 false,表示采集全量日志。​
  • true:增量采集。LogCollector 采集日志时,只采集文件内新增的内容。监控范围内的日志文件写入新的日志时,触发 LogCollector 日志采集行为。​
  • 对于首次采集的日志文件,LogCollector 会根据您指定的增量阈值 TailSizeKb ,自动确认采集的位置。​
  • 如果新文件大小不超过您所指定的增量阈值,从新文件的起始位置开始首次采集。​
  • 如果新文件大小超过您所指定的增量阈值,从新文件的末尾减去增量阈值后的位置开始首次采集,即仅采集增量日志。​
  • 对于非首次采集的日志文件,LogCollector 会根据 Checkpoint 确定采集位置,继续采集。​
  • false:(默认)全量采集。LogCollector 从每个文档的起始位置开始采集日志,此时 LogCollector 会采集历史日志数据。​
HostnameKey​
String​
hostname​
hostname 字段名称。​
仅在 EnableHostname 为 true 时需要设置。​
EnableRawLog​
Boolean​
true​
是否上传原始日志。​
  • true:上传原始日志。​
  • false:(默认)不上传原始日志。​
ShardHashKey​
Object of ShardHashKey​
{ "HashKey": "3C" }​
路由日志分区的规则。​
  • 未设置此参数,表示使用默认的负载均衡模式写入日志,将数据包写入当前可用的任一 Shard 中。​
  • 设置此参数表示采集日志时使用 HashKey 路由 Shard 模式,日志服务会将数据写入到包含指定 Key 值的 Shard 中。​
ParsePathRule​
Object of ParsePathRule​
{ "PathSample": "/data/nginx/log/dabaad5f-7a10/tls/app.log", "Regex": "\\/data\\/nginx\\/log\\/(\\w+)-(\\w+)\\/tls\\/app\\.log", "Keys": ["instance-id", "pod-name"] }​
解析采集路径的规则。设置规则后,将通过规则中指定的正则表达式提取采集路径中的字段,并将其作为元数据添加到日志数据中。​
说明​
采集容器标准输出时,不支持指定该参数。​
EnableHostname​
Boolean​
true​
是否上传 hostname 字段,默认为关闭状态。​
  • true:在原始日志中增加一个字段,用于记录日志源的 hostname。此时应通过 HostnameKey 指定 hostname 字段名。​
  • false:(默认)不添加 hostname 字段。​
HostGroupLabelKey​
String​
host_group_label​
用于存储机器组 Label 信息的字段名称。​
EnableHostGroupLabel​
Boolean​
true​
是否将机器组的 Label 信息上传到日志服务,默认为关闭状态。​
  • true:LogCollector 会将机器组的 Label 信息上传到指定字段中。您可以在 HostGroupLabelKey 参数中指定字段名称。​
  • false(默认):不上传机器组 Label 信息。​
TailSizeKb​
Integer​
1024​
增量采集的回溯阈值,单位为 KiB。​
当 LogCollector 采集策略是增量采集时,对于首次采集的日志文件:​
  • 如果新日志文件的大小不超过 TailSizeKb 值,从新日志文件的起始位置开始首次采集。​
  • 如果新日志文件的大小超过 TailSizeKb 值,从新日志文件的末尾减去 TailSizeKb值后的位置开始首次采集。​
IgnoreOlder​
Integer​
7​
忽略多久没有更新的日志文件, 单位为小时。​
MultiCollectsType​
String​
RuleID​
允许多次采集日志文件。​
  • 空:使用日志文件 ID(包括文件 inode、 device 和前 N 个字节的 checksum)来唯一标识日志文件。​
  • RuleID:使用采集规则 ID 和日志文件 ID 来唯一标识日志文件。​
  • TopicIDRuleName:使用日志主题ID、采集规则 Name 和日志文件 ID 来唯一标识日志文件。​
​
LogTemplate​
​
参数​
类型​
示例值​
描述​
Type​
String​
Nginx​
日志模板的类型。支持如下类型:​
  • Nginx:Nginx类型的日志模板。​
Format​
String​
log_format main '$remote_addr - $remote_user [$time_local] "$request" $request_time $request_length $status $body_bytes_sent "$http_referer" "$http_user_agent"';​
日志模板的格式。​
​
FilterKeyRegex​
​
参数​
类型​
示例值​
描述​
Key​
String​
__content__​
过滤字段的名称。​
Regex​
String​
.*ERROR.*​
过滤字段的日志内容需要匹配的正则表达式。​
​
KubernetesRule​
​
参数​
类型​
示例值​
描述​
LabelTag​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
是否将 Kubernetes Label 作为日志标签,添加到原始日志数据中。开启后,日志服务将在日志中新增 Kubernetes Pod Label 相关字段。设置多个键值对时,表示添加多个字段。 例如设置 Key 为 source,设置 Value 为 data_source,假设 Pod 包含 Labelsource=DC,那么将在日志中新增字段 __tag__data_source__: DC。​
PodNameRegex​
String​
.*test.*​
Pod名称用于指定待采集的容器。不指定 Pod 名称时,表示采集全部容器。 Pod名称支持正则匹配,例如设置 Pod 名称为 ^(http.*)$,表示采集以 http 开头的 Pod 下面的所有容器。​
WorkloadType​
String​
Deployment​
通过工作负载的类型指定采集的容器,仅支持选择一种类型。未指定类型时,表示采集全部类型的容器。 支持的工作负载类型如下:​
  • Deployment:无状态负载​
  • StatefulSet:有状态负载​
  • DaemonSet:守护进程​
  • Job:任务​
  • CronJob:定时任务​
AnnotationTag​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
是否将 Kubernetes Annotation 作为日志标签,添加到原始日志数据中。开启后,日志服务将在日志中新增 Kubernetes Pod Annotation 相关字段。设置多个键值对时,表示添加多个字段。例如设置 Key 为 sink,设置 Value 为 data_sink,假设 Pod 包含 Annotation sink=ck,那么将在日志中新增字段 __tag__data_sink__: ck。​
WorkloadNameRegex​
String​
.*test.*​
通过工作负载的名称指定待采集的容器。未指定工作负载名称时,表示采集全部容器。 工作负载名称支持正则匹配。例如设置工作负载名称为 ^(http.*)$,表示采集以 http 开头的工作负载下面的所有容器。​
NamespaceNameRegex​
String​
.*test.*​
待采集的 Kubernetes Namespace 名称,不指定 Namespace 名称时表示采集全部容器。 Namespace 名称支持正则匹配。例如设置 Namespace 名称为 ^(tcp|udp)$,表示采集 tcp 命名空间、udp命名空间下面的所有容器。​
ExcludePodLabelRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
通过 Pod Label 黑名单指定不采集的容器,不启用表示采集全部容器。 如果需要设置 Pod Label 黑名单,则 Key 必填,Value 选填。​
  • Value 为空,表示采集时排除所有在 Pod Label 中包含 Key 的容器。​
  • Value 不为空,表示采集时只排除在 Pod Label 中包含 Key 并且其值匹配 Value 的容器。 Value 支持正则匹配,例如设置 Key 为 module,设置 Value 为 ^(tcp|udp)$,表示不采集在 Pod Label 中包含 module:tcp、module:udp 的容器。​
说明​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即 Pod Label 只要符合任一键值对,就会被排除出采集范围。​
  • 启用 Pod Label 黑名单时,Key 不能重复。​
  • 正则模糊匹配时,必须添加.*。例如^(http.*)$,表示匹配以 http 开头的字符​
IncludePodLabelRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
Pod Label 白名单用于指定待采集的容器。未开启 Pod Label 白名单时,表示采集全部容器。 如果需要设置 Pod Label 白名单,则 Key 必填:​
  • Value 为空,表示采集所有在 Pod Label 中包含 Key 的容器。​
  • Value 不为空,表示只采集在 Pod Label 中包含 Key 并且其值匹配 Value 的容器,支持正则匹配。 Value 支持正则匹配,例如设置 Key 为 module,设置 Value 为 ^(tcp|udp)$,表示只采集在 Pod Label 中包含 module:tcp、module:udp 的容器。​
说明​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即 Pod Label 只要符合任一键值对,就会被列为采集范围。​
  • 启用 Pod Label 白名单时,Key 不能重复。​
  • 正则模糊匹配时,必须添加.*。例如^(http.*)$,表示匹配以 http 开头的字符​
EnableAllLabelTag​
Boolean​
true​
是否将全部的 Kubernetes Label 作为日志标签,添加到原始日志数据中。开启后,日志服务将在日志中新增 Kubernetes Pod 中全部 Label 相关的字段。​
例如 Pod 包含 Label source=DC 和 destination=CS,那么将在日志中新增字段 __tag__source__: DC 和 __tag__destination__: CS。​
ExcludePodAnnotationRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
Pod Annotation 黑名单用于指定不采集的容器。​
如果需要设置 Pod Annotation 黑名单,那么 Key 必填,Value 选填。​
  • Value 为空,表示 Pod Annotation 中包含 Key 的 Pod 下的容器都被排除。​
  • Value 不为空,表示 Pod Annotation 中包含 Key 并且其值匹配 Value 的 Pod 下的容器才被排除。​
Value 默认为字符串匹配,即只有 Value 和 Pod Annotation 的值完全相同才会匹配。如果该值以 ^ 开头并且以 $ 结尾,则为正则匹配。例如设置 Key 为 app,设置 Value 为 ^(test1|test2)$,表示匹配 Pod Annotation 中包含 app:test1、app:test2 的Pod 下的容器。​
说明​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即 Pod Annotation 只要符合任一键值对,就会被列为采集范围。​
  • 启用 Pod Annotation 黑名单时,Key 不能重复。​
  • 正则模糊匹配时,必须添加.*。例如^(http.*)$,表示匹配以 http 开头的字符​
IncludePodAnnotationRegex​
JSON Map​
{ "Key1": "Value1", "Key2": "Value2" }​
Pod Annotation 白名单用于指定待采集的容器。​
如果需要设置 Pod Annotation 白名单,则 Key 必填,Value 选填。​
  • Value 为空,表示 Pod Annotation 中包含 Key 的 Pod 下的容器都匹配。​
  • Value 不为空,表示 Pod Annotation 中包含 Key 并且其值匹配 Value 的 Pod 下的容器才匹配。​
Value 默认为字符串匹配,即只有 Value 和 Pod Annotation 的值完全相同才会匹配。如果该值以 ^ 开头并且以 $ 结尾,则为正则匹配。例如设置 Key 为 app,设置 Value 为 ^(test1|test2)$,表示匹配 Pod Annotation 中包含 app:test1、app:test2 的 Pod 下的容器。​
说明​
  • 多个 Key-Value 对之间的逻辑关系为逻辑或,即 Pod Annotation 只要符合任一键值对,就会被列为采集范围。​
  • 启用 Pod Annotation 白名单时,Key 不能重复。​
  • 正则模糊匹配时,必须添加.*。例如^(http.*)$,表示匹配以 http 开头的字符​
​
Plugin​
​
参数​
类型​
示例值​
描述​
processors​
Array of JSON Map​
{ "processors":[ { "json":{ "field":"__content__", "trim_keys":{ "mode":"all", "chars":"#" }, "trim_values":{ "mode":"all", "chars":"#" }, "allow_overwrite_keys":true, "allow_empty_values":true } } ] }​
LogCollector 插件。支持的插件列表及参数说明请参考 LogCollector 插件概述。​
​
Advanced​
​
参数​
类型​
示例值​
描述​
CloseEOF​
Boolean​
true​
读取至日志文件的末尾之后,是否释放该日志文件的句柄。默认为 false。​
CloseRemoved​
Boolean​
true​
日志文件被移除之后,是否释放该日志文件的句柄。默认为 false。​
CloseRenamed​
Boolean​
true​
日志文件被重命名之后,是否释放该日志文件的句柄。默认为 false。​
CloseTimeout​
Integer​
1800​
LogCollector 监控日志文件的最大时长。单位为秒,默认为0秒,表示不限制 LogCollector 监控日志文件的时长。​
​
LogCollector 开始监控日志文件时开始计时,超出指定时长后,无论日志文件是否读取完毕,立即释放该日志文件的句柄,结束监控。​
CloseInactive​
Integer​
10​
释放日志文件句柄的等待时间。当日志文件超过指定时间仍然没有写入新的日志时,释放该日志文件的句柄。​
​
单位为秒,取值范围为 1~300 秒,默认为 60 秒。​
NoLineTerminatorEOFMaxTime​
Integer​
5​
LogCollector 没有读到换行符时,最大等待时长。​
单位为秒,默认为5s。​
LogCollector 开始读取日志文件内容时开始计时,超出指定时长没有读到换行符时,将会发送缓冲区的日志。​
当文件落盘间隔较大时,一条完整的日志可能会被分割成两部分分别落盘,可以根据您日志的落盘时间间隔调整此参数。​
​
ShardHashKey​
​
参数​
类型​
示例值​
描述​
HashKey​
String​
3C​
日志组的 HashKey,用于指定当前日志组要写入的分区(Shard)。此参数的取值范围为 [00000000000000000000000000000000-ffffffffffffffffffffffffffffffff)。​
​
ParsePathRule​
​
参数​
类型​
示例值​
描述​
Keys​
Array of String​
["instance-id","pod-name"]​
字段名称列表。 日志服务会根据正则表达式(Regex)将路径样例(PathSample)解析为多个字段,Keys 用于指定每个字段的字段名称。​
  • 最多配置 100 个字段名。​
  • 字段名不可为空,且不可重复。​
Regex​
String​
/var/logs/([a-z]*)_any_([a-z]*)/test.log​
用于提取路径字段的正则表达式。必须和采集路径样例匹配,否则无法成功提取。​
PathSample​
String​
/var/logs/instanceid_any_podname/test.log​
实际场景的采集路径样例。​
  • 采集路径样例必须是一个绝对路径。​
  • 路径样例中不能包含通配符*、?、**。​
​
请求示例​
​
GET https://{tls-endpoint}/DescribeRule?RuleId=faf HTTP/1.1​
​
返回示例​
以单行全文模式为例。​
​
HTTP/1.1 200 OK​
Content-Type: application/json​
{​
"ProjectId": "c7e0e442-19bf-4fb3-b547-5992fb8b****",​
"ProjectName": "testname",​
"TopicId": "4a9bd4bd-53f1-43ff-b88a-64ee1be5****",​
"TopicName": "testname",​
"RuleInfo": {​
"TopicId": "4a9bd4bd-53f1-43ff-b88a-64ee1be5****",​
"TopicName": "testname",​
"RuleId": "faf6d529-e75e-457f-a23a-9c4203a6df****",​
"RuleName": "testname",​
"Paths": [​
"/data/nginx/log/*/*/*.log"​
],​
"ExcludePaths": [​
{​
"Type": "File",​
"Value": "/data/nginx/log/*/*/exclude.log"​
},​
{​
"Type": "Path",​
"Value": "/data/nginx/log/*/exclude/"​
}​
],​
"LogType": "minimalist_log",​
"ExtractRule": {​
"FilterKeyRegex": [​
{​
"Key": "__content__",​
"Regex": ".*ERROR.*"​
}​
]​
},​
"LogSample": "2018-05-22 15:35:53.850 INFO XXXX",​
"UserDefineRule": {​
"ParsePathRule": {​
"PathSample": "/data/nginx/log/dabaad5f-7a10/tls/app.log",​
"Regex": "\\/data\\/nginx\\/log\\/(\\w+)-(\\w+)\\/tls\\/app\\.log",​
"Keys": [​
"instance-id",​
"pod-name"​
]​
},​
"ShardHashKey": {​
"HashKey": "3C"​
},​
"EnableRawLog": true,​
"RawLogKey": "raw",​
"Fields": {​
"ClusterID": "dabaad5f-7a10-4771-b3ea-d821f73e****"​
},​
"Advanced": {​
"CloseInactive": 10​
}​
}​
},​
"HostGroupInfos": [​
{​
"HostGroupId": "bcb20377-7e48-4e90-968b-922eb259****",​
"HostGroupName": "testname",​
"HostGroupType": "Label",​
"HostIdentifier": "label",​
"HostCount": 2,​
"NormalHeartbeatStatusCount": 1,​
"AbnormalHeartbeatStatusCount": 1,​
"RuleCount": 1,​
"CreateTimestamp": "2021-08-18 13:32:23",​
"ModifyTimestamp": "2021-08-18 13:32:23"​
}​
]​
}​
​
错误码​
下表为您列举了该接口与业务逻辑相关的错误码。公共错误码请参见公共错误码文档。​
​
HTTP 状态码​
错误码​
错误信息​
说明​
400​
InvalidArgument​
Invalid argument key %s, value %s, please check argument​
参数不合法。​
404​
RuleNotExist​
Rule %s does not exist​
采集配置不存在。​
500​
InternalServerError​
We encountered an unexpected server error, please try again later.​
服务器内部错误。​
​
最近更新时间:2026.01.21 16:13:39
这个页面对您有帮助吗?
有用
有用
无用
无用