# 安装教程
此文档同时适用于个人版和企业版软件的安装,个人版和企业版软件安装方式一致!!!
请先下载安装包。默认账户
admin/admin
。
为了便于您理解安装的时候需要配置的参数,请您先学习日志监控相关的功能设计
# 本地部署单机版
# 准备工作
- 依赖 java 环境,先自行在服务器安装
JDK
,并配置环境变量,推荐版本JDK8
JDK11
- 下载安装包解压到需要安装的目录
# 配置参数
- 修改
conf/application.properties
文件中的以下配置
# api访问路径的统一根路径,example: http://192.168.xx.xx:8520/api/xxx
# api context
dbapi.api.context=api
# 如果不修改数据库地址将默认使用自带的内嵌元数据库sqlite
# 元数据库地址,可以使用mysql或者自带的sqlite
spring.datasource.dynamic.datasource.meta-db.driver-class-name=org.sqlite.JDBC
spring.datasource.dynamic.datasource.meta-db.url=jdbc:sqlite::resource:sqlite.db
spring.datasource.dynamic.datasource.meta-db.username=
spring.datasource.dynamic.datasource.meta-db.password=
# 将API访问日志写入日志数据库(推荐clickhouse)的方式,值只能是db/kafka/null
# db代表dbapi直连日志数据库,直接将API访问日志写入日志数据库
# kafka代表dbapi将API访问日志写入kafka,用户需要自行从kafka收集日志写入日志数据库
# null代表dbapi只会将API访问日志写入本地磁盘文件(logs/dbapi-access.log),用户需要自行从磁盘文件收集日志写入日志数据库
access.log.writer=null
# 日志数据库地址,推荐使用clickhouse,如果您不需要使用页面上的监控功能,可以不配置日志数据库地址
spring.datasource.dynamic.datasource.access-log-db.driver-class-name=ru.yandex.clickhouse.ClickHouseDriver
spring.datasource.dynamic.datasource.access-log-db.url=jdbc:clickhouse://127.0.0.1:8123/default
spring.datasource.dynamic.datasource.access-log-db.username=default
spring.datasource.dynamic.datasource.access-log-db.password=123456
# 如果配置了access.log.writer=kafka,那么还需要配置kafka地址和日志写入的topic
access.log.kafka.topic=dbapi_access_log
spring.kafka.bootstrap-servers=127.0.0.1:9092
如果配置了 mysql 作为元数据库,请先在 mysql 执行初始化脚本
sql/ddl_mysql.sql
如果配置了日志数据库地址,请先在日志数据库执行初始化脚本,DBAPI 提供了 clickhouse 和 mysql 的脚本:
sql/access_log_clickhouse.sql
,sql/access_log_mysql.sql
如果日志数据库使用的是 mysql,我们不推荐和元数据库使用同一个物理的 mysql,尽量分开,使用另一个物理的 mysql
- (可选)配置日志自动清理
仅企业版软件支持此项配置。
如果您使用了日志数据库,可以配置自动清理日志数据库中的日志。
修改conf/application.properties
文件中的以下配置
# 是否启用自动清理,默认是关闭的
# Enable or disable automatic cleanup of access logs (true/false)
access.log.autoClean.enable=false
# 清理任务调度时间,默认每天凌晨3点执行
# Cron expression for scheduling the access log cleanup task (executes daily at 3:00 AM by default)
access.log.autoClean.cron=0 0 3 * * ?
# 日志数据最大保留天数,默认15天
# Number of days to retain access logs before cleanup (15 days by default)
access.log.autoClean.retention.days=15
- (可选)修改端口号
修改conf/applicaton-standalone.properties
文件中的server.port
server.port=8520
- (可选)修改 UI 网页允许哪些 IP 访问
修改conf/applicaton-standalone.properties
文件中的dbapi.ui.allowed.ips
# 单机模式下,配置哪些IP可以访问UI网页,如果不配置表示所有IP都可以访问
dbapi.ui.allowed.ips=
- (可选)修改内存参数
修改bin/jvm_env.properties
文件中的standalone_opts
值
#standalone_opts="-Xms1g -Xmx4g -Xmn2g"
可以保持默认不修改
- (可选)配置 java 命令地址
如果您安装了多个版本的 JDK,需要使用指定版本的 JDK,请配置此项。 可以不配置,如果不配置默认使用环境变量中的 java 命令
修改bin/jvm_env.properties
文件中的JAVA_LOCATION
值,值填写 java 命令所在的全路径,比如/usr/bin/java
JAVA_LOCATION="/usr/bin/java"
# 启动命令
- Linux 一键启停
# 如果是ubuntu/debian系统请使用bash,不要使用sh
bash bin/dbapi-daemon.sh start standalone
bash bin/dbapi-daemon.sh stop standalone
为了便于前台看到日志,您也可以前台启动
bash bin/dbapi.sh start standalone
如果是 windows 操作系统请右键点击
bin/dbapi.ps1
文件,选择使用 PowerShell 运行注意 windows 系统只支持 standalone 模式运行,不支持集群模式
第一次启动系统会自动退出,需要激活,激活后重启即可使用
浏览器访问
http://192.168.xx.xx:8520
进入 UI,为了防止有上个版本的缓存,请注意浏览器 Ctrl+F5 强制刷新缓存
一定要 激活!激活!激活!要申请许可证才能用!要申请许可证才能用!要申请许可证才能用!
# 本地部署集群版
# 集群角色说明
- 集群中有 3 种服务进程,分别是
manager
gateway
apiServer
。 manager
是管理服务,也就是 web UI 服务,通过这个 UI 服务可以创建数据源、分组、API,并管理 API 的在线调试、执行、发布、下线等操作,此服务进程整个集群只有一个gateway
是网关服务,负责分发 API 请求到不同的apiServer
,此服务进程整个集群只有一个apiServer
是 API 服务,负责接收 API 请求,执行 API 中的业务逻辑,此服务进程整个集群可以有多个
# 准备工作
- 集群部署依赖
nacos
、mysql
、redis
,请先自行安装nacos
(推荐 1.4.2 版本)、mysql
、redis
- 准备多台机器,每台安装
JDK
并配置 java 环境变量,推荐版本JDK8
JDK11
JDK14
- 所有服务器的时间一定要设置同步
推荐将 java 环境变量配置到
~/.bashrc
文件
# ssh 免密配置
- 选一台机器 host1 作为部署机,配置 host1 到其他每台机器的 ssh 免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
for ip in host2 host3; # 请将此处 host2 host3 替换为自己要部署的机器的 hostname
do
ssh-copy-id $ip # 该操作执行过程中需要手动输入部署用户的密码
done
# 下载解压
- 下载安装包并解压到部署机 host1 需要安装的目录
# 数据库初始化
- 在 mysql 创建新的数据库,并执行初始化脚本
sql/ddl_mysql.sql
# 配置参数
- 修改
conf/application.properties
文件中的以下配置
#################################### please config properties below #####################################
# api访问路径的统一根路径,example: http://192.168.xx.xx:8520/api/xxx
# api context
dbapi.api.context=api
# 元数据库地址,集群版只能使用mysql
spring.datasource.dynamic.datasource.meta-db.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.meta-db.url=jdbc:mysql://127.0.0.1:3306/dbapi?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.dynamic.datasource.meta-db.username=root
spring.datasource.dynamic.datasource.meta-db.password=root
# 将API访问日志写入日志数据库(推荐clickhouse)的方式,值只能是db/kafka/null
# db代表dbapi直连日志数据库,直接将API访问日志写入日志数据库
# kafka代表dbapi将API访问日志写入kafka,用户需要自行从kafka收集日志写入日志数据库
# null代表dbapi只会将API访问日志写入本地磁盘文件(logs/dbapi-access.log),用户需要自行从磁盘文件收集日志写入日志数据库
access.log.writer=null
# 日志数据库地址,推荐使用clickhouse,如果您不需要使用页面上的监控功能,可以不配置日志数据库地址
spring.datasource.dynamic.datasource.access-log-db.driver-class-name=ru.yandex.clickhouse.ClickHouseDriver
spring.datasource.dynamic.datasource.access-log-db.url=jdbc:clickhouse://127.0.0.1:8123/default
spring.datasource.dynamic.datasource.access-log-db.username=default
spring.datasource.dynamic.datasource.access-log-db.password=123456
# 如果配置了access.log.writer=kafka,那么还需要配置kafka地址和日志写入的topic
access.log.kafka.topic=dbapi_access_log
spring.kafka.bootstrap-servers=127.0.0.1:9092
############################## if cluster, please config properties below ##############################
# nacos address, needed if cluster mode
spring.cloud.nacos.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
spring.cloud.nacos.discovery.namespace=public
# redis address, needed if cluster mode
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.database=0
spring.redis.password=
如果配置了日志数据库地址,请先在日志数据库执行初始化脚本,DBAPI 提供了 clickhouse 和 mysql 的脚本:
sql/access_log_clickhouse.sql
,sql/access_log_mysql.sql
如果日志数据库使用的是 mysql,我们不推荐和元数据库使用同一个物理的 mysql,尽量分开,使用另一个物理的 mysql
- (可选)配置日志自动清理
仅企业版软件支持此项配置。
如果您使用了日志数据库,可以配置自动清理日志数据库中的日志。
修改conf/application.properties
文件中的以下配置
# 是否启用自动清理,默认是关闭的
# Enable or disable automatic cleanup of access logs (true/false)
access.log.autoClean.enable=false
# 清理任务调度时间,默认每天凌晨3点执行
# Cron expression for scheduling the access log cleanup task (executes daily at 3:00 AM by default)
access.log.autoClean.cron=0 0 3 * * ?
# 日志数据最大保留天数,默认15天
# Number of days to retain access logs before cleanup (15 days by default)
access.log.autoClean.retention.days=15
- (可选)修改端口号
修改gateway
端口号,在conf/applicaton-gateway.yml
文件中的server.port
server:
port: 8525
修改manager
端口号,在conf/applicaton-manager.properties
文件中的server.port
server.port=8523
修改apiServer
端口号,在conf/applicaton-apiServer.properties
文件中的server.port
server.port=8524
- (可选)修改内存参数
修改bin/jvm_env.properties
文件中的manager_opts
apiServer_opts
gateway_opts
值
# 集群部署的manager jvm参数配置
#manager_opts="-Xms512m -Xmx1g -Xmn512m"
# 集群部署的apiServer jvm参数配置
#apiServer_opts="-Xms1g -Xmx4g -Xmn2g"
# 集群部署的gateway jvm参数配置
#gateway_opts="-Xms1g -Xmx4g -Xmn2g"
可以保持默认不修改
- (可选)配置 java 命令地址
如果您安装了多个版本的 JDK,需要使用指定版本的 JDK,请配置此项。 可以不配置,如果不配置默认使用环境变量中的 java 命令
集群版我们强烈建议您配置此项,因为集群启动脚本会使用 ssh 远程执行 java 命令,但是 ssh 远程执行命令时,默认不加载环境变量配置,这会导致可能识别不到系统的 java 命令
修改bin/jvm_env.properties
文件中的JAVA_LOCATION
值,值填写 java 命令所在的全路径,比如/usr/bin/java
JAVA_LOCATION="/usr/bin/java"
- 修改
conf/install_config.conf
文件,配置要安装的机器节点
# 所有要安装DBApi的主机ip或hostname,用逗号分隔
ips=host1,host2,host3
sshPort=22
# 要安装gateway的主机
gateway=host1
# 要安装apiServer的主机,多个用逗号分隔
apiServers=host1,host2,host3
# 要安装manager的主机
manager=host2
# 拷贝安装文件
- 拷贝 host1 中的安装文件到其他每台机器的相同目录,可使用脚本一键拷贝
bash bin/scp-host.sh
# 启动命令
- 集群操作脚本
# 一键启动集群
bash bin/start-all.sh
# 一键停止集群
bash bin/stop-all.sh
# 一键查看集群运行状态
bash bin/status-all.sh
# 手动启停单个服务
bash bin/dbapi-daemon.sh start gateway
bash bin/dbapi-daemon.sh start manager
bash bin/dbapi-daemon.sh start apiServer
bash bin/dbapi-daemon.sh stop gateway
bash bin/dbapi-daemon.sh stop manager
bash bin/dbapi-daemon.sh stop apiServer
# 手动前台启动单个服务(可以在命令行前台查看日志)
bash bin/dbapi.sh start gateway
bash bin/dbapi.sh start manager
bash bin/dbapi.sh start apiServer
注意如果是
ubuntu/debian
系统,请使用bash
命令,不要使用sh
命令
第一次启动系统会自动退出,需要激活,激活后重启即可使用
浏览器访问
http://192.168.xx.xx:8523
进入 UI,为了防止有上个版本的缓存,请注意浏览器 Ctrl+F5 强制刷新缓存。 API 通过 gateway 来访问http://192.168.xx.xx:8525/api/xx
一定要 激活!激活!激活!要申请许可证才能用!要申请许可证才能用!要申请许可证才能用!
# 附录
- docker 快速安装 nacos
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.4.2