文档

UpdateLogtailPipelineConfig - 更新Logtail流水线配置

更新时间:

更新Logtail流水线配置。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
log:UpdateLogtailPipelineConfigWrite
  • 全部资源
    *
  • log:TLSVersion

请求语法

PUT /pipelineconfigs/{configName}

请求参数

名称类型必填描述示例值
projectstring

Project 名称。

test-project
configNamestring

Logtail 流水线配置名称。

test-config
bodyobject

Logtail 流水线配置内容。

configNamestring

配置名称。

注意 需要与外层的 configName 参数保持一致。

test-config
logSamplestring

日志样例。支持多条日志。

2022-06-14 11:13:29.796 | DEBUG | __main__:<module>:1 - hello world
globalobject

全局配置。

inputsobject []

输入插件列表。

注意 目前,只允许配置 1 个输入插件。

object

输入插件。

说明 文件输入插件参数请参见文件插件,其余输入插件参数请参见处理插件
{ "Type": "input_file", "FilePaths": ["/var/log/*.log"] }
processorsobject []

输入插件列表。

说明 可分为原生处理插件和扩展处理插件,详情请参见处理插件
注意
  • 原生插件仅可用于采集文本日志。
  • 不支持同时添加原生插件和扩展插件。
  • 使用原生插件时,须符合如下要求:
    • 第一个处理插件必须为正则解析插件、分隔符模式解析插件、JSON 解析插件、NGINX 模式解析插件、Apache 模式解析插件或 IIS 模式解析插件。
    • 第一个处理插件之后仅允许存在 1 个时间解析处理插件,1 个过滤插件和多个脱敏插件。
object

处理插件。

说明 详情请参见处理插件
{ "Type": "processor_parse_json_native", "SourceKey": "content" }
aggregatorsobject []

聚合插件列表。

注意 仅当使用了扩展处理插件时有效,且最多允许使用 1 个聚合插件。

object

聚合插件。

flushersobject []

输出插件列表。

注意 目前,只允许存在 1 个 SLS 输出插件。

object

输出插件。

{ "Type": "flusher_sls", "Logstore": "test" }

全局配置

参数类型是否必填默认值示例说明
TopicTypestringfilepathTopic 类型。可选值包括:
  • filepath:从日志文件路径中提取信息作为 Topic。仅当输入插件为 input_file 时有效。
  • machine_group_topic:将应用该配置的机器组 Topic 作为 Topic。
  • custom:自定义 Topic 更多信息,请参见日志主题
TopicFormatstring否,当 TopicType 取值为 filepath 或 custom 时必填//var/log/(.*).logTopic 格式。
EnableTimestampNanosecondboolfalsefalse是否启用时间纳秒精度。

输入插件

文件输入插件

参数类型是否必填默认值示例说明
Typestring/input_file插件类型。固定为 input_file。
FilePaths[string]/["/var/log/*.log"]待采集的日志文件路径列表(目前仅限 1 个路径)。路径中支持使用*和**通配符,其中**通配符仅能出现一次且仅限用于文件名前。
MaxDirSearchDepthuint00文件路径中**通配符匹配的最大目录深度。仅当日志路径中存在**通配符时有效,取值范围为 0~1000。
ExcludeFilePaths[string]["/home/admin/*.log"]文件路径黑名单。路径必须为绝对路径,支持使用*通配符
ExcludeFiles[string]["app*.log", "password"]文件名黑名单。支持使用*通配符
ExcludeDirs[string]["/home/admin/dir1", "/home/admin/dir2*"]目录黑名单。路径必须为绝对路径,支持使用*通配符
FileEncodingstringutf8utf8文件编码格式。可选值包括 utf8 和 gbk。
TailSizeKBuint10241024配置首次生效时,匹配文件的起始采集位置距离文件结尾的大小。如果文件大小小于该值,则从头开始采集,取值范围为 0~10485760KB。
Multilineobject/多行聚合选项。
Multiline.Modestringcustomcustom多行聚合模式。可选值包括 custom 和 JSON。
Multiline.StartPatternstring当 Multiline.Mode 取值为 custom 时必填\d+-\d+-\d+.*行首正则表达式。
EnableContainerDiscoveryboolfalsetrue是否启用容器发现功能。仅当 Logtail 以 Daemonset 模式运行,且采集文件路径为容器内路径时有效。
ContainerFiltersobject/容器过滤选项。多个选项之间为“且”的关系,仅当 EnableContainerDiscovery 取值为 true 时有效。
ContainerFilters.K8sNamespaceRegexstringdefault对于部署于 K8s 环境的容器,指定待采集容器所在 Pod 所属的命名空间条件。如果未添加该参数,则表示采集所有容器。支持正则匹配。
ContainerFilters.K8sPodRegexstringtest-pod对于部署于 K8s 环境的容器,指定待采集容器所在 Pod 的名称条件。如果未添加该参数,则表示采集所有容器。支持正则匹配。
ContainerFilters.IncludeK8sLabelmap/对于部署于 K8s 环境的容器,指定待采集容器所在 pod 的标签条件。多个条件之间为“或”的关系,如果未添加该参数,则表示采集所有容器。支持正则匹配。 map 中的 key 为 Pod 标签名,value 为 Pod 标签的值,说明如下:
  • 如果 map 中的 value 为空,则 pod 标签中包含以 key 为键的 pod 都会被匹配;
  • 如果 map 中的 value 不为空,则:
    • 若 value 以^开头并且以$结尾,则当 pod 标签中存在以 key 为标签名且对应标签值能正则匹配 value 的情况时,相应的 pod 会被匹配;
    • 其他情况下,当 pod 标签中存在以 key 为标签名且以 value 为标签值的情况时,相应的 pod 会被匹配。
ContainerFilters.ExcludeK8sLabelmap/对于部署于 K8s 环境的容器,指定需要排除采集容器所在 pod 的标签条件。多个条件之间为“或”的关系,如果未添加该参数,则表示采集所有容器。支持正则匹配。 map 中的 key 为 pod 标签名,value 为 pod 标签的值,说明如下:
  • 如果 map 中的 value 为空,则 pod 标签中包含以 key 为键的 pod 都会被匹配;
  • 如果 map 中的 value 不为空,则:
    • 若 value 以^开头并且以$结尾,则当 pod 标签中存在以 key 为标签名且对应标签值能正则匹配 value 的情况时,相应的 pod 会被匹配;
    • 其他情况下,当 pod 标签中存在以 key 为标签名且以 value 为标签值的情况时,相应的 pod 会被匹配。
ContainerFilters.K8sContainerRegexstringtest-container对于部署于 K8s 环境的容器,指定待采集容器的名称条件。如果未添加该参数,则表示采集所有容器。支持正则匹配。
ContainerFilters.IncludeEnvmap/指定待采集容器的环境变量条件。多个条件之间为“或”的关系,如果未添加该参数,则表示采集所有容器。支持正则匹配。 map 中的 key 为环境变量名,value 为环境变量的值,说明如下:
  • 如果 map 中的 value 为空,则容器环境变量中包含以 key 为键的容器都会被匹配;
  • 如果 map 中的 value 不为空,则:
    • 若 value 以^开头并且以$结尾,则当容器环境变量中存在以 key 为环境变量名且对应环境变量值能正则匹配 value 的情况时,相应的容器会被匹配;
    • 其他情况下,当容器环境变量中存在以 key 为环境变量名且以 value 为环境变量值的情况时,相应的容器会被匹配。
ContainerFilters.ExcludeEnvmap/指定需要排除采集容器的环境变量条件。多个条件之间为“或”的关系,如果未添加该参数,则表示采集所有容器。支持正则匹配。 map 中的 key 为环境变量名,value 为环境变量的值,说明如下:
  • 如果 map 中的 value 为空,则容器环境变量中包含以 key 为键的容器都会被匹配;
  • 如果 map 中的 value 不为空,则:
    • 若 value 以^开头并且以$结尾,则当容器环境变量中存在以 key 为环境变量名且对应环境变量值能正则匹配 value 的情况时,相应的容器会被匹配;
    • 其他情况下,当容器环境变量中存在以 key 为环境变量名且以 value 为环境变量值的情况时,相应的容器会被匹配。
ContainerFilters.IncludeContainerLabelmap/指定待采集容器的标签条件。多个条件之间为“或”的关系,如果未添加该参数,则默认为空,表示采集所有容器。支持正则匹配。 map 中的 key 为容器标签名,value 为容器标签的值,说明如下:
  • 如果 map 中的 value 为空,则容器标签中包含以 key 为键的容器都会被匹配;
  • 如果 map 中的 value 不为空,则:
    • 若 value 以^开头并且以$结尾,则当容器标签中存在以 key 为标签名且对应标签值能正则匹配 value 的情况时,相应的容器会被匹配;
    • 其他情况下,当容器标签中存在以 key 为标签名且以 value 为标签值的情况时,相应的容器会被匹配。
ContainerFilters.ExcludeContainerLabelmap/指定需要排除采集容器的标签条件。多个条件之间为“或”的关系,如果未添加该参数,则默认为空,表示采集所有容器。支持正则匹配。 map 中的 key 为容器标签名,value 为容器标签的值,说明如下:
  • 如果 map 中的 value 为空,则容器标签中包含以 key 为键的容器都会被匹配;
  • 如果 map 中的 value 不为空,则:
    • 若 value 以^开头并且以$结尾,则当容器标签中存在以 key 为标签名且对应标签值能正则匹配 value 的情况时,相应的容器会被匹配;
    • 其他情况下,当容器标签中存在以 key 为标签名且以 value 为标签值的情况时,相应的容器会被匹配。
ExternalK8sLabelTagmap/对于部署于 K8s 环境的容器,需要在日志中额外添加的与 Pod 标签相关的 tag。map 中的 key 为 Pod 标签名,value 为对应的 tag 名。 例如:在 map 中添加app: k8s\_label\_app,则若 pod 中包含app=serviceA的标签时,会将该信息以 tag 的形式添加到日志中,即添加字段__tag__:k8s_label_app: serviceA;若不包含app标签,则会添加空字段__tag__:k8s_label_app:
ExternalEnvTagmap/对于部署于 K8s 环境的容器,需要在日志中额外添加的与容器环境变量相关的 tag。map 中的 key 为环境变量名,value 为对应的 tag 名。 例如:在 map 中添加VERSION: env\_version,则当容器中包含环境变量VERSION=v1.0.0时,会将该信息以 tag 的形式添加到日志中,即添加字段__tag__:env_version: v1.0.0;若不包含VERSION环境变量,则会添加空字段__tag__:env_version:
CollectingContainersMetaboolfalsetrue是否启用容器元信息预览。
AppendingLogPositionMetaboolfalsefalse是否在日志中添加该条日志所属文件的元信息,包括__tag__:__inode__字段和__file_offset__字段。
AllowingIncludedByMultiConfigsboolfalsefalse是否允许当前配置采集其它配置已匹配的文件。

原生处理插件

正则解析原生处理插件

参数类型是否必填默认值示例说明
Typestring/processor_parse_regex_native插件类型。固定为 processor_parse_regex_native。
SourceKeystring/content源字段名。
Regexstring/(\d+-\d+-\d+)\s+(.*)正则表达式。
Keys[string]/["time", "msg"]提取的字段列表。
KeepingSourceWhenParseFailboolfalsefalse当解析失败时,是否保留源字段。
KeepingSourceWhenParseSucceedboolfalsefalse当解析成功时,是否保留源字段。
RenamedSourceKeystringkey当源字段被保留时,用于存储源字段的字段名。若不填,默认不改名。

JSON 解析原生处理插件

参数类型是否必填默认值示例说明
Typestring/processor_parse_json_native插件类型。固定为 processor_parse_json_native。
SourceKeystring/content源字段名。
KeepingSourceWhenParseFailboolfalsefalse当解析失败时,是否保留源字段。
KeepingSourceWhenParseSucceedboolfalsefalse当解析成功时,是否保留源字段。
RenamedSourceKeystringkey当源字段被保留时,用于存储源字段的字段名。若不填,默认不改名。

分隔符解析原生处理插件

参数类型是否必填默认值示例说明
Typestring/processor_parse_delimiter_native插件类型。固定为 processor_parse_delimiter_native。
SourceKeystring/content源字段名。
Separatorstring/,分隔符。
Quotestring""引用符。
Keys[string]/["time", "msg"]提取的字段列表。
AllowingShortenedFieldsbooltruetrue是否允许提取的字段数量小于 Keys 的数量。若不允许,则此情景会被视为解析失败。
OverflowedFieldsTreatmentstringextendextend当提取的字段数量大于 Keys 的数量时的行为。可选值包括:
  • extend:保留多余的字段,且每个多余的字段都作为单独的一个字段加入日志,多余字段的字段名为__column$i__,其中$i 代表额外字段序号,从 0 开始计数。
  • keep:保留多余的字段,但将多余内容作为一个整体字段加入日志,字段名为__column0__.
  • discard:丢弃多余的字段。
KeepingSourceWhenParseFailboolfalsefalse当解析失败时,是否保留源字段。
KeepingSourceWhenParseSucceedboolfalsefalse当解析成功时,是否保留源字段。
RenamedSourceKeystringkey当源字段被保留时,用于存储源字段的字段名。若不填,默认不改名。

飞天解析原生处理插件

参数类型是否必填默认值示例说明
Typestring/processor_parse_apsara_native插件类型。固定为 processor_parse_apsara_native。
SourceKeystring/content源字段名。
TimezonestringGMT+08:00日志时间所属时区。格式为 GMT+HH:MM(东区)或 GMT-HH:MM(西区)。
KeepingSourceWhenParseFailboolfalsefalse当解析失败时,是否保留源字段。
KeepingSourceWhenParseSucceedboolfalsefalse当解析成功时,是否保留源字段。
RenamedSourceKeystringkey当源字段被保留时,用于存储源字段的字段名。若不填,默认不改名。

时间解析原生处理插件

参数类型是否必填默认值示例说明
Typestring/processor_parse_timestamp_native插件类型。固定为 processor_parse_timestamp_native。
SourceKeystring/content源字段名。
SourceFormatstring/%Y/%m/%d %H:%M:%S日志时间格式。更多信息,请参见时间格式
SourceTimezonestringGMT+08:00日志时间所属时区。格式为 GMT+HH:MM(东区)或 GMT-HH:MM(西区)。

过滤原生处理插件

参数类型是否必填示例默认值说明
Typestringprocessor_filter_regex_native/插件类型。固定为 processor_filter_regex_native。
Includemap//日志字段白名单,其中 key 为字段名,value 为正则表达式,表示如果当前事件要被采集,则 key 指定的字段内容所需要满足的条件。多个条件之间为“且”的关系,仅当所有条件均满足时,该条日志才会被采集。

脱敏原生处理插件

参数类型是否必填默认值示例说明
Typestring/processor_desensitize_native插件类型。固定为 processor_desensitize_native。
SourceKeystring/content源字段名。
Methodstring/const脱敏方式。可选值包括: * const:用常量替换敏感内容。 * md5:用敏感内容的 MD5 值替换相应内容。
ReplacingStringstring否,当 Method 取值为 const 时必选/******用于替换敏感内容的常量字符串。
ContentPatternBeforeReplacedStringstring/'password:'敏感内容的前缀正则表达式。
ReplacedContentPatternstring/[^']*敏感内容的正则表达式。
ReplacingAllbooltruetrue是否替换所有的匹配的敏感内容。

输出插件

SLS 输出插件

参数类型是否必填默认值示例说明
Typestring/flusher_sls插件类型。固定为 flusher_sls。
Logstorestirng/test-logstoreLogStrore 名称。

返回参数

名称类型描述示例值
headersobject
Serverstring

服务器名称。

nginx
Content-Typestring

返回的响应体的内容格式。

application/json
Content-Lengthstring

响应内容长度。

0
Connectionstring

是否长链接。取值包括: close:不是长链接,则每个 HTTP 请求都会重新建立 TCP 连接。 keep-alive:长链接,TCP 连接建立后保持连接状态,节省连接所需时间和带宽。

close
Datestring

返回响应的时间。

Sun, 27 May 2018 08:25:04 GMT
x-log-requestidstring

服务端产生的标识,该请求的唯一 ID。

5B0A6B60BB6EE39764D458B5

示例

正常返回示例

JSON格式

{}

错误码

访问错误中心查看更多错误码。

  • 本页导读 (1)