目录
1. 安装docker环境
官方安装文档:Docker - Archery (archerydms.com)
1.1 安装docker
curl -fsSL https://get.docker.com -o get-docker.sh | sudo sh
1.2 安装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
2. 部署
2.1 下载
# 查看最新版本 https://github.com/hhyo/archery/releases/
# 如下载1.8.5版本
wget https://github.com/hhyo/Archery/archive/refs/tags/v1.8.5.tar.gz
2.2 部署
# 解压 tar xf v1.8.5.tar.gz
# 启动
cd Archery-1.8.5/src/docker-compose
docker-compose -f docker-compose.yml up -d
# 查看服务启动是否正常
docker ps
# 如果mysql一直在重启,docker logs -f mysql查看日志
# 若提示:/var/log/mysql/目录找不到,则修改mysql配置文件my.cnf
cat Archery-1.8.5/src/docker-compose/mysql/my.cnf |grep log_bin log_bin = /var/log/mysql/mysql-bin.log
# 修改log_bin的目录与的mysql datadir一致
log_bin = /var/lib/mysql/mysql-bin.log
# 所有服务运行正常后往下
# 表结构初始化
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
2.3 访问
http://127.0.0.1:9123 # 输入创建的管理用户帐号密码
3. 基础配置
3.1 资源组管理
资源组是一堆资源对象的集合,与用户关联后用来隔离资源访问权限,比如按不同的事业部进行划分
添加资源组,如需要开启钉钉、微信及飞书通知,需要在资源组里配置对应的webhook
3.2 添加实例
- 支持的数据库类型为MySQL/MsSQL/Redis/PostgreSQL/Oracle/MongoDB/Phoenix
- 资源组:实例都需要关联资源组,关联资源组的用户才有权限访问对应的实例
3.3 添加用户
- 组是用户权限的集合,可根据人员角色添加用户权限
- 用户权限:也可以自定义添加指定权限,一般通过组来统一管理
- 资源组:指定可访问的实例资源,用户必须关联资源组才能访问对应的实例资源
3.4 配置工单审核流程
审批流程工单类型有:SQL上线申请、查询权限申请、数据归档申请,不同审批类型和资源组可以配置不同的审批流程,审批流程配置的是权限组,如工作流:开发发起SQL上线申请-> PM审核 -> DBA执行上线
3.5 系统配置
goInception配置,不配置无法执行SQL检测功能
4. 配置钉钉通知
4.1 配置钉钉机器人
创建测试群 -> 添加机器人 -> 群设置 -> 智能群助手 -> 添加机器人 -> 自定义
自定义机器人
完成后复制机器人的TOKEN,注意,在创建资源组的时候,就可以填入这个token,详情参考3.2小节
4.2 启用钉钉通知功能
系统管理 -> 配置项管理 -> 系统设置 -> 通知配置
4.3 测试
SQL审核 -> SQL上线 -> 提交SQL
提交后,将会在钉钉群收到通知(提交、审核、执行完毕均有通知)