Linux下安装Archery及相关环境配置

前言

Archery 定位于 SQL 审核查询平台,旨在提升 DBA 的工作效率,支持多种数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维功能,所有功能都兼容手机端操作

官网 https://archerydms.com/

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. 访问

开启防火墙端口

http://ip:9123

输入用户名密码  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 再安装依赖包

猜你喜欢

转载自blog.csdn.net/javanbme/article/details/112480484