更新时间:2024-09-03 15:00:39

数据转发支持在日志数据采集到本系统的同时,通过TCP、UDP和Syslog协议同步转发至第三方设备或系统。数据转发管理页面支持创建、删除、修改、查看、开启/关闭数据转发任务等功能操作,详细说明如下:
► 创建数据转发任务

进入数据管理>数据开放>数据转发页面,点击【+新建】进入配置页面,如下所示:

1. 配置基本任务信息

元素名称
元素说明 限制条件
*任务名称 设置数据转发任务的名称

• 名称不能为空且不能重复;

• 名称不能超过40个字符

标签

设置数据转发任务的标签,用于添加数据标识,实现任务筛选。

• 支持添加多个标签,标签个数不能超过5个;

• 单个标签不能超过40字符;

• 标签不能包含 / : ? \ " < > | : ? ‘ ’ “ ” !《 》 , # [ ] { } % & * $ ^ ! = . ”特殊字符

备注 设置数据转发任务的其他注释信息

• 备注信息不能超过255个字符

完成配置后,点击步骤条右侧【下一步】按钮,进入"源端配置"步骤页。

2. 配置数据转发源端信息

"源端配置"限制说明如下:

*数据来源类型:设置转发任务的数据来源,可选项:解析前数据、解析后数据、原始数据。默认转发解析前数据。配置后,转发任务的实际转发情况如下所示:

• 解析前数据:即包含原日志数据及其采集信息(例如数据类型、时间戳等)的数据。配置为“解析前数据”后,此任务将转发以anyrobot_data-replicator.*,<tenant>.ar.raw.* ,<tenant>.ar.dr.*开头的topic中的数据;

• 解析后数据:即经过解析处理后的数据。配置为“解析后数据”后,此任务将转发以<tenant>.ar.process.*开头的topic中的数据;

• 原始数据:即原日志数据。配置为“原始数据”后,此任务将转发以anyrobot_data-replicator.*,<tenant>.ar.raw.*,<tenant>.ar.dr.*开头的topic中的message字段内容。

需注意,当源端数据不存在message字段,则转发任务无法转发“原始数据”。例如:当源端数据是通过远程采集、SuperAgent方式采集的,此种情况下,原始数据中无message字段,任务无法转发“原始数据”;当源端数据是通过文件采集本地上传等方式采集的,您可以配置转发数据来源为“原始数据”,进行原日志数据(即JSON中的message字段内容)的转发。

*数据范围:设置需要转发的数据范围,支持选择全部数据、部分数据。

• 全部数据:表示将转发所选数据类型涉及的所有索引库的数据;

• 部分数据:勾选“部分数据”后,需要进一步配置*数据来源,选择转发数据的具体来源索引库。
  • *数据来源:仅当数据范围选择“部分数据”时,此项可配置,且为必填项。点击【选择数据来源】,在弹出的配置窗口中勾选所需数据的具体来源索引库。

         过滤条件:过滤条件默认为关闭状态,过滤条件关闭时,则默认转发全部数据。开启后,您可以基于索引库已存在的字段值对转发的数据内容进行过滤

过滤条件由筛选字段运算符有效值类型目标值四部分组成。下文将基于如下数据集,以筛选字段“host”为例,详细说明过滤条件中的各配置项及具体匹配规则。具体如下:
host
webserver1
webserver2
web2server1
dbserver1
mailserver1
  • 筛选字段:表示需要进行过滤的字段名称。点击下拉框,在已配置的来源字段中选择,此处以“host”字段为例。

注意:当右侧运算符需配置为“相似(like)”、“不相似(not_like)“、”正则(regex)”时,此处配置的过滤字段必须为字符串类型,例如text、keyword类型。

  • 运算符:即过滤条件中使用的逻辑运算符。当左侧筛选字段的值右侧配置的目标值满足指定运算符表示的逻辑关系时,命中此过滤条件。点击下拉框,支持配置以下运算符:

说明:当前支持添加17种运算符,具体包括:等于(eq)不等于(ne)大于(gt)大于等于(gte)小于(lt)小于等于(lte)属于(in)不属于(not_in)相似(like)不相似(not_like)包含(contain)不包含(not_contain)范围内(range)范围外(out_range)存在(exist)不存在(not_exist)正则(regex)

等于(eq):表示左侧指定筛选字段(此处为"host")的值与右侧配置的目标值完全相等,命中此过滤条件。例如,过滤条件为 “host eq webserver1” ,表示筛选出host字段值等于“webserver1”的数据,即:

host
webserver1

注意:右侧配置的目标值需为单个值,不能为数组。否则无法实现精确相等的判定。

不等于(ne):表示左侧指定筛选字段(此处为"host")的值与右侧配置的目标值不相等,命中此过滤条件;例如,过滤条件为 “host nq webserver1" ,表示筛选出host字段值不等于“webserver1”的数据,即:

host
webserver2
web2server1
dbserver1
mailserver1

注意:右侧配置的目标值需为单个值,不能为数组。否则无法实现精确不相等的判定。

大于(gt):表示左侧指定筛选字段(此处为"host")的值大于右侧配置的目标值,命中此过滤条件;

注意:右侧配置的目标值需为单个值,不能为数组。

大于等于(gte):表示左侧指定筛选字段(此处为"host")的值大于或等于右侧配置的目标值,命中此过滤条件;

注意:右侧配置的目标值需为单个值,不能为数组。

小于(lt):表示左侧指定筛选字段(此处为"host")的值小于右侧配置的目标值,命中此过滤条件;

注意:右侧配置的目标值需为单个值,不能为数组。

小于等于(lte):表示左侧指定筛选字段(此处为"host")的值小于或等于右侧配置的目标值,命中此过滤条件;

注意:右侧配置的目标值需为单个值,不能为数组。

属于(in):表示左侧指定筛选字段(此处为"host")的值属于右侧配置的目标值数组中的一个,命中此过滤条件;例如,过滤条件为 ”host in [webserver1, dbserver1, mailserver1]“,表示筛选出host字段值包含在指定数组中的数据 ,即:

host
webserver1
dbserver1
mailserver1

注意:右侧配置的目标值需为一个多个相同类型的值组成的数组。

• 不属于(not_in):表示左侧指定筛选字段(此处为"host")的值不在右侧配置的目标值数组中的任何一个,命中此过滤条件;例如,过滤条件为 ”host not_in [webserver1, dbserver1, mailserver1]“,表示筛选出host字段值不包含在指定数组中的数据 ,即:

host
webserver2
web2server1

注意:右侧配置的目标值需为一个多个相同类型的值组成的数组。

相似(like):表示左侧指定筛选字段(此处为"host")的值与右侧配置的字符串存在相似的子串,命中此过滤条件。例如,过滤条件为 “host like ’web%‘”,表示筛选出host字段值以 "web" 开头的数据,即:

host
webserver1
webserver2
web2server1

注意:右侧配置的目标值需为字符串

不相似(not_like):表示左侧指定筛选字段(此处为"host")的值与右侧配置的字符串不存在相似的子串,命中此过滤条件。例如,过滤条件为 host not_like "%server1%",表示筛选出host字段值不包含 "server1" 的数据,即:

host
webserver2

注意:右侧配置的目标值需为字符串

• 包含(contain):表示左侧指定筛选字段(此处为"host")的值包含了右侧配置的单个目标值或目标值数组中的所有值,命中此过滤条件。例如,过滤条件为 ‘host contain "web"’,表示筛选出host字段值包含 "web" 的数据,即: 

host
webserver1
webserver2
web2server1

注意:左侧指定筛选字段(此处为"host")的值为数组,右侧配置的目标值需为单个值数组。若右侧目标值为数组,则当数组中的所有值都在左侧指定字段值的数组内时,方可命中此过滤条件。

• 不包含(not_contain):表示左侧指定筛选字段(此处为"host")的值不能包含右侧配置的单个目标值或目标值数组中的所有值,命中此过滤条件。例如,过滤条件为 "host not_contain ‘server1’",表示筛选出host字段值不包含 "server1" 的记录,即: 

host
webserver2

注意:左侧指定筛选字段(此处为"host")的值为数组,右侧配置的目标值需为单个值或数组。若右侧目标值为数组,则当数组中的所有值都在左侧指定字段值的数组外时,方可命中此过滤条件。

范围内(range):表示左侧指定筛选字段(此处为"host")的值右侧目标值范围内,命中此过滤条件。例如,过滤条件为 “host out_range [‘a’, ’n‘]”,表示筛选出在指定范围内的主机名称的记录,即:

host
dbserver1
mailserver1

注意:右侧目标值需配置长度为2的数组,边界为左闭右开,即 [ value[0], value[1] )。此种情况下,符合过滤条件的值区间为 [ value[0], value[1] ),即左侧指定字段值中 ≥value[0] 且<value[1] 的值。

范围外(out_range):表示左侧指定筛选字段(此处为"host")的值右侧目标值范围外,命中此过滤条件。例如,过滤条件为 ”host out_range [’a‘, ‘n’]“,表示筛选出不在指定范围内的主机名称的数据,即:

host
webserver1
webserver2
web2server1

注意:右侧目标值需配置为长度为2的数组,边界为左闭右开, 即 [ value[0],  value[1] )。此种情况下,符合过滤条件的值的区间为 (-inf, value[0] ) & [ value[1], +inf ),即左侧指定字段值中<value[0] 或 ≥value[1] 的值。

存在(exist):表示存在左侧指定筛选字段(此处为"host")的数据,将命中此过滤条件。例如,过滤条件为 ‘host exist’,表示筛选出存在host字段的数据;

不存在(not_exist):表示不存在左侧指定筛选字段(此处为"host")的数据,将命中此过滤条件。例如,过滤条件为 ‘host not_exist’,表示筛选出不存在host字段的数据;

正则(regex):表示左侧指定筛选字段(此处为"host")的值匹配了右侧配置的正则表达式时,命中此过滤条件。例如,过滤条件为 host regex "^web",表示筛选出host字段值以 "web" 开头的数据,即:

host
webserver1
webserver2
web2server1

 

有效值类型:表示过滤条件中,用于与左侧字段值比较的目标值的数据类型,当前仅支持"常量",即过滤条件直接使用指定的常量值作为目标值,而非从数据集或其他字段中提取的值。

目标值:表示过滤条件中用于与字段值比较的目标值。

› 添加多层级过滤条件

支持添加多层级过滤条件,当前最多支持添加3层级的过滤条件,点击“””“按钮,即可依次添加;点击添加按钮左侧的““按钮,即可删除对应层级的过滤条件。多层级过滤条件之间支持配置“且”与“或”关系,点击对应层级的“、”按钮,即可切换多层级过滤条件的关联关系为“或”。

› 添加多个过滤条件

同一层级的过滤条件支持添加多个过滤条件,当前同一层级最多支持添加10个过滤条件,点击过滤条件下方的”+添加过滤条件“,即可添加;点击过滤条件尾部的““按钮,即可删除对应过滤条件。

 

完成配置后,点击步骤条右侧【下一步】按钮,进入"目标端配置"步骤页。

3. 配置数据转发目标端信息

*目标端类型:设置数据转发目标端支持的协议类型,可选项:Syslog、TCP、UDP,具体如下:

· Syslog:当目标端支持的协议类型为Syslog时,可选择的传输协议为UDP、TCP,默认为UDP传输协议;

- Syslog协议格式:<PRI> TIMESTAMP HOSTNAME APP-NAME[PID]: MESSAGE

- <PRI> :消息的优先级,值是Facility(日志来源类型)和Severity(日志级别)位或的结果,默认是13,即二进制1101。Facility默认是user-level(8,即二进制1000),Severity默认是Notice(5,即二进制0101)

- TIMESTAMP:发送消息的时间,RFC 3339格式的时间字符串,具体格式为yyyy-MM-ddTHH:mm:ssZ;

- HOSTNAME:主机名,即数据转发任务的主机名,默认为数据转发任务的podname;

- APP-NAME:应用程序名,即数据转发服务名,默认为 anyrobot-data-forward; 

- PID:进程标识符,即数据转发服务的进程号;

- MESSAGE:消息内容,参考TCP、UDP协议的数据内容。

Syslog协议数据样例:

<13>2024-03-18T14:40:31+08:00 data-forward-job-505353887243352180-75f5749984-m62kn anyrobot-data-forward[1]: {"ruleName":null,"@version":"1","@timestamp":"2024-03-18T06:40:30.042Z","fileName":"测试无乱序.txt","message","2","type":"kai","__index_base","kai","tags":[],"port":60556,"host":"10.4.37.8","offset":6,"__data_type":"kai"}

· TCP:当目标端支持的协议类型为TCP时,目标端传输协议只能为TCP;

· UDP:当目标端支持的协议类型为UDP时,目标端传输协议只能为UDP。

注意:目标端类型不能为空。

*目标端地址:设置数据转发目标端的IP地址。

注意:

1.目标端类型不能为空;

2. 目标端地址支持配置为域名格式,不支持同时配置多个目标端地址。

*目标端端口:设置数据转发目标端的端口号。

注意:

1.目标端端口不能为空;

2. 目标端端口号需为1-65535之间的正整数,不支持同时配置多个目标端端口号。

 

注意:新建或修改数据转发任务时,若目标端地址、目标端口、数据来源的三个参数同时与已有任务重复,则此新建或修改操作都将失败。

目标端配置完成后,点击步骤条右侧的【下一步】即可验证数据转发源端与目的端的连通状态,若配置不通页面会有报错提示,需修正后再次进行连通验证。验证通过后,方可进入数据转发任务的"高级配置"步骤页。

4. 配置数据转发任务资源上限

元素名称 元素说明 限制条件
*CPU限额

设置允许此转发任务占用的CPU上限,默认为1(单位C)

提示:建议您根据并行的转发任务数量以及CPU资源使用情况调整此任务占用的CPU上限,保证多任务正常并行的同时实现资源的合理利用。

• 输入的限额数值应为整数,需>0且≤8,单位为C

*内存限额

设置允许此转发任务占用的内存上限,默认为2048(单位MiB)

提示:建议您根据并行的转发任务数量以及内存资源使用情况调整此任务占用的内存上限,保证多任务正常并行的同时实现资源的合理利用。

• 输入的限额数值应为整数,需>0且≤8192,单位为MiB

► 查看数据转发任务列表

数据转发任务配置完成后,进入数据转发管理页面,在此页面可以开启/关闭任务,查看任务运行状态等,如下所示:

注意:任务状态:用于监控当前数据转发任务的执行状态:

• 运行中:数据转发任务正常运行中;
• 失败:数据转发任务执行失败;
• 关闭:任务未开启,未执行转发。

编辑/删除数据转发任务

进入数据转发管理页面,在操作列表中点击【编辑】/【删除】可以修改、删除指定数据转发任务。