ARCHER — 自动化SQL操作平台
基于inception的自动化SQL操作平台,支持SQL执行、LDAP认证、发邮件、OSC、SQL查询、SQL优化建议、权限管理等功能,支持docker镜像。
GitHub项目地址:https://github.com/jly8866/archer
主要功能
- 自动审核
发起SQL上线,工单提交,由inception自动审核,审核通过后需要由审核人进行人工审核
- 人工审核
inception自动审核通过的工单,由其他研发工程师或研发经理来审核,DBA操作执行SQL
为什么要有人工审核?
这是遵循运维领域线上操作的流程意识,一个工程师要进行线上数据库SQL更新,最好由另外一个工程师来把关
很多时候DBA并不知道SQL的业务含义,所以人工审核最好由其他研发工程师或研发经理来审核. 这是archer的设计理念
- 回滚数据展示
工单内可展示回滚语句,支持一键提交回滚工单
- 定时执行SQL
审核通过的工单可由DBA选择定时执行,执行前可修改执行时间,可随时终止
- pt-osc执行
支持pt-osc执行进度展示,并且可以点击中止pt-osc进程
- MySQL查询
库、表、关键字自动补全
查询结果集限制、查询结果导出、表结构展示、多结果集展示
- MySQL查询权限管理
基于inception解析查询语句,查询权限支持限制到表级
查询权限申请、审核和管理,支持审核流程配置,多级审核
- MySQL查询动态脱敏
基于inception解析查询语句,配合脱敏字段配置、脱敏规则(正则表达式)实现敏感数据动态脱敏
- 慢日志管理
基于percona-toolkit的pt_query_digest分析和存储慢日志,并在web端展现
- 邮件通知
可配置邮件提醒,对上线申请、权限申请、审核结果等进行通知
对异常登录进行通知
安装
安装docker 、git
1
| yum install -y docker git
|
下载镜像
1 2 3
| docker pull hhyo/inception docker pull hhyo/archer docker pull mysql:5.6.35
|
创建archer配置文件
服务目录定为 /vcg/archer/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| vim /vcg/archer/inc.cnf
[inception] general_log=1 general_log_file=inception.log port=6669 socket=/tmp/inc.socket character-set-client-handshake=0 character-set-server=utf8 inception_remote_system_password=root inception_remote_system_user=wzf1 inception_remote_backup_port=3306 inception_remote_backup_host=127.0.0.1 inception_support_charset=utf8,utf8mb4 inception_enable_nullable=0 inception_check_primary_key=1 inception_check_column_comment=1 inception_check_table_comment=1 inception_osc_on=OFF inception_osc_bin_dir=/usr/bin inception_osc_min_table_size=1 inception_osc_chunk_time=0.1 inception_enable_blob_type=1 inception_check_column_default_value=1
|
1 2
| wget https://github.com/jly8866/archer/blob/master/archer/settings.py 修改其中的数据库地址、用户名、密码
|
启动容器
1 2 3 4 5
| docker run --name inception -v /vcg/archer/inc.cnf:/etc/inc.cnf -p 6669:6669 -dti hhyo/inception
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.35
docker run --name archer -v /vcg/archer/settings.py:/opt/archer/archer/settings.py -e NGINX_PORT=9123 -p 9123:9123 -dti hhyo/archer
|
创建数据库
1 2 3
| mysql -uroot -p
CREATE DATABASE IF NOT EXISTS archer_github DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
|
初始化数据库
1 2 3 4 5 6 7 8
| docker exec -ti archer /bin/bash cd /opt/archer source /opt/venv4archer/bin/activate # 初始化数据库 python3 manage.py makemigrations sql python3 manage.py migrate # 创建管理员账号 python3 manage.py createsuperuser
|
访问
地址: http://xxxx::9123/