关于数据库自动化运维平台的设计及开发实现思路

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

今个讲解下,个人对于数据库运维自动化平台的理解,话说这个项目和我以前做的lvs集群平台一样,都是分成两个主要的角色,一个是对于普通用户的申请及权限内的执行,还有一个是对于dba的审核及相关的日常dba数据库操作。



DBA其实也是很苦逼的,再高端的dba也是由苦逼开始的。如果你是苦逼的dba,那更要往下看了。


因为工位紧张的缘故,我现在和一排的dba做在一起,见到了他们的高端,也见到了他们的苦逼。



工作期间,经常会有人烦他们,让他们进行DDL DML、实例的相关操作.大家也都知道规范的数据库维护是不允许开发人员直接到server搞的,尤其是DDL相关的,这个需要发邮件,让负责人确定,然后再请dba来操作的。 


这个时候就需要,很有必要的有一个系统来解决这些让人蛋碎的事情。运维自动化平台就是为了解放蛋碎事件的。 



这些东西,咱们完全可以自动化流程起来的。


1.  权限的申请


2.  会发给对应的领导,让他来确认


3.  dba会审核这次的申请


这个时候,权限的申请已经结束了。用户这时候,可以去DDL和DML操作。


wKioL1Oisp6hdyZHAAHQEjVIiLA185.jpg


这时候,你就有这个库的权限了,可以提交DDL和DML的语句。看下面的流程图,估计你已经看到大概了。

原文:http://rfyiamcool.blog.51cto.com/1030776/1428425 


wKioL1OitSyCpMTWAAM7xdSONH0574.jpg



    该系统的流程设计,是由前人人网dba大牛(谭志军)来搞的,至于功能的实现是我搞。这项目做到现在快一个月了。  这首席dba确实很强,公司的zabbix每天都有几G数据量增长,你可以想想现在数据该有多大! 但在他眼里,那都不是事!随手就能给出万台监控压力下的数据库分解压力方案,虽然因为zabbix 底层代码本身就不高明,导致压力分解的效果不突出。  人甚是有意思,只是有些时候,不解女孩子的风情 ~


    开发的日子里,深深的感觉到,任何人都有产品经理的潜质,曾经和他说,以前有个人总是给我提需求,让我”灭“了! 没想到,他也只是浅浅的一笑,然后继续提需求,感觉他好高大上。


他的微博是http://weibo.com/tzhijun  ,记得给他加粉。


该平台现在算是第二版了,更新和修复了不少的功能和bug。 谭志军是个很好想法的孩子,虽然现在的版本也算是强大,其实本来能做出更强大的东西出来。比如索引相关的。。。 只是.....      不多说了 !



我们的dashbord,这里分享的是初期的实例,后期我们还是会做大量的前后端的高进。


下面的截图和功能介绍只是该平台中的部分内容,有些话题不太方便聊,见谅。

原文:http://rfyiamcool.blog.51cto.com/1030776/1428425 

wKiom1PoXdPw2ld-AAQhGsJGFPY648.jpg


wKiom1OivPyQDyShAAJb2CQ5ZSk182.jpg

这是用户执行DML SQL语句的页面,这里触发后端的时候,会把不是DML的语句,都会过滤出来。

原文:http://rfyiamcool.blog.51cto.com/1030776/1428425 


wKioL1OivX7zka9tAAR9JBI4oKU300.jpg


下面是DDL的情况:

wKioL1Oi_3jg4Iu5AAG9AL95pHE089.jpg

这个时候,管理员收到了相关的进度邮件,登录平台处理未完成的任务,在权限管理平台,可以给为DBA开启动态口令卡,密码是60秒更新一次的。 当然也可以撤销这种烦人的认证。

wKioL1Oj2SiQv8B7AAD8TCijQS8428.jpg


wKioL1Oj2jSAC6i6AAHRNYBxYMs293.jpg


wKioL1OivhbgzCNJAAPg_TgN3Vg471.jpg


wKioL1OquKTAYKGSAAPn9AQynx8405.jpg


alter是异步的执行。

wKiom1POOUTQxg7aAALLR9baZCE200.png


这里主要是查询数据,自动会分页,数据的导出txt和json文件。

wKioL1OivqvBkPppAAORI_L4TBc663.jpg


这个数据库运维系统,不仅涵盖了上面所说的 数据库流程体系最基本的功能,而且还实现了对于dba本身的维护的功能模块。

首先是慢查询,我会同步crontab的状态,会定期抓到慢查询的结果,扔到我的http存储接口上。

原文:http://rfyiamcool.blog.51cto.com/1030776/1428425 

wKiom1Oi_R_j-AdXAAJduqx1PqY389.jpg


再说下报警方面,这边有自己的一套报警方式,以yaml格式做成配置文件,然后python会根据yaml里面的配置,做他该做的事情。当然这些事情交给zabbix也挺好。

    现在公司的zabbix开发人员正在逐步开发api接口。  没有开发之前,还是我们自己控制好点。


wKiom1Oj266QGJ2ZAASe9tnvzyc668.jpg



原文:http://rfyiamcool.blog.51cto.com/1030776/1428425 


下面的就不截图了,实在是有些麻烦了。。。。 也有些怕首席dba殴打! 这里在简单介绍下,围绕dba管理平台的相关的功能。


对于数据库的备份,采用saltstack的jid来异步的执行任务,会记录备份文件的大小,开始时间,结束时间,及备份的状态,另外在modules里封装了一个rsync的模块进行文件上传。 平台每天主动出一个备份情况的报表,除了上面的备份情况,当他监控到今天没有搜到10.10.10.10这mysql的备份,会在报表中标红。 如何针对备份进行报警,客户端每次备份的时候,会反查下到现在为止,上次有没有备份成功,没有的话,也会触发报警。 如果周期是长线的那种,每次客户端备份,会给master端一个信号,master会间隔性的查询,如果在一定时间内没有完成,他也会报警的。


对于上线,独立出一个功能,该平台是通用的,每次执行完了,都会调用平台的接口,比如他现安装mysql的依赖包,接着安装mysql-server,最后调用接口,让他创建 xiaorui这个库,及 pop这个表。 懂了吧。


对于下线服务,这就好办了,平台会流程发给项目的负责人,如果他们确定后,数据库会打包备份好,在平台中标记下线。


对于众多的数据库,会做一些日常load和硬件占用的评估报表,比如你的数据库的量压根就不大,那你就没有资格占用一台服务器,这边会做一个周期性的报表,根据情况会把他塞到服务器里面的实例 ! 说白了,就是省钱方案。


对于部署方面,平台有所欠缺,后期会加入环境的部署及快速的部署mysql从服务器,还能在平台修改从服务器。 



总结,我这边的数据库管理系统,在一些用户体验更像是phpmyadmin的感觉,因为语言mysql驱动的问题,导致python实现phpmyadmin的功能,不太如意,尤其是各种的过滤,在php可以直接把用户的sql提进去,我这边需要做一些正则的过滤,最少去去掉分号 !  dba们,赶紧找个开发人员,给你们搞搞这个数据库运维平台,只为不苦逼 !






 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1428425 ,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
29天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
67 36
|
6天前
|
机器学习/深度学习 运维 Cloud Native
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为信息技术的重要支柱,其效率与创新能力直接关系到企业信息系统的稳定性和业务连续性。本文将探讨如何通过技术手段,实现运维从传统手工操作向自动化、智能化的转变,进而构建一个高效、可靠的运维体系。我们将从自动化工具的应用开始,逐步深入到智能运维的实践,最终展望云原生架构下的运维未来趋势。
|
9天前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为保障企业IT系统稳定运行的关键环节,正经历着前所未有的变革。本文将探讨如何通过实施自动化和引入智能化技术,构建一个更加高效、可靠的运维体系,以应对日益复杂的业务需求和技术挑战。
22 1
|
26天前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
20天前
|
机器学习/深度学习 运维 安全
构建高效运维体系:从自动化到智能化的演进之路
在数字化转型的浪潮中,运维管理作为信息技术基础设施的重要支柱,正经历着从传统手工操作向自动化、智能化的深刻变革。本文将探讨如何通过引入自动化工具和平台,实现运维流程的标准化与效率提升;进而利用大数据分析和人工智能技术,迈向预测性维护和智能决策支持的高级阶段。通过案例分析,揭示成功转型的关键因素,为运维专业人士提供一套可借鉴的升级路径。
|
17天前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进之旅
在当今数字化时代,运维作为信息技术领域的核心组成部分,其重要性日益凸显。随着企业业务的不断扩展和技术的日新月异,传统手工运维方式已难以满足现代IT架构的需求。因此,构建一个高效、智能的运维体系成为业界共识。本文将探讨如何通过自动化和智能化手段,实现运维效率的质的飞跃,并分享一些成功案例与实践经验。
|
23天前
|
机器学习/深度学习 运维 监控
构建高效运维体系:从自动化到智能化的演进
在当今信息技术飞速发展的时代,运维领域正经历着从传统手动操作向高度自动化和智能化转变。本文旨在探讨如何通过集成自动化工具、实施持续集成与持续部署(CI/CD)、采用容器化技术和探索AIOps实践,构建一个高效、可靠的运维体系。我们将分析这些技术如何相互配合,提升运维效率,降低系统故障率,并实现快速响应市场变化的能力。通过案例分析和最佳实践的分享,本文将为IT专业人员提供一套实用的指南,帮助他们在数字化转型的浪潮中,保持运维工作的前瞻性和竞争力。
|
24天前
|
机器学习/深度学习 数据采集 运维
智能化运维:打造高效、自动化的IT系统
在数字化转型的浪潮中,企业对于IT系统的依赖程度日益加深。如何确保系统的高效运行和快速响应,成为摆在每一个IT管理者面前的难题。本文将探讨智能化运维的概念、实施步骤及其带来的变革,旨在为读者提供一套构建自动化、智能化IT运维体系的思路和方法。
|
23天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维的探索之旅:从自动化到人工智能
在数字化浪潮中,运维领域正经历一场革命。本文将带你领略从传统手动操作到自动化脚本,再到集成人工智能的智能运维平台的演变之路。我们将探讨如何通过技术创新提升效率、降低成本并增强系统的可靠性和安全性。文章不仅分享技术演进的故事,还提供了实现智能化运维的实践策略和未来趋势的展望。
|
1月前
|
运维 监控 安全
python在自动化运维中的妙用分享
python在自动化运维中的妙用分享
37 8
下一篇
无影云桌面