前言
Archery 定位于 SQL 审核查询平台,旨在提升 DBA 的工作效率,支持多种数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维功能,所有功能都兼容手机端操作
GitHub https://github.com/hhyo/Archery
准备工作
1. 安装升级Python36
yum install wget gcc make zlib-devel openssl openssl-devel
yum install epel-release
yum install python36 python36-pip
2. 创建 Python venv 环境(Python>=3.6.5,建议使用虚拟环境 )
cd /opt
pip3.6 install virtualenv -i https://mirrors.ustc.edu.cn/pypi/web/simple/
virtualenv venv4archery --python=python3
virtualenv venv4archery --python=python3.6
source /opt/venv4archery/bin/activate
deactivate可以退出venv 环境
3. 关闭SeLinux
vim /etc/sysconfig/selinux
英文输入状态下 按 i 进入insert模式 修改如下配置
SELINUX=disabled
按esc输入 :wq 保存并退出
正式步骤
1. 下载源码
方式一 链接: https://pan.baidu.com/s/1WHBAI7b7xloUUjstStEBEw 密码: fh43 放置/opt目录下
方式二
cd /opt
wget https://github.com/hhyo/archery/archive/v1.8.0.tar.gz
2. 解压源码
#解压包方式
tar -zxvf Archery-1.8.0.tar.gz
#wget方式
tar -zxvf v1.8.0.tar.gz
3. 安装相关依赖包
yum -y install gcc gcc-c++ python-devel mysql-devel openldap-devel unixODBC-devel gettext
yum -y install python36-devel
cd Archery-1.8.0
pip3 install -r requirements.txt -i https://mirrors.ustc.edu.cn/pypi/web/simple/
4. 安装Mysql
https://blog.csdn.net/javanbme/article/details/111825296
5. 安装Percona-Toolkits
https://blog.csdn.net/javanbme/article/details/112515533
6. 安装goInception
https://blog.csdn.net/javanbme/article/details/112607083
7. 安装SOAR
https://blog.csdn.net/javanbme/article/details/112620976
8. 安装Nginx
https://blog.csdn.net/javanbme/article/details/111560356
安装好之后采用如下nginx配置 进入目录
cd /opt/tengine/conf/servers
touch archery.conf
vi archery.conf
英文输入状态下 按 i 进入insert模式 新增如下配置
server{
listen 9123; # 监听的端口
server_name archery;
client_max_body_size 20M; # 处理Request Entity Too Large
proxy_read_timeout 600s; # 超时时间与Gunicorn超时时间设置一致,主要用于在线查询
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host:9123; # 解决重定向404的问题,和listen端口保持一致,如果是docker则和宿主机映射端口保持一致
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static {
alias /opt/Archery-1.8.0/static; # 此处指向settings.py配置项STATIC_ROOT目录的绝对路径,用于nginx收集静态资源
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
按esc输入 :wq 保存并退出
9. 刷新nginx配置
nginx -s reload
10. Archery配置
cd /opt/Archery-1.8.0/archery
vi settings.py
英文输入状态下 按 i 进入insert模式 修改如下配置 文件内容过多 这里贴出我改动过的地方
# 关闭debug模式
DEBUG = False
# 该项目本身的mysql数据库地址
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'archery',
'USER': 'root',
'PASSWORD': 'newpass',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4'
},
'TEST': {
'NAME': 'test_archery',
'CHARSET': 'utf8mb4',
},
}
}
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "newpass"
}
},
"dingding": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "newpass"
}
}
}
按esc输入 :wq 保存并退出
11. 创建数据库
mysql -h 127.0.0.1 -u root -p
注:提示输入密码 填入即可
create database archery default character set=utf8mb4;
12. 数据库初始化
cd /opt/Archery-1.8.0
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql
python3 manage.py migrate
13. 数据初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
14. 创建管理用户
python3 manage.py createsuperuser
此时会要求输入用户名密码,用于web页面登录
Username: admin
Email address: [email protected]
Password: adminpassword
15. 启动
source /opt/venv4archery/bin/activate
cd /opt/Archery-1.8.0
#启动
./startup.sh &
16. 访问
开启防火墙端口
输入用户名密码 admin/adminpassword 进入主页
17. 使用文档
https://blog.csdn.net/javanbme/article/details/113050284
问题集锦
1. File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
修改/usr/bin/yum文件中的第一行为#!/usr/bin/python2.7
2. WARNING: You are using pip version 20.1.1; however,version 20.2.3 is available
升级pip 输入python -m pip install -U pip
3. 依赖包mysql-devel安装报错
方式一
cd /etc/yum.repos.d/
rpm -ivh http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
yum install mysql-devel
方式二
先安装Mysql 再安装依赖包