SQL 审核查询平台-Archery安装
在技术团队内部进行有效的 SQL 管理并不容易,如何进行数据库的统一管理,和线上 SQL 操作的统一审核,变得尤为重要。Archery,这个开源的 SQL 审核查询平台,或许能为 SQL 审核工作带来不小的效率提升。
一条高质量的 SQL 语句能使整个服务加速好几倍,而一条有问题的 SQL 则可能会引发灾难,造成严重后果,因此,数据库管理人员的工作就十分重要了,他们掌握着千百万数据的命运。
简介
Archery,是 hhyo 在 Github 上开源的 SQL 审核查询平台,项目位于 https://github.com/hhyo/Archery,同时也在 Gitee 上开源,位于 https://gitee.com/rtttte/Archery
测试站部署
测试环境介绍
服务器:centos7
IP: 192.168.1.6
2C-16G-2T
docker部署 下载了 Archery-1.7.13 解压.
cd src/docker-compose/
archery docker-compose.yml inception mysql
安装并且docker启动
如果有端口占用,需要修改 docker-compose.yml 里的文件端口,但是需要修改配置,宿主机最好不要占用这些端口
redis 端口:6379
mysql端口:3306
inception端口:6669
goinception端口:4000
archery端口:9123
# 启动
docker-compose -f docker-compose.yml up -d
生成了五个docker实例:redis inception archery goinception mysql
# 表结构初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql
python3 manage.py migrate
# 数据初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
# 创建管理用户
python3 manage.py createsuperuser
# 重启
docker restart archery
# 日志查看和问题排查
docker logs archery -f --tail=50
访问
http://192.168.1.6:9123/
关闭docker服务
docker stop redis
docker stop inception
docker stop archery
docker stop goinception
docker stop mysql
角色权限
default
DBA 数据库管理员(Database Administrator,简称DBA)
RD 研发(Research and Development)
PM 项目经理( Project Manager )
QA 测试(QUALITY ASSURANCE,中文意思是“质量保证”)
工作流:
RD-->DBA-->CTO(审批)
工作流
功能说明
项目提供简单的多级审批流配置,审批流程和资源组以及审批类型相关,不同资源组和审批类型可以配置不同的审批流程,审批流程配置的是权限组,可避免审批人单点的问题
相关配置
在系统管理-配置项管理页面,可进行组工单审批流程的配置
对于SQL上线和SQL查询权限工单,如果用户拥有(‘sql_review’, ‘审核SQL上线工单’)、(‘sql_execute_for_resource_group’, ‘执行SQL上线工单’)、(‘query_review’, ‘审核查询权限’)权限,就可以查看到当前用户所在资源组的所有工单
工单待审核时,关联当前审批权限组、并且关联工单所在资源组的用户,均可查看审核工单(资源组隔离)
待办列表包含当前用户可审核的所有工单
正式站搭建
服务器环境介绍
服务器:centos7
IP: 192.168.1.12
4C-8G-4T
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
/usr/local/bin/docker-compose -v
docker-compose version 1.24.1, build 4667896b
导出镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hanchuanchuan/goinception latest 84fa8c5e2832 43 hours ago 88.2 MB
docker.io/mysql 5.7 d589ea3123e0 3 days ago 448 MB
docker.io/hhyo/archery 1.7.13 69dc37436859 9 days ago 2.03 GB
docker.io/redis 5 f60d84d4d72c 4 weeks ago 98.3 MB
docker save 84fa8c5e2832 > /data/docker/backup/goinception.tar
docker save d589ea3123e0 > /data/docker/backup/mysql-5.7.tar
docker save 69dc37436859 > /data/docker/backup/archery.tar
docker save f60d84d4d72c > /data/docker/backup/redis.tar
-rw-r--r-- 1 root root 2.0G Sep 8 17:22 archery.tar
-rw-r--r-- 1 root root 87M Sep 8 17:20 goinception.tar
-rw-r--r-- 1 root root 433M Sep 8 17:20 mysql-5.7.tar
-rw-r--r-- 1 root root 98M Sep 8 17:22 redis.tar
将docker镜像复制到正式
scp -P 60920 ./* root@192.168.1.12:/data/docker/backup/
恢复镜像
docker load < /data/docker/backup/archery.tar
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 69dc37436859 9 days ago 2.03 GB
打上tag
# docker tag 69dc37436859 docker.io/hhyo/archery:1.7.13
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hhyo/archery 1.7.13 69dc37436859 9 days ago 2.03 GB
按照以上的命令恢复其他镜像
# docker-compose -f docker-compose.yml up -d
Creating redis ... done
Creating goinception ... done
Creating mysql ... done
Creating inception ... done
Creating archery ... done
# 表结构初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql
python3 manage.py migrate
# 数据初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
# 创建管理用户
python3 manage.py createsuperuser
# 重启
docker restart archery
# 日志查看和问题排查
docker logs archery -f --tail=50
访问,http://192.168.1.12:9123/ 下一篇文章讲解如何配置Archery