# 安装教程

此文档同时适用于个人版和企业版软件的安装,个人版和企业版软件安装方式一致!!!

请先下载安装包。默认账户admin/admin

为了便于您理解安装的时候需要配置的参数,请您先学习日志监控相关的功能设计

# 本地部署单机版

# 准备工作

  • 依赖java环境,先自行在服务器安装JDK,并配置环境变量,推荐版本JDK8 JDK11 JDK14
  • 下载安装包解压到需要安装的目录

# 配置参数

  • 修改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.sqlsql/access_log_mysql.sql

  • 可选)修改端口号

修改conf/applicaton-standalone.properties文件中的server.port

server.port=8520
  • 可选)修改内存参数

修改bin/jvm_env.properties文件中的standalone_opts

#standalone_opts="-Xms1g -Xmx4g -Xmn2g"

可以保持默认不修改

# 启动命令

  • Linux一键启停
sh bin/dbapi-daemon.sh start standalone
sh bin/dbapi-daemon.sh stop standalone

# 如果是ubuntu系统请使用bash,不要使用sh
bash bin/dbapi-daemon.sh start standalone
bash bin/dbapi-daemon.sh stop standalone

为了便于调试,您也可以前台启动

sh bin/dbapi.sh start standalone
  • 如果是windows操作系统请右键点击bin/dbapi.ps1文件,选择使用PowerShell运行

注意windows系统只支持standalone模式运行,不支持集群模式

  • 第一次启动系统会自动退出,需要激活,激活后重启即可使用

  • 浏览器访问http://192.168.xx.xx:8520进入UI

# 本地部署集群版

# 集群角色说明

  • 集群中有3种服务进程,分别是manager gateway apiServer
  • manager是管理服务,也就是web UI服务,通过这个UI服务可以创建数据源、分组、API,并管理API的在线调试、执行、发布、下线等操作,此服务进程整个集群只有一个。
  • gateway是网关服务,此服务进程整个集群只有一个,负责分发API请求到不同的apiServer
  • apiServer是API服务,负责接收API请求,执行API中的业务逻辑,此服务进程整个集群可以有多个。

# 准备工作

  • 集群部署依赖nacosmysqlredis,请先自行安装nacos(推荐1.4.2版本)、mysqlredis
  • 准备多台机器,每台安装JDK并配置java环境变量,推荐版本JDK8 JDK11 JDK14

# 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.sqlsql/access_log_mysql.sql

  • 可选)修改端口号

修改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"

可以保持默认不修改

  • 修改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中的安装文件到其他每台机器的相同目录,可使用脚本一键拷贝
sh bin/scp-host.sh

# 启动命令

  • 集群操作脚本
# 一键启动集群
sh bin/start-all.sh

# 一键停止集群
sh bin/stop-all.sh

# 一键查看集群运行状态
sh bin/status-all.sh

# 手动启停单个服务
sh bin/dbapi-daemon.sh start gateway
sh bin/dbapi-daemon.sh start manager
sh bin/dbapi-daemon.sh start apiServer

sh bin/dbapi-daemon.sh stop gateway
sh bin/dbapi-daemon.sh stop manager
sh bin/dbapi-daemon.sh stop apiServer

# 手动前台启动单个服务
sh bin/dbapi.sh start gateway
sh bin/dbapi.sh start manager
sh bin/dbapi.sh start apiServer

注意如果是ubuntu/debian系统,请使用bash命令,不要使用sh命令

  • 第一次启动系统会自动退出,需要激活,激活后重启即可使用

  • 浏览器访问http://192.168.xx.xx:8523进入UI; 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