Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oblogproxy
提交
21738433
O
oblogproxy
项目概览
oceanbase
/
oblogproxy
大约 1 年 前同步成功
通知
24
Star
29
Fork
10
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oblogproxy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
21738433
编写于
10月 21, 2021
作者:
Y
yuqi.fy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more detailed docs
上级
09b6eeff
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
130 addition
and
26 deletion
+130
-26
docs/manual.md
docs/manual.md
+130
-26
未找到文件。
docs/manual.md
浏览文件 @
21738433
...
...
@@ -3,25 +3,52 @@
## 编译
### 前置条件
0.
GCC>=5.2, make, libstdc++-static, libasan(如果开启WITH_ASAN)
1.
[
CMake
](
https://cmake.org
)
>= 3.2
2.
预编译的
[
liboblog.so
](
https://github.com/oceanbase/oceanbase
)
, 其依赖libaio, 需要安装
3.
Openssl 1.0.
*
(
*
当前仅支持amd64)
#### 1. 安装CMake
要求版本大于等于3.20, 安装包见:
[
https://cmake.org/download
](
https://cmake.org/download
)
#### 2. 安装依赖
Fedora based (including CentOS, Fedora, OpenAnolis, RedHat, UOS, etc.)
```
bash
yum
install
git wget rpm
*
cpio gcc gcc-c++ make glibc-devel glibc-headers libstdc++-static binutils openssl-devel libaio
```
Debian based (including Debian, Ubuntu, etc.)
```
bash
apt-get
install
git wget rpm rpm2cpio cpio gcc make build-essential binutils openssl-dev libaio-dev
```
### 编译操作
1.
获取 liboblog.so:https://github.com/oceanbase/oceanbase
这里假设你成功编译,并把其头文件和so放在了
`/path/to/liboblog`
。
2.
【可选】创建编译环境目录
```
shell
mkdir
buildenv
#### 1. 获取 liboblog.so,
下载预编译的包或者自行编译二选一。
**下载预编译包:**
预编译的产出在:
[
Release
](
https://github.com/oceanbase/oceanbase/releases
)
,liboblog的包名是"oceanbase-ce-devel-xxxx.系统版本.x86_64.rpm",根据自己的系统选取,解压:
```
bash
rpm2cpio oceanbase-ce-devel-xxxx.系统版本.x86_64.rpm | cpio
-div
&&
mv
./usr ./liboblog
# 解压后,liboblog.so 和 liboblog.h 分别在 ./liboblog/lib 和 ./liboblog/include 下
```
**自行编译:**
下面参考了
[
liboblog编译说明
](
https://open.oceanbase.com/docs/community/oceanbase-database/V3.1.1/abyu9b
)
,编译
[
OceanBase社区版
](
https://github.com/oceanbase/oceanbase
)
时,添加参数 OB_BUILD_LIBOBLOG=ON。
```
bash
git clone https://github.com/oceanbase/oceanbase.git
&&
cd
oceanbase
bash ./build.sh release
--init
-DOB_BUILD_LIBOBLOG
=
ON
--make
```
3.
执行CMake编译
获得编译产出:
-
liboblog.so: 在
`build_release/src/liboblog/src/`
目录下。
-
liboblog.h: 在
`src/liboblog/src/`
目录下。
这里假设你把
`liboblog.so`
和
`liboblog.h`
都放在了
`/path/to/liboblog`
。
#### 2. 执行CMake编译
```
shell
cd
buildenv
mkdir
buildenv
&&
cd
buildenv
# 设置CMake环境变量从而可以找到预编译的liboblog
CMAKE_INCLUDE_PATH
=
/path/to/liboblog
CMAKE_LIBRARY_PATH
=
/path/to/liboblog cmake ..
# 执行
...
...
@@ -38,7 +65,7 @@ CMAKE_INCLUDE_PATH=/path/to/liboblog CMAKE_LIBRARY_PATH=/path/to/liboblog cmake
make
-j
6
```
**全部编译参数**
:
**全部编译参数**
:
| 选项 | 默认 | 说明 |
| ------ | -------- | ------- |
...
...
@@ -51,39 +78,116 @@ make -j 6
| USE_CXX11_ABI | ON | 是否使用C++11 ABI。注意如果用了预编译的依赖,需要保持一致,否则会找不到符号 |
### 编译依赖说明
默认情况下,会自动下载并编译依赖库。但有几个例外:
-
**GCC**
:推荐>=5.2。
-
**openssl**
:当前是去寻找系统安装的,但是1.0.
*和1.1.*
版本API少量不兼容,当前liboblog和logproxy都是是基于1.0.
*
实现的,需要版本一致。
-
**liboblog**
:如前文描述,需要自行编译获取,并由环境变量指定路径,运行时需要指定LD_LIBRARY_PATH。
-
**libaio**
:liboblog依赖这个,需要提前安装。
-
**oblogmsg**
:liboblog和logproxy共同依赖
[
oblogmsg
](
https://github.com/oceanbase/oblogmsg
)
,自动依赖会采用动态库,并复制到当前编译目录,运行时需要指定LD_LIBRARY_PATH。
## 运行
LogProxy 单一配置文件,用代码目录下的
`conf.json`
即可:
oblogproxy 单一配置文件,用代码目录下的
`conf.json`
。
### 1. 配置系统租户
获得observer的sys租户账号密码,通常在创建observer集群时创建,也可以单独创建。oblogproxy需要加密的配置,执行以下命令即可得到:
```
bash
# 这里假设账号密码分别为:user,pswd
./logproxy
-x
user
# 会输出 4B9C75F64934174F4E77EE0E9A588118
./logproxy
-x
pswd
# 会输出 DCE2AF09D006D6A440816880B938E7B3
```
把获得账号密码密文分别配置到
`conf.json`
中的
`ob_sys_username`
和
`ob_sys_password`
字段,例如:
```
json
{
"ob_sys_username"
:
"4B9C75F64934174F4E77EE0E9A588118"
,
"ob_sys_password"
:
"DCE2AF09D006D6A440816880B938E7B3"
}
```
### 2. 组织程序目录
```
bash
# 创建程序目录
mkdir
-p
./oblogproxy/bin ./oblogproxy/run
# 复制配置文件
cp
-r
../conf ./oblogproxy/
# 复制起停脚本
cp
../script/run.sh ./oblogproxy/bin/
# 复制程序二进制
cp
logproxy ./oblogproxy/bin/
```
### 3. 启动oblogproxy
```
shell
# 指定liboblog.so目录,然后logproxy可以动态依赖
cd
./oblogproxy
# 指定liboblog.so目录,让oblogproxy可以动态依赖
export
LD_LIBRARY_PATH
=
/path/to/liboblog
./logproxy
-f
./conf/conf.json
bash ./run.sh start
```
默认监听
`2983`
端口,修改
`conf.json`
中的
`service_port`
字段可更换监听端口。
此时可以使用
[
LogProxy Client
](
https://github.com/oceanbase/oblogclient
)
进行OB数据订阅,见
[
使用文档
](
https://github.com/oceanbase/oblogclient/docs/manual.md
)
此时可以使用
[
oblogproxy Client
](
https://github.com/oceanbase/oblogclient
)
进行OB数据订阅,见
[
使用文档
](
https://github.com/oceanbase/oblogclient
)
## 链路加密
### Client与
LogProxy间TLS通信
### Client与
oblogproxy间TLS通信
修改
`conf.json`
中以下字段:
-
`channel_type`
: "tls",开启与Client通信的TLS。
-
`tls_ca_cert_file`
: CA证书文件路径
-
`tls_cert_file`
:
务器端签名证书路径
-
`tls_key_file`
:
务器端的私钥路径
-
`tls_verify_peer`
: true,开启Client验证
-
`tls_ca_cert_file`
: CA证书文件路径
(绝对路径)
-
`tls_cert_file`
:
服务器端签名证书路径(绝对路径)
-
`tls_key_file`
:
服务器端的私钥路径(绝对路径)
-
`tls_verify_peer`
: true,开启Client验证
(绝对路径)
对应的Client也需要相应配置,见
[
LogProxy Client链路加密
](
https://github.com/oceanbase/oblogclient/docs/manual.md#链路加密
)
。
对应的Client也需要相应配置,见
[
oblogproxy Client链路加密
](
https://github.com/oceanbase/oblogclient
)
。
###
LogP
roxy(liboblog)与ObServer间TLS通信
###
oblogp
roxy(liboblog)与ObServer间TLS通信
修改
`conf.json`
中以下字段:
-
`liboblog_tls`
: true,开启与ObServer通信的TLS。
-
`liboblog_tls_cert_path`
: ObServer相关证书文件路径,可以拷贝ObServer部署文件路径下的
`wallet`
文件夹,需要确保此路径包含:ca.pem,client-cert.pem,client-key.pem"
-
`liboblog_tls_cert_path`
: ObServer相关证书文件路径(绝对路径),可以拷贝ObServer部署文件路径下的
`wallet`
文件夹,需要确保此路径包含:ca.pem,client-cert.pem,client-key.pem
## 配置
通常,您只需要关心前文描述过的参数。对于其他参数,在不完全了解参数用途的情况下,不建议修改。
```
json
{
"service_port"
:
2983
,
//
服务端口
"encode_threadpool_size"
:
8
,
//
编码线程池初始化大小
"encode_queue_size"
:
20000
,
//
编码线程队列长度
"max_packet_bytes"
:
8388608
,
//
最大数据包字节数
"record_queue_size"
:
1024
,
//
数据发送队列长度
"read_timeout_us"
:
2000000
,
//
数据读取队列批次等待周期,单位微秒
"read_fail_interval_us"
:
1000000
,
//
数据读取队列重试等待周期,单位微秒
"read_wait_num"
:
20000
,
//
数据读取队列批次等待数量
"send_timeout_us"
:
2000000
,
//
发送数据包超时,单位微秒
"send_fail_interval_us"
:
1000000
,
//
发送数据包失败重试等待周期,单位微秒
"command_timeout_s"
:
10
,
//
命令执行超时,单位微妙
"log_quota_size_mb"
:
5120
,
//
日志文件总大小阈值,单位MB
"log_quota_day"
:
30
,
//
日志文件存储时间阈值,单位天
"log_gc_interval_s"
:
43200
,
//
日志文件清理周期,单位秒
"oblogreader_path_retain_hour"
:
168
,
//
oblogreader子进程目录保留时间,单位小时
"oblogreader_lease_s"
:
300
,
//
oblogreader子进程启动探测时间,单位秒
"oblogreader_path"
:
"./run"
,
//
oblogreader子进程上下文目录根路径
"allow_all_tenant"
:
true
,
//
是否允许订阅所有租户
"auth_user"
:
true
,
//
是否鉴权连接用户
"auth_use_rs"
:
false
,
//
是否通过root
server鉴权用户
"auth_allow_sys_user"
:
true
,
//
是否允许订阅系统租户
"ob_sys_username"
:
""
,
//
系统租户用户名密文,用来订阅增量
"ob_sys_password"
:
""
,
//
系统租户密码密文,用来订阅增量
"counter_interval_s"
:
2
,
//
计数器周期,单位秒
"debug"
:
false
,
//
打印debug信息
"verbose"
:
false
,
//
打印更多debug信息
"verbose_packet"
:
false
,
//
打印数据包信息
"readonly"
:
false
,
//
只读模式
"channel_type"
:
"plain"
,
//
链路类型
"tls_ca_cert_file"
:
""
,
//
CA证书文件路径(绝对路径)
"tls_cert_file"
:
""
,
//
服务器端签名证书路径(绝对路径)
"tls_key_file"
:
""
,
//
服务器端的私钥路径(绝对路径)
"tls_verify_peer"
:
true
,
//
开启Client验证
"liboblog_tls"
:
false
,
//
开启与ObServer通信的TLS
"liboblog_tls_cert_path"
:
""
//
ObServer相关证书文件路径(绝对路径)
}
```
以上的路径需要使用
`绝对路径`
。
###
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录