手动部署SQL审计平台Archery(连接mysql8.x)

安装Python和virtualenv

从1.9.0版本开始,将不再支持python3.7及以下版本,手动安装也将使用3.9版本作为样例,移除yum安装方式

# 安装依赖

yum install libffi-devel wget gcc make zlib-devel openssl openssl-devel ncurses-devel openldap-devel gettext bzip2-devel xz-devel

wget "https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tar.xz"

tar -xvJf Python-3.9.10.tar.xz

# 编译

cd Python-3.9.10

./configure prefix=/data/python3

make && make install

ln -fs /data/python3/bin/python3 /usr/bin/python3

ln -fs /data/python3/bin/pip3 /usr/bin/pip3

# virtualenv

pip3 install virtualenv -i https://mirrors.ustc.edu.cn/pypi/web/simple/

ln -fs /data/python3/bin/virtualenv /usr/bin/virtualenv

在执行的过程中不确定是否执行成功的时候echo $? 查看一下回显

# 编译安装python的使用

virtualenv venv4archery --python=python3

# 切换python运行环境到虚拟环境

source venv4archery/bin/activate

# CentOS 6 使用此命令

curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo

# CentOS 7 使用此命令

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo

# 卸载冲突驱动

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel

# 安装驱动

sudo ACCEPT_EULA=Y yum install msodbcsql17 sudo ACCEPT_EULA=Y yum install mssql-tools

# 更新环境变量

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc

# 安装ODBC依赖

sudo yum install unixODBC-devel

wget "https://github.com/hhyo/archery/archive/v1.8.5.tar.gz"

tar -xzvf v1.8.5.tar.gz

# 安装系统依赖

yum -y install gcc gcc-c++ python-devel mysql-devel openldap-devel unixODBC-devel gettext

# 安装依赖库

cd Archery-1.8.5/

pip3 install -r requirements.txt -i https://mirrors.ustc.edu.cn/pypi/web/simple/

安装Inception(MySQL审核、查询校验和数据脱敏)

二进制部署goInception

wget https://github.com/hanchuanchuan/goInception/releases/download/v1.3.0/goInception-linux-v1.3.0-42-g169e116.tar.gz

tar zxvf goInception-linux-v1.3.0-42-g169e116.tar.gz

注意config/config.toml.default 配置中从库必须要配置 不然goInception不生效

./goInception -config=config/config.toml.default & 放到后台启动

备MySQL、Redis实例

MySQL推荐版本>=5.7

Redis提供任务队列和缓存

修改配置

vi archery/settings.py

配置mysql实例

注意使用8.x数据库需要更换用户密码策略

use mysql

select host ,user ,plugin from user; 查看一下用户的密码策略

换成mysql_native_password 不然连接会报错

alter user 'slave'@'%' identified with mysql_native_password by 'Zxcvbnm@2023';

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'archery', # 数据库名称

'USER': 'slave', # 数据库用户

'PASSWORD': 'Zxcvbnm@2023', # 数据库密码

'HOST': '192.168.197.132', # 数据库地址

'PORT': '3306', # 数据库端口

'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", # SQL_MODE,为了兼容select * group by,可以按需调整

Redis实例配置

启动准备

# 数据库初始化

cd Archery-1.8.5/

python3 manage.py makemigrations sql

python3 manage.py migrate

# 数据初始化

使用mysql8.x 在执行时报错 下载mysql8.x对应的驱动包

https://rhel.pkgs.org/7/mysql-8.0-x86_64/ 访问下载对应版本的包

wget https://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-client-8.0.31-1.el7.x86_64.rpm

访问网站找不到下载路径的话 可以修改我的下载连接直接改成对应版本即可比如我要下载8.0.28版本

wget https://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-client-8.0.28-1.el7.x86_64.rpm

强制安装不下载依赖

rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm --force --nodeps

然后在执行就不会报错了

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

启动

source /data/Python-3.9.10/venv4archery/bin/activate

#启动Django-Q,需保持后台运行

python3 manage.py qcluster &

#启动服务

nohup python3 manage.py runserver 0.0.0.0:9123 --insecure &

如果要关闭的话 jobs 查看后台运行的进程 kill -9 %2 杀掉进程即可

部署完成访问web 192.168.197.138:9123 输入刚刚设置的用户名密码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Archery 定位于 SQL 审核查询平台,旨在提升 DBA 的工作效率,支持多种数据库的 SQL 上线和查询,同时支持丰富的MySQL运维功能,所有功能都兼容手机端操作。 启动: 下载 Releases文件,解压后进入docker-compose文件夹 #启动 docker-compose -f docker-compose.yml up -d #表结构初始化 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 dbshellpython3 manage.py dbshell #创建管理用户 python3 manage.py createsuperuser #重启服务 docker restart archery #日志查看和问题排查 docker logs archery -f --tail=10 logs/archery.log 访问 http://127.0.0.1:9123/     Archery SQL审核查询平台 更新日志: v1.8.1 变更说明 移除对 Inception 的审核支持,仅作为脱敏语句解析使用 在线查询,pg数据库增加会话超时设定,支持查询脱敏 慢查日志和明细列表支持按表头字段进行服务端排序 默认资源组、权限组支持多选,优化系统配置下拉选项 修复说明 解决数据库区分大小写时查看事务信息报错的问题 解决 memoryview is not JSON serializable PG脱敏-查询语句中带有别名脱敏处理 解决查询结果不展示json对象的问题 调整启动方式为wsgi,解决上版本出现访问阻塞的问题 企业微信消息推送,如果消息接受者ID为空,则不会调用企业微信官方API. fix(sendmsg/feishu): fix #1016 支持新版飞书 webhook 接口 ) Bump django from 3.1.2 to 3.1.6 add pycryptodome to requirements 易用性调整 手动执行按钮改名为“已手动完成” 安全性调整 对接受入参的SQL拼接增加参数转义,规避注入风险 使用shlex.quote()对插件参数进行过滤,规避注入风险

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值