很多DBA可能都用过Excel来维护数据库集群列表,在公司数据库集群规模比较小,用这种方式维护也是很简单方便的。但随着数据实例越来越多达到了上百上千的时候,再用这种方式维护就要崩溃了。所以一旦集群上了规模,每个公司都要开发类似CMDB的平台来维护集群信息 。由于本人所在的DBA部门开发资源有限,所以自个也花一个月的时间学习的相关知识,开发了一款MySQL元数据平台,希望能给做平台的朋友一些思路。 本系统主要是内部使用,所以只能展示部分内容。希望大家多多指点。
所涉及的技术点,如下:
(1)开发语言: python
(2)框架: Flask
(3)bootstrap,html,js,css,jquery
(4)后端存储MySQL
主要功能:
(1)搜索关业务线下的所有集群实例
(2)搜索某个端口集群(我们这边一个集群一个端口)
(3)查看集群概述信息(负责人,归属业务线,用途描述等)
(4)查看集群实例信息(buffer设置大小 域名 总数据量 所在机房 实例状态等)
(5)查看集群库元信息(库数据量,表数量,字符集,所属项目,归属人等)
(6)查看表元信息(表数据量,行数,索引大小,自增主键使用率等)
以下截图和功能是部分内容,有些内容还在更新中
点击侧边栏的 集群管理 后台会根据登陆人的业务部门以分页的方式显示该部门下的所有集群实例。
如果是新建集群怎么添加到平台上呢,可以手动添加
其实集群的录入应该是自动化脚本初始化完事自动的加入到平台,这里是提供录入的一种选择。
集群的实例属性信息是动态获得,每次搜索集群都会触发,状态No是该实例已经不可用,可能主从复制中断,实例挂了等,并且集群的拓扑也是自动维护,新增实例到集群都会被自动发现。
点击库信息 可以看到库的一些元信息,这些信息后台脚本一天收集一次,显示最新的,也可以手动点击Refresh刷新,保留的历史记录以后可以绘制图形曲线了解数据量变化趋势。每个DB都有归属项目和负责人,维护负责人信息,一般也是RD自个维护,如果全部由DBA来维护工作量也是很大的,那RD自个不维护怎么办? 其实我们后面会陆续开放新的系统,比如自助DML DDL SQL上线前审核等系统 要想使用自助系统DB必须有归属项目和负责人,因为需要负责人参与审核或其他环节中,所以开发要使用自助系统必先完善这些信息。
也可以查看表信息,表信息的更新规则跟DB一样。RD查看表信息的时候可以关注一些关键信息,比如单表数据量,索引数据量,自增id使用率等 我们后续会展现出不同维度的排行榜,比如 大表top10 等。
集群概述信息也是可编辑的,以后完善上线初始化流程此处也不需要手动编辑。业务线,负责人都是从我们的OA系统接口取出,这样我们不用单独维护一个组织架构。
我们元数据是要对RD开放的,稍微做了下权限控制,一个业务线不能查看另一个业务线的集群信息。
总结:
数据库元信息平台,是所有其他自动化模块的基础信息,比较准确的维护信息的正确性很重要。目前的功能还比较少(实例监控入口,库表数据量变化曲线等) 后续会继续更新完善。