Archery部署与使用

archery为开源的SQL审核查询平台

部署

下面例子演示的是1.8.5的部署方法

1、下载archary,地址如下:

https://github.com/hhyo/archery/releases/

2、进入解压后目录下,执行如下命令:

cd Archery-1.8.5/src/docker-compose/
docker-compose -f docker-compose.yml up -d   #注意:需要提前安装docker-compose
#docker-compose下载地址:https://github.com/docker/compose

如果报如下错误,说明docker-compose的版本可能过低,需要升级,如下:

ERROR: The Compose file './docker-compose.yml' is invalid because:
services.archery.depends_on contains an invalid type, it should be an array

3、表结构初始化,进入容器archery中,执行如下命令:

docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql  
python3 manage.py migrate

注:如果使用单独安装的MySQL和redis,就需要修改/opt/archery/archery/settings.py中的数据库配置

4、执行数据初始化:

python3 manage.py dbshell  < sql/fixtures/auth_group.sql
python3 manage.py dbshell <  src/init_sql/mysql_slow_query_review.sql

5、创建管理用户:

python3 manage.py createsuperuser  #输入用户名、邮件、密码即可

6、重启服务:

docker restart archery

7、通过web端访问页面:

http://10.9.2.247:9123/

操作命令:

启动:docker-compose up -d
停止: docker-compose stop
重启:docker-compose restart

部署问题排查:

1、通过docker ps 可以看到mysql一直处于restarting状态,查看日志docker logs mysql 看到如下内容:

解决办法:修改Archery-1.8.5/src/docker-compose/mysql/my.cnf中的log_bing日志文件位置为:/var/lib/mysql/mysql-bin.index即可(容器将此配置文件映射进内部)

重启MySQL:docker restart mysql

继续从第3步开始进行初始化即可

下面例子演示1.10.0的部署方法,使用容器,但是使用外部的mysql 和 redis

1、下载安装包,如下:

wget https://github.com/hhyo/Archery/archive/refs/tags/v1.10.0.tar.gz

2、编辑.env环境变量文件,修改MySQL和redis的地址和用户密码,如下:

vim Archery-1.10.0/src/docker-compose/.env

  • Abcd1234:MySQL和Redis的root用户密码,MySQL也可自定义别的用户和密码
  • archery:mysql中的库名,后期初始化需要用

3、修改docker-compose.yml,删除mysql和redis模块,并修改下面archery的版本为v1.10.0,如图:

4、修改Archery-1.10.0/src/docker-compose/inception/config.toml文件,指定备份用户,如图:

登录archery使用的数据库,赋予备份用户bakcup创建数据库权限:

grant create on . to 'backup'@"%"

赋予backup用户创建、插入、更新表等权限,如下:

grant create,insert,select,update,alter on . to "backup"@"%";

赋予root用户允许远程操作,并有全部数据库与表的权限,如下:

grant all privileges on *.* to 'root'@"%" with grant option;

最后按照1.8.5的安装教程的第2步开始操作即可,也就是docker-compose -f docker-compose.yml up -d

5、容器运行起来后,将.env文件copy到容器的/opt/archery目录,如下:

docker cp .env archery:/opt/archery

使用

1、登录archery后,点击系统管理-资源组管理-添加组,如图:

设置资源组名称,点击保存即可,如图:

注:这个资源组要与下方创建的实例关联

2、点击实例管理–实例列表–添加实例,如图:

选择下方的资源组、实例标签后,点击保存即可,在实例列表页面,可点击测试看是否连接成功,如图:

注:本例子演示的是archery部署用的数据库和添加的数据库实例是一个,实际使用中,最好分开,archery单独用一个数据库

3、配置goInception,此功能主要用于SQL审核、回滚等操作,点击系统管理–配置项管理–系统配置,如图:

  • GO_INCEPTION_HOST:指定容器名即可
  • BACKUP_USER:就是上面创建的backup

4、配置权限组,主要用于后续配置审批流程的时候指定权限,点击系统管理–>其他配置管理–>权限组管理,如图:

自定义组名称和选择此组具备的权限,如图:

5、配置工单审核流,点击系统管理–>配置项管理–>工单审核流配置,选择工单类型和组,如图:

选择审批流程,也就是之前创建的权限组,如图:

6、执行SQL上线操作,执行后查看审批流程,如图:

创建其他用户

1、点击系统管理–>其他配置管理–>用户管理,通过之前创建的权限组,即可给用户分配权限,如图:

再给用户分配资源组即可,如图:

标签