Archery是archer的分支项目,定位于SQL审核查询平台,旨在提升DBA的工作效率,支持多数据库的SQL上线和查询,同时支持丰富的MySQL运维功能,所有功能都兼容手机端操作。
详见链接
docker 安装Archery
3.1安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh | sudo sh
3.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
3.3准备运行配置
备注:
docker-compose.yml文件内的services可按照本身的运行环境来调整,同时注意检查版本号是否正确,比如说外部已经装好了mysql、redis、inception,就可以将对应的services删除,但是需要注意修改settings.py文件的相关配置
路径:Archery-1.8.3/src/docker-compose/archery/settings.py
因为我本地有redis 和mysql。
故删除了docker-compose.yml services配置下的redis 和mysql镜像配置。
同时 settings.py中做出了调整。
# 该项目本身的mysql数据库地址
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'archery',
'USER': '本地用户名',
'PASSWORD': '本地密码',
'HOST': '本地mysql',
'PORT': '3306',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4'
},
'TEST': {
'NAME': 'test_archery',
'CHARSET': 'utf8mb4',
},
}
}
# Django-Q
Q_CLUSTER = {
'name': 'archery',
'workers': 4,
'recycle': 500,
'timeout': 60,
'compress': True,
'cpu_affinity': 1,
'save_limit': 0,
'queue_limit': 50,
'label': 'Django Q',
'django_redis': 'default',
'sync': False # 本地调试可以修改为True,使用同步模式
}
# 缓存配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://本地redisIp:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "本地密码"
}
},
"dingding": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://redis:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "123456"
}
}
}
启动
下载 Releases文件,解压后进入docker-compose文件夹
# 启动
docker-compose -f docker-compose.yml up -d
注:上面的操作可能会出现
Failed to Setup IP tables: Unable to enable SKIP DNAT rule异常。
原因:在对 linux 的防火墙进行操作之后,需要重启 docker
解决办法:service docker restart
# 表结构初始化
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# 创建管理用户
python3 manage.py createsuperuser
# 重启
docker restart archery
# 日志查看和问题排查
docker logs archery -f --tail=50
访问
http://127.0.0.1:9123
备注: 优化工具设置
#Archery
1 利用美团SQLAdvisor对收集的慢日志进行优化,一键获取优化建议
相关配置
安装SQLAdvisor,docker镜像已包含
在系统管理-配置项管理中修改SQLADVISOR为程序路径,路径需要完整,docker部署的请修改为'/opt/archery/src/plugins/sqladvisor'
2 SOAR(SQL Optimizer And Rewriter)是一个对SQL进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护
相关配置
在系统管理-配置项管理中修改SOAR_PATH为程序路径,路径需要完整,docker部署的请修改为'/opt/archery/src/plugins/soar'
修改SOAR_TEST_DSN为测试环境连接信息
详细使用说明 详见维基
archery 使用说明