更多技术干货请戳:听云博客

断断续续写了将近一个月,听云第一版数据库管理平台终于写完了,期间来来回回的改了好多次小毛病,现在已经部署到生产环境上去了。

在刚开始的时候,后端的数据库集群只有10多个节点组,日常的巡检工作并不会花费太多的时间和精力。随着业务的增长,在较短时间内后端集群扩展到数百节点时,这时的日常巡检如果还是人肉完成,讲道理,最终可能就是不做巡检或者是缘分巡检,哪天想起来了搞一下。显然这不是我们的风格。那么如何解放我们花在巡检上的时间和精力,我们决定写一个工具来帮我们完成巡检工作,我们要做的就是登陆上这个系统,look  and  check。

在这个版本中实现的功能并不是很多,大都是针对目前工作中的痛点来开发的,架构也很简单,分为报表和数据收集两个部分,数据收集程序主要从两个地方收集数据,一个是线上的数据库中收集一些指标数据,一个是调用云厂商的api取DB的容量信息。

该系统的开发语言是golang,netop是我们部门的简称,所以索性就叫NetopGO。前端页面是改的jumpserver的页面,数据搬运工真心写不动前端。

Web开发框架使用的beego。讲道理,jumpserver的前端模版真的是一款很优秀易上手的模版,beego就更不用说了,powerful、beautiful and amazing!直接上图,标清有码,嘿嘿嘿。

1、仪表盘

这里主要是一些数据概览,各种总量、截至到当前的本月数据量变化趋势。每个业务库本月的数据容量变化情况,还有前一天慢查询数量排名top12。仪表盘上提供快速跳转的链接,只需要点击相关的数字即可。比如点击DB总数,就会跳转到DB列表的页面。

2、用户权限

划分三种权限:admin、dba和guest。如果当前用户的权限不足,访问受限页面会提示没有权限或页面上的部分按钮不可用。

3、主机管理

这里主要是主机列表管理和业务组列表管理。主机列表依赖业务组列表。这部分对来宾和数据库管理员是有权限控制的,比如这个guest用户登录上来之后查看主机列表只有readonly用户的远程登录可用,其他功能受限,点击远程登陆会弹出一个webshell,如下图:

4、DB管理

DB管理是这个版本的重心,首先看DB列表

这里有所有线上的实例,并且每个实例都有图表和慢sql的入口链接,点击图表,会跳转到图表的页面:

图表目前只有数据量(每天统计)、QPS&TPS(每10分钟统计)和慢查询个数(每天统计)的变化曲线。监控不是这个系统的重点,目前基本上所有的生产环境监控都是另外一个平台再支撑。我希望系统能够为我展示所有实例的数据量变化趋势、qps&tps情况,当然最重要的是慢查询的详细情况。如果在列表中点击慢查询,就会跳转到慢查询列表页面,如下图:

这个页面中会对慢sql做简单的汇总和统计,同时提供查看sql和具体执行计划的功能,比如点击查看执行计划,就会向生产环境的数据库做一个即时的执行计划分析并返回结果,这样抓到慢sql就不用打开黑窗口(xshell)登陆到后端数据库上去看执行计划,直接在前端页面就能查看。如下

Schema列表,这个页面同样有比较大的信息量,包含了所有业务库的列表,这个列表主要是给数据查询窗口使用的,动态的增删schema列表,就相当于动态的增删数据源。同时展现了每个业务库当前的数据容量大小,非常直观。

由于我们后端的数据库使用了分区表,分区是由存储过程自动维护的,所以我们对每个业务库后端的分区增删状态在这里做了展现,点击分钟按钮就会跳转到分区监控列表页面,能够清晰的看到哪些节点的添加分区没有成功,如果添加失败,就会显示红色的Failed字样。小时和天表也是一样的。

平常的工作中会有很多数据查询的场景,研发和测试的同事那么多,如果所有的请求都对准dba一个人的话,也是一个头疼的问题,所以在NetopGO中开了一个查询的窗口,实现了权限划分、查询sql审计记录和自动后端识别的功能。动态增删数据源,Schema列表中添加一个数据源,在查询窗口里可以立即显示并进行查询。如果后端允许的话,dba可以做任何操作,比如 insert操作,如下

如果后端是代理的话,即便是dba角色也只能支持查询,如下

如果是来宾帐号,所有的数据库都只能是查询权限,如下

如果查询成功,会跳转到结果页面,如果列很多,超出了表格的宽度,下方是会有滚动条出现的。如下

目前,出于信息安全的考虑,并没有支持数据导出功能,不过正在考虑给dba视角添加一个结果导出功能。

在数据查询窗口中执行的sql,无论是否成功,都会被记录到审计日志里面,查看审计日志可以访问审计日志页面,如下:

列表中会展示每条sql的执行用户、schema、状态和具体执行的sql。其他同事正在查询的时候你就看这个列表,十分有快感。

5、升级记录功能

升级记录功能并没有引入工作流,所以只是一个简单的记录,目前实现了应用升级记录、数据库升级记录和故障记录的功能,但是大家都希望不要手工录入,最好是提流程系统自己记录。这个从目前的环境来看,可能难以实现。

不过从我自己的体验来说,这种记录方式相比之前已经有很大改善。以数据库升级记录为例,以前的升级记录是放在一个nfs共享目录下的一个excel表中,目录比较深,跟sql文件的存档目录不在一个目录下,每次记录需要翻两次n级的目录,而且如果要找之前的一个升级sql,也不太好找,因为文件比较多,所以DB升级记录功能是这样的

在记录升级记录的时候直接把sql文件上传到服务器端的目录,然后列表中提供查看附件的入口,如下

点击详细内容,会跳转到如下页面

点击附件,如果是在Chrome浏览器上,会直接在一个新的窗口中显示出文本内容,如果是其他浏览器,会直接下载这个文件。附件直接在浏览器上访问真的很方便。Chrome下点击附件

这个版本实现的功能基本上就这些了,接下来打算在查询窗口的页面中支持对后端中间代理下的集群做DDL和DML的变更,中间件本身是没有办法支持这些的,所以我们实现的思路就是在查询窗口中选定schema之后,sql会被提交到代理后端所有的分片上去执行,并最终返回执行状态,从而达到验证的目的。目前我们是使用的脚本来完成,有点low。这个版本已经做了相当多的准备工作,所以实现这个功能并不会很难。目前来看NetopGO绑定了太多我们自己的业务场景,后续如果功能完善之后,会在通用性上下点功夫,做一个开源的版本出来。

原文链接:http://blog.tingyun.com/web/article/detail/600

转载于:https://www.cnblogs.com/TingyunAPM/p/5511850.html

听云数据库管理平台NetopGO简介相关推荐

  1. 爱可生云数据库管理平台助力车企开启创新云服务

    文章来源:爱可生云数据库 作者:爱可生 2018年6月7-8日,"第四届中国汽车产业信息化技术创新峰会"在上海顺利召开.来自国内外政府机构.汽车集团.整车企业的总经理.首席信息官. ...

  2. 如何一站式快速构建企业全场景数据库管理平台?

    简介:Gartner 的报告显示预计到2022年将有75%数据库将采用云数据库,与此同时,IDC预计到2024年传统部署数据库市场将达到13亿美元,企业数字化转型升级,积极拥抱开源.云原生数据库成为重 ...

  3. 产品解读 | 敏捷版数据库场景 一站式快速构建企业全场景数据库管理平台

    简介:Gartner 的报告显示预计到2022年将有75%数据库将采用云数据库,与此同时,IDC预计到2024年传统部署数据库市场将达到13亿美元,企业数字化转型升级,积极拥抱开源.云原生数据库成为重 ...

  4. 全球及中国混合云监控平台行业行业运营态势及投资规划报告2022-2028年

    全球及中国混合云监控平台行业行业运营态势及投资规划报告2022-2028年 详情内容请咨询鸿晟信合研究院! [全新修订]:2022年3月 [撰写单位]:鸿晟信合研究网 2021年全球混合云监控平台市场 ...

  5. 用Acceldata数据可观测性方案管理云数据平台Snowflake

    一.云数据平台Snowflake简介 在现代数据堆栈的所有部分中,没有一个像云数据平台Snowflake一样迅速崛起. 虽然作为 Databricks.Amazon Redshift和Google B ...

  6. 听云平台发布:移动应用性能黑洞报告

    1秒,2秒,3秒--据听云平台(www.tingyun.com)观测:在移动应用出现性能问题导致延时响应10秒后,有近5%的真实用户放弃使用该应用,并永久离开.而应用性能问题出现的频率与错误种类却绝对 ...

  7. uni-app简介、条件编译、App端Nvue开发、HTML5+、开发环境搭建、自定义组件、配置平台环境、uniCloud云开发平台

    uni-app简介 : 概述:uni-app是一个前端跨平台框架:会uni-app就可以用一套代码(类似vue语法)打包出安卓.ios.及各种小程序(微信.qq.支付宝等)端跨平台发布. 生态:完整的 ...

  8. 云帮平台的设计架构详解

    云帮社区版自8月31日开放免费下载以来,已经有不少小伙伴开始体验了我们的云帮产品,但真正了解云帮运行机制以及产品设计思想的朋友并不多,本篇文档从云帮的产品设计思路开始,逐步介绍云帮的技术架构以及各个特 ...

  9. 神州云服务平台(型号:DCC-CRL1000)基本配置教学视频

    教学视频只提供网络搭建与应用技能大赛第二部分基本配置部分视频,仅供大家学习使用. 2021年全国职业院校网络搭建及应用第二部分基本配置视频 由于在线播放视频有点模糊,所以给大家提供清晰的教学视频下载链 ...

最新文章

  1. Locust接口性能测试
  2. layui循环数据并渲染_从简单到复杂三维图形渲染管线
  3. python基础入门(9)之字典
  4. 测试驱动开发_DevOps之浅谈测试驱动开发
  5. 深入分析FreeDos -- 前言
  6. 网页端对接linux发起cc,(cc)实现Linux系统调用劫持
  7. php 显示图片,php随机显示图片的简单示例
  8. hbase使用restful接口进行数据操作
  9. 谈谈制作台历的心得——年初企业们比较喜欢的宣传方式
  10. Windows 编程[6] - 学习窗体生成的过程六: 最终的代码!
  11. 终于理解你的软件 搞那么多年了 (通用权限管理系统组件源码完善了7-8年)
  12. UE4导入字体 ttf
  13. c 教程网 linux,Linux基本命令C教程网cppcoursecom.ppt
  14. 复合梯形公式matlab代码,复合梯形公式
  15. 编译错误:invalid types ‘int[int]‘ for array subscrip-markdown编辑器
  16. get与post的解释与区别
  17. 屈原·渔父的算法追求
  18. 与北京相比较而言,杭州能不能挺进“一线”,还得看未来科技城---云城,第二机场入住云城周边是神助攻
  19. Oracle如何实现列转行
  20. JavaMail邮件系统中的addRecipient();和setRecipient();区别?

热门文章

  1. 多窗口售票:单件模式多线程实现
  2. ios 返回指定导航控制器
  3. 【hihocoder 1039 字符串消除】模拟
  4. 虚拟键码对照表与ASCII对照表的整理
  5. 从邵东电信恶性竞争事件问责运营商高层管理者
  6. arcmap常见错误及常用操作(待补充)
  7. emacs .emacs_使用Emacs应该做的6件事
  8. 前端:JS/37/canvas对象(画布对象),用canvas对象(画布)画一些基本的图像
  9. TypeScript 类
  10. 修改 JSON 对象的值