基于archer的自适配
原始项目地址:https://github.com/jly8866/archer
基于inception的自动化SQL操作平台,支持工单、审核、定时任务、邮件、OSC等功能,还可配置MySQL查询、慢查询管理、会话管理等
python3.4及以上
django1.8.17
mysql : 5.6及以上
linux : 64位linux操作系统均可
git clone https://github.com/jly8866/archer.git
pip3 install virtualenv
virtualenv venv4archer --python=python3.4
source venv4archer/bin/activate
pip3 install -r requirements.txt
python3 manage.py makemigrations sql
python3 manage.py migrate
python3 manage.py createsuperuser
启动,有两种方式
(1)用django内置runserver启动服务,建议不要在生产环境使用
bash debug.sh
(2)用gunicorn+nginx启动服务
安装模块pip3 install gunicorn==19.7.1
nginx配置示例
server{
listen 9123; #监听的端口
server_name archer;
proxy_read_timeout 600s; #超时时间与gunicorn超时时间设置一致,主要用于在线查询
location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host:9123; #解决重定向404的问题
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 /archer/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 {
}
}
启动 bash startup.sh
http://X.X.X.X:port/login/
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum -y install percona-toolkit.x86_64
hostname="${mysql_host}:${mysql_port}"
与archer主库配置信息一致,否则将无法筛选到相关记录
pip3 install aliyun-python-sdk-core==2.3.5
pip3 install aliyun-python-sdk-core-v3==2.5.3
pip3 install aliyun-python-sdk-rds==2.1.1
patch python/site-packages/django/contrib/auth/views.py django_1.8.17_admin_secure_archer.patch
yum install openldap-devel
pip install django-auth-ldap==1.3.0
角色 | 账号 | 密码 |
---|---|---|
管理员 | archer | archer |
工程师 | engineer | archer |
审核人 | auditor | archer |
DBA | dba | archer |
/tmp/default.log & /tmp/archer.err
location /static {
alias /archer/static; #此处指向settings.py配置项STATIC_ROOT目录的绝对路径,用于nginx收集静态资源,一般默认为archer按照目录下的static目录
}
集群不显示数据库
archer会默认过滤一些系统数据库,过滤列表为'information_schema', 'performance_schema', 'mysql', 'test', 'sys'
审核人不显示
没有为审核人/DBA角色的有效用户
审核通过后没有执行按钮
archer的SQL上线流程为:工程师提交SQL->审核人审核->DBA执行,审核人只能审核归属自己审核的数据,DBA执行全部数据
— inception备份用户
GRANT SELECT, INSERT, CREATE ON *.* TO 'inception_bak'
— inception审核用户(主库配置用户,如果要使用会话管理需要赋予SUPER权限,如果需要使用OSC,请额外配置权限)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'inception'
— archer在线查询用户(从库配置用户)
GRANT SELECT ON *.* TO 'archer_read'
规则类型 | 规则脱敏所用的正则表达式,表达式必须分组,隐藏的组会使用**代替 | 需要隐藏的组 | 规则描述 |
---|---|---|---|
手机号 | (.{3})(.*)(.{4}) | 2 | 保留前三后四 |
证件号码 | (.*)(.{4})$ | 2 | 隐藏后四位 |
银行卡 | (.*)(.{4})$ | 2 | 隐藏后四位 |
邮箱 | (.)@(.) | 2 | 去除后缀 |
查询权限申请待办列表被隐藏至右上角的消息图标中,当有待审核信息时会显示图标,可以进入查看待办数据
python3 manage.py migrate
创建