# LogBus2 使用指南
# 一、LogBus2 简介
LogBus2 是在原 LogBus 基础上,重新开发的日志同步工具。相比原 LogBus,其内存占用仅为原来版本的五分之一,速度提升至原来的5倍。
Logbus2 主要用于将后端的日志数据实时地导入到 TA 后台,其核心工作原理类似于 Flume、Loggie,会监控服务器日志目录下的文件流,当目录下任意日志文件有新数据产生时,会对新数据进行校验,并实时发送至 TA 后台。
我们建议以下几类用户使用 LogBus2 接入数据:
- 使用 TA 服务端 SDK 的用户,通过 LoggerConsumer 配合 LogBus2 上传数据
- 对数据的准确性及维度要求较高,仅通过客户端 SDK 无法满足数据需求的客户,或不方便接入客户端 SDK 的客户
- 需要传输大批量历史数据的客户
- 不想自己开发后端数据推送流程
- 对内存使用、传输效率有一定要求
# 二、下载 LogBus2
最新版本:2.0.1.7
更新时间为:2022-03-01
linux版本下载地址 (opens new window)
# 三、使用前数据准备
- 确定上传数据的文件存放的目录,并配置 LogBus2 的相关配置。LogBus2 会监控文件目录下的文件变更(新建文件或 tail 已有文件)。
- 请勿对存放于监控目录下且已经上传的数据日志直接进行重命名,重命名日志相当于新建文件,LogBus2 将会重新上传这些文件,造成数据重复。
- 由于 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
优化:
- 运行效率,提升性能
- 文件删除逻辑
- 位点文件导出逻辑
- 内存占用