目录
此内容是否有帮助?

# LogBus2 使用指南

# 一、LogBus2 简介

LogBus2 是在原 LogBus 基础上,重新开发的日志同步工具。相比原 LogBus,其内存占用仅为原来版本的五分之一,速度提升至原来的5倍。


Logbus2 主要用于将后端的日志数据实时地导入到 TA 后台,其核心工作原理类似于 Flume、Loggie,会监控服务器日志目录下的文件流,当目录下任意日志文件有新数据产生时,会对新数据进行校验,并实时发送至 TA 后台。

我们建议以下几类用户使用 LogBus2 接入数据:

  1. 使用 TA 服务端 SDK 的用户,通过 LoggerConsumer 配合 LogBus2 上传数据
  2. 对数据的准确性及维度要求较高,仅通过客户端 SDK 无法满足数据需求的客户,或不方便接入客户端 SDK 的客户
  3. 需要传输大批量历史数据的客户
  4. 不想自己开发后端数据推送流程
  5. 对内存使用、传输效率有一定要求

# 二、下载 LogBus2

最新版本:2.0.1.7

更新时间为:2022-03-01

linux版本下载地址 (opens new window)

# 三、使用前数据准备

  1. 确定上传数据的文件存放的目录,并配置 LogBus2 的相关配置。LogBus2 会监控文件目录下的文件变更(新建文件或 tail 已有文件)。
  2. 请勿对存放于监控目录下且已经上传的数据日志直接进行重命名,重命名日志相当于新建文件,LogBus2 将会重新上传这些文件,造成数据重复。
  3. 由于 LogBus2 运行目录下存在当前日志传输进度快照,请勿自行对 runtime 目录下的文件进行操作

# 四、LogBus2 的安装与升级

# 安装

下载 LogBus2 安装包 (opens new window),并解压。

解压后的目录结构:

  • conf
    • daemon.json:配置文件模版
  • l****ogbus:LogBus2 二进制文件
  • tools
    • configConvert:配置转换工具

# 升级

要求:LogBus2 版本 ≥ 2.0.1.7

直接执行./logbus update即可,完成升级后执行./logbus start

# 五、Logbus2 的使用及配置

# 启动参数

# 启动

./logbus start

# 停止

./logbus stop

# 检查配置、检查与 TA 系统的连通性

./logbus env

# 重置 LogBus 读取记录

./logbus reset

# 查看传输进度

./logbus progress

# 配置文件指南

# 默认配置模版

{
 "datasource": [
  {
     "file_patterns": [
       "/data/log1/*.txt",
       "/data/log2/*.log"
    ],//文件匹配符
     "app_id": "app_id",//app_id来自ta官网的token,请在TA后台的项目配置页面获取接入项目的APPID并填入此处
  },
],
 "push_url": "http://RECEIVER_URL"//http传输请使用http://receiver.ta.thinkingdata.cn/,如果您使用的是私有化部署服务,请修改传输URL为:http://数据采集地址/
}

# 常用配置

{
 "datasource": [
  {
     "file_patterns": [
       "/data/log1/*.txt",
       "/data/log2/*.log"
    ],//文件匹配符
     "app_id": "app_id",//APPID来自ta官网的token,请在TA后台的项目配置页面获取接入项目的APPID并填入此处
     "unit_remove":"day", //文件删除单位
     "offset_remove": 7,//unit_remove*offset_remove 得到最后的移除时间,offset必须大于0,否则不会生效
     "remove_dirs":false,//是否开启文件夹删除
     "http_compress":"gzip"//数据压缩格式
  }
   
],
 "cpu_limit":4,//限制Logbus2使用的CPU核数
 
 "push_url": "http://RECEIVER_URL"
}

# 完整配置项

# 配置项目列表与说明
配置
类型
取值说明
是否必填
cpu_limit
Number
限制 Logbus2 允许使用的最大 CPU 核数
push_url
String
数据接收地址,需要以 http/https 开头,如 "http://RECEIVER_URL"
✔️
datasource
Object list
数据源配置列表,具体配置见下表
✔️

# datasource(数据源配置)
配置
类型
默认值
取值说明
是否必填
app_id
String
""
数据上报的项目App ID,可在 TA 后台项目配置页面获取
app_id 与 appid_in_data 二选一
appid_in_data
Bool
false
开启此选项,Logbus2 将会以每条数据中的"#app_id"字段作为数据上报的项目App ID,不再使用 app_id 字段
。最多一个 datasource 可开启此项。
specified_push_url
Bool
false
true:直接向 push_url 的地址进行发送。
false:解析 push_url,在其后添加"/
logbus
"后缀,即 receiver 规定的 LogBus 数据接收后缀
add_uuid
Bool
false
是否在每条数据中增加 #uuid 字段,即数据唯一标识。开启会降低传输效率。
file_patterns
String list
[""]
Logbus2 监控的数据日志文件名,支持目录通配符
(Glob)
,暂时不支持正则。
✔️
ignore_files
String list
[""]
在 file_patterns 中过滤的文件名,即不进行监控的文件,支持目录通配符(Glob)
unit_remove
String
""
文件自动删除时间单位,配合 offset_remove 使用。可选按天 (day) 或小时 (hour) 删除。注意:如果没有配置文件自动删除,LogBus2 内存占用会慢慢增高
offset_remove
Int
0
文件自动删除时间值,配合 unit_remove 使用。当 offset_remove 的值大于 0 且配置了 unit_remove 时,文件自动删除将生效
remove_dirs
Bool
false
是否开启文件夹删除
http_timeout
String
"600s"
向 receiver 端发送数据时的超时时间。范围:200ms - 600s。单位支持毫秒"ms"、秒"s"、分钟"m"、小时"h"
http_compress
String
"none"
发送 http 时数据压缩的格式。none 为不压缩,可选 "gzip"

# 六、常见问题

Q:为什么开启了文件夹删除,但是 LogBus 并没有删除文件夹

A:LogBus 删除文件夹的前提是,当前文件夹内的文件被 LogBus 读取过,且现在没有任何文件在该文件夹时,才会触发文件夹删除

Q:日志怎么上传不了?

A:LogBus 读取的数据文件中,单条数据里不要有换行符;配置的数据文件不支持正则,只能使用通配符(Glob),请注意配置的数据文件规则是否可以匹配到对应日志文件

# 七、Releases Note

# 版本:2.0.1.7 --- 2022.03.01

优化:

  • 运行效率,提升性能
  • 文件删除逻辑
  • 位点文件导出逻辑
  • 内存占用