# 安装教程

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

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

# 本地部署单机版

  • 依赖java环境,先自行在服务器安装jdk8+,并配置环境变量
  • 下载安装包解压到需要安装的目录
  • 修改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

  • 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
  • 如果是windows操作系统请右键点击bin/dbapi.ps1文件,选择使用PowerShell运行

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

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

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

# 本地部署集群版

  • 集群部署依赖nacosmysqlredis,请先自行安装nacos(推荐1.4.2版本)、mysqlredis
  • 准备多台机器,每台安装jdk8+并配置java环境变量
  • 选一台机器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

  • 修改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/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

注意如果是ubuntu系统,请使用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