创建传输任务
任务信息
- 在日志服务页面中点击“传输任务”,进入传输任务列表页面后,点击“创建传输任务”,进入创建传输任务页面。
- 在“任务信息”区,请输入任务名称。
- 为该任务添加标签,便于进行分类管理与查找。
目的端设置
- 在“目的端设置”,设置日志数据投递目的端。产品提供日志集、KAFKA、BOS、BES四种目的端,各端对应的具体参数配置分别如下:
(1)“日志集”作为目的端
- 日志集:选择已创建的日志集;关于日志集功能,请参考日志集
- 传输速率:默认10MB/s,支持速率范围为 [1-100] MB/s。
(2)“KAFKA”作为目的端
支持将日志传输到专享版Kafka;关于专享版Kafka的使用,请参考专享版Kafka。
- 集群:选择已建立的Kafka集群。
- 主题:选择已创建的Kafka主题。
- 认证协议:请根据您的采集器和Kafka集群所在的网络环境情况,选择Kafka集群所提供的正确协议,可参考查看集群接入点
- 连接地址:选择和认证协议相匹配的连接地址。
- SASL机制:选择与认证协议相匹配的SASL机制。
- 用户名:填写访问集群时认证的用户名。
- 密码:填写访问集群时认证的用户密码。
- 数据丢弃:默认关闭,开启后,若单条消息大小超过10M时则丢弃该条消息。
-
数据压缩:选择是否启用先压缩日志文件后传输功能,默认不启用,若需启用请选择压缩算法,各压缩算法特点如下:
- Gzip:压缩率高,可有效节省空间,但压缩速度慢,且较Snappy和Lz4更多占用CPU资源。
- Snappy:压缩速度快,但压缩率低于Gzip。
- Lz4:压缩速度快,但稍慢于Snappy,压缩率也稍高于Snappy。
- partitioner类型:默认为随机,可选择“按Value值哈希”用于消息去重。
- message key:默认为无,可变更为“源端主机HostName”或“源端主机IP”。
- 传输速率:开启数据压缩状态下,数据传输速率限速1MB/s;关闭数据压缩状态下,数据传输速率限速10MB/s。
(3)“BOS”作为目的端
选择“BOS为日志投递目的,不支持解析日志内容。需要注意的是,当源端为离线文件时,系统将每一个文件作为一个BOS对象上传;当源端为实时文件时,可自定义采集间隔,并将采集内容生成一个BOS对象。 请配置如下参数:
- BOS路径:选择BOS路径作为存储日志的目的地址。
-
日志聚合:选择是否依据“时间”“主机”配置聚合在相应目录下,支持多选。
- 根据时间聚合:需选择源日志文件名中包含的时间格式(如“yyyy-MM-dd”),以及选择对应的聚合方式:按天聚合、按小时聚合、用户自定义。其中选择按“用户自定义”的方式聚合日志时,可根据右侧的提示设置日期通配符,系统会根据您定义的日期通配符在您指定的BOS路径中聚合日志。
- 根据主机聚合:需选择按主机IP聚合,或按主机名聚合。
- 传输速率:默认10MB/s,支持速率范围为 [1-100] MB/s。
-
数据压缩:选择是否启用先压缩日志文件后传输功能,默认不启用,若需启用请选择压缩算法,各压缩算法特点如下:
- Gzip:压缩率高,可有效节省空间,但压缩速度慢,且较Snappy和Lzop更多占用CPU资源。
- Snappy:压缩速度快,但压缩率低于Gzip。
- Lzop:压缩速度快,但稍慢于Snappy,压缩率也稍高于Snappy。
- Bzip2:压缩速度慢。
- 实时文件处理策略:若您需要采集正在写入的实时文件,日志服务支持设置采集间隔,避免在BOS中生成大量小文件;该策略设置后对离线文件不生效,离线文件仍为实时采集。
- 传输通知:仅当源端是离线日志类型且在时间聚合时支持传输通知功能,且默认不开启。开启传输通知后,系统将在每个文件传输完毕后,在BOS端目的路径下生成一个对应的文件名加“.done”后缀的空文件,便于下游服务根据标记启动。如下图所示:
(4)“BES”作为目的端
选择“BES”作为日志投递目的,可投递实时日志。请配置如下参数:
- 选择ES集群:选择当前用在当前region已创建的BES集群。
- 用户名:填写所选BES集群的登录用户名
- 密码:填写所选BES集群的登录密码
- 测试连通性:测试并验证是否能够连接上所选的BES集群,如不能连通,传输任务无法正常运行。
- index前缀:index前缀通过用户自定义,index Rolling开启状态下,BES集群中的index名称由“index前缀+采集日期”组成,关闭状态下,index名称由index前缀组成。采集日期是指数据写入BES时的日期,日期格式为:YYYY-MM-DD。
- index Rolling:设定BES集群自动生成新index的频率,默认处于关闭状态;开启后,按照设定频率生成新index,采集的日志数据写入到新index。
源端设置
- 添加源端设置,产品提供“主机”,“容器”两种类型的源端:
- 主机:适用于采集实时写入的、离线的日志文件。
- 容器:适用于采集容器内产生的文本日志和标准输出日志。
详细配置过程信息如下。
(1)“主机”作为源端的配置
当源端类型为“主机”时,有以下特殊配置项:
- 源日志目录:输入采集日志的源目录。目录支持golang Glob模式匹配,详见目录规则。
- 匹配文件规则:输入正则表达式,匹配正则表达式的文件将会被监控和收集。正则表达式示例:“匹配输入字符串的结束位置”的正则表达式为“$”,则“.tmp$”表示所有以.tmp结尾的文件名。
- 排除文件规则:输入正则表达式,匹配正则表达式的文件将不会被监控和收集,可排除正在写入的日志文件,避免导致传输出现异常。
- 目录递归:默认关闭,开启后,源日志目录下所有符合匹配规则的文件均会被传输。
(2)“容器”作为源端的配置
当源端类型为”容器“时,支持采集标准输出与容器内日志,具体配置项如下:
日志类型为标准输出日志
- Label白名单:如果要设置Label白名单,点击【添加白名单】,依次输入LabelKey、LabelValue内容,其中LabelKey、Labelvalue必填,LabelValue支持输入正则表达式来匹配所有需要采集的目标容器。
-
Label黑名单:如果要设置Label黑名单,点击【添加黑名单】,依次输入LabelKey、LabelValue内容,其中LabelKey、Labelvalue必填,LabelValue支持输入正则表达式来匹配所有需要排除的目标容器。
注意:
- Label白名单中多个键值对之间逻辑关系为【且】
- Label黑名单中多个键值对之间逻辑关系为【或】
- Label白名单、Label黑名单内Labelkey值不能重复,LabelVaule值不能为空
- 环境变量白名单:如果要设置环境变量白名单,点击【添加白名单】,依次输入EnvKey、EnvValue内容,其中EnvKey、EnvValue必填,EnvValue支持输入正则表达式来匹配所有需要采集的目标容器。
-
环境变量黑名单:如果要设置环境变量黑名单,点击【添加黑名单】,依次输入EnvKey、EnvValue内容,其中EnvKey、EnvValue必填,EnvValue支持输入正则表达式来匹配所有需要排除的目标容器。
注意:
- 环境变量白名单中多个键值对之间逻辑关系为【且】
- 环境变量黑名单中多个键值对之间逻辑关系为【或】
- 环境变量白名单、环境变量黑名单内Envkey值不能重复,EnvVaule值不能为空
日志类型为容器内部日志
- 源日志目录:输入采集日志的源目录。目录支持golang Glob模式匹配,详见目录规则。注意这里的目录应当填写容器内的路径,而非挂载到宿主机的路径。并且需要将容器内日志文件的任意级父路径挂载到宿主机中。
- 匹配文件规则:输入正则表达式,匹配正则表达式的文件将会被监控和收集。正则表达式示例:“匹配输入字符串的结束位置”的正则表达式为“$”,则“.tmp$”表示所有以.tmp结尾的文件名。
- 排除文件规则:输入正则表达式,匹配正则表达式的文件将不会被监控和收集,可排除正在写入的日志文件,避免导致传输出现异常。
- Label白名单:如果要设置Label白名单,点击【添加白名单】,依次输入LabelKey、LabelValue内容,其中LabelKey、LabelValue必填,LabelValue支持输入正则表达式来匹配所有需要采集的目标容器。
-
Label黑名单:如果要设置Label黑名单,点击【添加黑名单】,依次输入LabelKey、LabelValue内容,其中LabelKey、LabelValue必填,LabelValue支持输入正则表达式来匹配所有需要排除的目标容器。
注意:
- Label白名单中多个键值对之间逻辑关系为【且】
- Label黑名单中多个键值对之间逻辑关系为【或】
- Label白名单、Label黑名单内Labelkey值不能重复,LabelVaule值不能为空
- 环境变量白名单:如果要设置环境变量白名单,点击【添加白名单】,依次输入EnvKey、EnvValue内容,其中EnvKey、EnvValue必填,EnvValue支持输入正则表达式来匹配所有需要采集的目标容器。
-
环境变量黑名单:如果要设置环境变量黑名单,点击【添加黑名单】,依次输入EnvKey、EnvValue内容,其中EnvKey、EnvValue必填,EnvValue支持输入正则表达式来匹配所有需要排除的目标容器。
注意:
- 环境变量白名单中多个键值对之间逻辑关系为【且】
- 环境变量黑名单中多个键值对之间逻辑关系为【或】
- 环境变量白名单、环境变量黑名单内Envkey值不能重复,EnvVaule值不能为空
(3)源端的公共配置
-
解析模式:提供“不解析”、“JSON模式”、“分隔符模式”、“正则表达式模式”。
- 不解析:用于采集并传输原始日志数据,不对数据做解析。
- JSON模式:用于采集JSON格式的日志数据,支持嵌套JSON的解析。
- 分隔符模式:根据指定分隔符把数据进行解析成JSON格式。支持空格、制表符、竖线、逗号作为分隔符,并且支持用户自定义分隔符,自定义格式没有限制,解析出来的数据作为Value值显示在“解析结果”中,用户需要给Value值输入自定义的Key。
- 完全正则模式:输入一条样例日志数据,再输入正则表达式,点击“解析”按钮,会根据输入的正则表达式解析样例日志数据,解析出来的数据作为Value值显示在“解析结果”中,用户需要给Value值输入自定义的Key。
- 日志时间:支持选择“使用日志时间”、“使用系统时间”,若选择“使用日志时间”,则会尝试解析日志中的时间信息,并以此作为日志时间;选择“使用系统时间”,则日志时间为日志上传时的系统时间。
- 指定时间字段Key名称:若上文选择“使用日志时间”,您需指定解析结果中的一个字段作为时间字段,否则将使用系统时间作为日志时间。
- 时间解析格式:若上文选择“使用日志时间”,并指定了解析结果中的一个字段作为时间字段,您需提供该字段时间解析格式,系统将按照该格式解析日志时间,如果解析失败则使用系统时间作为日志时间。 格式书写可以参考此链接:SimpleDateFormat。 以下列出几种常见的时间解析格式:
时间样例 | 解析格式 |
---|---|
2001-07-04T12:08:56.235-07:00 | yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
2001-07-04T12:08:56.235-0700 | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
- 丢弃解析失败日志:开启状态,会自动丢弃解析失败的日志数据;关闭状态,日志数据解析失败时,将原始日志数据传输到下游。“不解析”模式下不支持该选项。
- 保留原文:开启后,将保留解析前的日志原文到@raw字段
-
数据匹配表达式:不填写的情况采集所有数据,填写的情况下,只采集符合表达式要求的日志数据。表达式支持的语法具体如下:
- 字段Key使用$key表示
- 逻辑运算符中,字符串类型字段支持=、!=;数值类型字段支持=、!=、>、<、>=、<=;布尔类型字段支持!;字段之间支持&&、||、(、)
- 若正则表达式中出现了运算符、括号、$等特殊符号时,则必须要使用双引号""括起来
示例: ($level = "^ERROR|WARN$" || $ip != 10\.25.*) && (($status>=400) || !$flag) && $user.name = ^B.*
- 多行模式:如果您的日志是多行的,请开启多行模式,并设置行首正则表达式,系统将以此正则作为每条日志的分割标识。
- 有效文件时间范围:可选时间范围为1~90天,默认3天,即默认收集传输任务创建前3天以及之后新建或编辑的文件,最多可以回溯到任务创建前90天。
选择收集器
- 选择主机上已安装的收集器,收集器Server端会下发传输任务到已选的主机上。如下图,列表中显示当前Region已安装收集器且未处于“丢失”状态的主机。
- 点击“保存”即可完成日志传输任务的创建,约1分钟后传输任务生效。