基于django、celery和inception的数据库web管理平台
django、
celery和
inception,带权限控制的数据库平台
saltstack api和监控功能
用户的系统使用权限大致可以分为可以看到的页面,以及能够看到的DB两个维度
这两个维度的权限都可以通过设置组来达到后期快速添加用户的需求
对于前者:
所有页面都可以根据需要分配给不同权限的用户
对于DB维度的权限:
一个DB可以配置
role为
read和
write两个ip-port实例,用以区分查询和变更语句执行的实例,(也可以将
role配置成
all不进行区分)
对于数据库账户,一个DB可以配置多个,并分配给不同的用户,用以实现不同用户在同一db下区分权限的功能。(也可以保持默认设置,即分配给
public用户,不进行区分)
如果要使用任务管理功能,需要为DB添加一个
role为admin的数据库账号 。。。待续
wrong_msg="select '请检查输入语句'"
select_limit=200
export_limit=200
incp_host="10.xx.xx.xx"
public_user="public"
incp_port=6669
incp_user=""
incp_passwd=""
sqladvisor_switch = 1
sqladvisor = '/usr/sbin/sqladvisor'
pt_tool = 1
pttoolpath = '/usr/bin/'
inceptbackuphost = '10.xx.xx.xx'
inceptbackupport = 'xx'
inceptbackupuser = 'xx'
inceptbackuppasswd = 'xx'
pathtomysqldiff = "/usr/local/bin/mysqldiff" ``` 说明:
select_limit和
export_limit为系统默认查询和导出条数限制
incp_XX系列配置文件为
inception的连接配置
inceptbackupXX为配置为inception的备份库,用于查询备份语句
sqladvisor_switch设置为0时不启用
sqladvisor
设置
sqladvisor地址和
sqladvisor_switch为1启用
sqladvisor
setttings.py中的修改内容主要为
mysql、
redis地址,以及邮件服务器相关地址,如果使用
saltapi功能的话还有一些
salt相关的信息需要配置
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 0.0.0.0:8000(启动前建议把settings.py中的debug设置为false)(上面的启动方式可以自己测试时使用,实际使用不要使用
django自带的
server启动,因为好像是单线程在处理
request的。。)
apache或nginx+uwgsi方式启动,配置文件可以参考
configfile_example中的 uwgsi启动方式如:
uwgsi --ini uwgsi.ininginx配置https时生成key文件示例如下: ``` openssl genrsa -out foobar.key 2048
openssl req -new -key foobar.key -out foobar.csr
openssl x509 -req -days 365 -in foobar.csr -signkey foobar.key -out foobar.crt ```
使用
uwgsi部署时,先
python manage.py collectstatic拷下admin之类的静态文件,不然访问
/admin/页面会找不到样式 然后以刚刚注册的超级用户登陆网站进行建立普通用户、建库等配置工作
mon_tb.sql(文件在
configfile_example中)
python manage.py celery beat
python manage.py celery worker -E -c 8 --loglevel=info -Q mysql_monitor
* 开启快照监控后,在admin中能看到任务,默认一秒一个快照:python manage.py celerycam ``` * 在/admin/中设置定时任务 * 设置定时扫描task
支持表名模糊搜索
支持单条sql的查询和查询结果的导出,导出条数限制默认为
config.py中配置的值,也可以通过后台
myapp_profile表对特定用户进行调整
支持单条sql语句的执行,用户能够执行的语句类型可以通过权限限制。
只有审核通过的sql,才能被提交至任务管理页面,提交时可以选择是否执行时备份语句
可以审核、查看、修改、执行、预约任务执行时间,通过调用inception接口来实现
不同用户能够看到的页面按钮可以通过权限控制
任务界面如下:
点击执行后,任务会被发送给
celery后台异步执行,通过点击状态按钮查看任务执行状态
可以配置邮件在任务生成和任务结束时候发送邮件告知相关人员
可以导出csv格式任务,支持utf8和gb18030两种导出格式
通过pt-osc执行的任务
通过inception调用pt-osc执行的任务可以被终止,但停止后需要到库中人工清理触发器
未通过pt-osc执行的任务
可以通过权限设置来限制用户是否能够编辑此页面的内容
可以单独变更执行的数据源,以实现同一语句在不同环境执行的需求
变更数据源后,会新生成一个任务,并发送邮件告知
本平台记录所有用户在mysqlquery,mysqlexec以及任务管理页面中执行的语句
这些语句可以通过日志查询页面进行搜索
源自lepus MySQL部分,做了一定修改