摘要:本文主要介绍GaussDB(DWS)数据库智能监控运维服务体系的设计规划和现状。
本文分享自华为云社区《眼观六路耳听八方还不知疲倦?数仓智能运维服务体系是怎么作到的?》,原文做者:鲁大师。web
早期,数据库系统仅仅提供SQL命令来查询其内部的运行状态,致使数据库运维操做门槛高,易用性差,DBA一度成为高度专业化的关键岗位,享受高薪和你们羡慕的目光的同时,也为企业的数据安全带来了不肯定性风险。而且,命令行运维不直观,严重依赖运维人员经验,不能作到快速的发现、定位、解决问题,致使数据库运维问题,发现难,定位难,解决难。算法
为了应对这个窘境,数据库运行状态可视化(数据库监控系统)应运而生,经过可视化的手段以人类便于理解的图表形式,将重点数据以图形化的手段展现给运维人员,从而显著的下降了数据库运维的门槛,提升了数据库运维的效率。这个阶段有一些表明性的产品好比:OEM(Oracle), ViewPoint(Teradata),等等。可是,这个时期用户的数据的规模不是很大,数据库也依然部署在用户本身的数据中心,依然是几个DBA运维几套数据库的阶段。数据库
随着云时代的到来,云数据库逐渐托管了客户的数据存储服务,云化将一切繁重的IT运维工做都集中在云后台管理了起来,从而把客户从专业,复杂,繁重的数据中心运维活动中解放了出来,使客户可以更加专一于其核心业务。同时,云服务提供商做为数据存储服务的提供者,则须要在IT运维与数据库运维上深耕细做,发挥其团队稳定,专业化程度高,掌握海量数据库运行数据的优点;充分利用目前机器学习、人工智能领域的科研成果,使用技术手段逐步提升每名运维人员所能管理的数据库数量,从而实现数据库运维工做的“减员增效”。另外一方面,数据库服务上云后,云服务提供商所须要运维的数据库数量与以前相比天差地别,之前的工具可能已经不适应云时代的需求。如何作好云上海量数据库的运维工做将成为云服务提供商的一个巨大挑战。segmentfault
传统意义上的数据库监控服务仅仅是指(1)采集数据库运行状态;(2)上报/存储数据库运行数据;(3)图形化展现数据库运行状态数据。可是,这仅仅是数据库智能监控运维体系的一部分。安全
若是把整个数据库智能监控运维体系比做一我的的话,传统意义上的数据库监控服务仅仅表明了,眼睛的角色。该服务只能作到发现问题,识别定位问题和解决问题都须要DBA的介入。所以DBA才是传统数据库监控运维体系中的核心要素,这也是DBA人才为什么如此关键的缘由之一。微信
而云时代的到来和大数据分析、人工智能等技术的成熟,给了数据库监控运维更多的想象空间。我能够在传统数据库监控(眼睛)的基础上,增长预测分析和根因判断模块,创建现象-根因-解决方案的映射关系(大脑),最后经过数据库管理模块执行解决方案(双手),从而实现从发现问题,定位问题,到解决问题的运维闭环。而且机器不一样于人类,只要算力容许,它能够作到眼观六路,耳听八方,不知疲倦,也不会以为无聊,7x24的盯着成百上千数据库系统的各类运行数据,不会放过任何一个微小的潜在问题。所以,数据库运维工做的智能化中,使用规则或算法固化DBA判断和决策经验将是很是重要的一环。运维
参考友商数据库监控运维体系的建设经验,结合GaussBD(DWS)数仓的自身特色,咱们准备从眼,脑,手三个方面发力创建闭环的数据库智能监控运维体系。机器学习
GaussDB(DWS)使用DMS来承载数据库的智能运维体系。DMS将会串起数据库运维过程当中的监控,分析,处理三个步骤,分别对应上文提到的数据库智能运维体系中的眼,脑,手三部分,从概念设计上造成运维体系的闭环。数据库设计
监控部分:主要负责数据库运行状态数据的采集、存储和可视化展现,这一部分基本等同于传统的数据库的监控业务。这一部分功能和指标的选取,咱们参考了友商以及运维团队的建议,将监控指标分为底层IT系统运维指标和数据库系统运维指标两类,正在分别逐步补齐和完善中。监控模块是DMS数据库运智能监控运维体系首先发力,并要在短期内造成竞争力的模块。工具
分析部分:做为整个DMS数据库智能运维体系的大脑,该部分是承担运维数据分析与决策的关键模块。该部分由于其复杂性,目前还处于设计构想阶段。初步规划有三个子模块,时间序列的趋势分析子模块,该模块主要用来作趋势预测分析,用来预判潜在的问题;逻辑推断子模块,用户分析问题现象与实际根因之间的关系,能够实现从问题现象到触发缘由的推断,初步考虑使用搜索引擎技术实现;知识图谱子模块,主要用于现象、根因与解决方案之间的映射关系表示,方便从定位的根因中找到最合适的解决方案。
处理部分:主要由DWS提供的数据库管理功能承担,目前能够提供数据库参数配置(可配置参数少,须要进一步丰富),工做负载队列配置,集群安装/卸载,集群重启,集群扩容,集群数据重分布以及节点温备等运维能力。
为了进一步理清数据库智能运维产品的设计思路,咱们计划从用户的角度分析其需求,而后从需求导出功能(工具)页面设计,从功能(工具)页面总结出所需监控数据库指标。经过分析数据库监控系统的各类使用场景,咱们对数据库监控系统的用户作了用户角色画像,定义了数据库运维过程当中的三种角色,并认为不一样角色仅仅关注数据库运维的一个侧面。在实际的数据库运维场景中,可能同一个用户会身兼多种角色,可是这里咱们为了方便分析仅仅从逻辑上定义这三种角色。
应用开发:主要指客户侧的应用开发角色,他们负责设计具体的业务SQL。他们关心业务SQL执行的正确性和执行效率。应用开发工程师须要用到web SQL来调试其SQL语句的查询效率;须要用到查询监控页面来查看业务SQL在实际执行场景中的表现和资源消耗;须要用到工做负载队列监控来确认新开发的业务SQL是否在合适的工做负载队列中,以及所配置的熔断规则是否合理,等等。
SRE:指的是华为云侧的数据库运维角色,他们一般一我的须要负责成百上千个集群的稳定运行,他们须要可以迅速识别出集群运行状态的异常,集群资源瓶颈以及集群潜在的扩容需求,而且他们还须要积极响应客户的求助,帮助客户定位,确认和解决问题。SRE须要节点资源监控来识别集群中的资源倾斜;须要识别集群资源消耗基线变化趋势,从而识别到扩容需并提醒用户;须要关注存储变化以推算下一次常规保养的时间点并自动规划;同时还须要响应用户需求,使用DMS提供的问题定位工具,辅助用户定位现网问题。
DBA:指的是GaussDB(DWS)数据库集群专家,他们熟悉数据库设计方法论,数据库的调优,数据库问题定位。他们须要分析定位数据库的故障,从资源和业务角度运用多种工具综合分析定位系统故障,系统稳定性和潜在瓶颈;也须要帮助用户从业务、数据库设计的角度去推荐数据库的索引,分布列配置,根据用户业务水平推荐用户购买合适的集群规模等等;同时还须要辅助应用开发工程师调优引发性能劣化的SQL语句;在找到确切的故障根因后,推荐合适的解决方案修复故障。
在通常来讲在公有云场景中,用户角色通常只有应用开发和SRE两种,公有云场景中的SRE角色每每涵盖了DBA的角色。咱们在这里将运维角色细分的目的,实际上是要展现一个完整的运维场景沙盘,将客户的运维诉求分门别类的罗列出来,为后续进一步的功能(工具)页面设计和运维场景设计提供基础。
数据库监控指标数量多,形式和逻辑复杂,根据指标类型能够分为逻辑关系与物理关系两种。其中逻辑关系指数库内部逻辑关系,好比,最顶层是数据库,数据库中有多个schema,schema中有多个表,数据库中有多个用户,一个用户能够有多个schema和表。而物理关系是指,gaussDB(DWS)集群的拓扑关系,好比,一个数据库集群是由多个计算节点构成,每一个计算节点上会部署多个计算实例。这两种指标关系都会影响到数据库指标的采集维度和聚合展现维度。
由于上面已经分析了指标的维度关系,因此咱们下面将只讨论具体的数据库指标类型,而不会对指标的维度进行展开。数据库是一个软件服务,而它必须运行在一个宿主机和操做系统之上,所以监控指标大体能够分为两类:
系统资源类指标:这一类指标主要描述系统上的各类资源消耗
数据库相关指标:这一类指标主要描述数据性能相关的业务负载水平
上图总结了DMS采集的数据库主要指标,具体指标项按照指标大类,原子指标和派生指标三个层次排列。不过,目前该指标地图并不固定,将来随着GaussDB(DWS)智能运维系统的逐步成熟,该指标地图会逐步完善并固定下来。
由于MPP数据库的特殊构型,数据库实例是做为进程试运行在节点上的。所以,咱们的指标设计其实自己会自带维度属性,好比磁盘使用率指标,最小的维度应该是某个DN实例,上一级是节点级,再上一级就是整个集群。因此,咱们实际提供的监控指标应该是指标维度关系与集群指标地图的一个笛卡尔积。为了描述这种情形,咱们引入原子指标,派生指标和组合指标的概念。以上面的磁盘使用率为例,咱们将DN实例的磁盘使用率做为原子指标,而其余维度的磁盘使用率做为派生指标。
目前DMS的指标建设更多停留在原子指标和派生指标阶段,由于咱们认为应该首先补齐数据库的基础指标造成基本的监控运维能力以后,才能结合用户使用习惯,深度挖掘指标在各个维度下的运维含义以及多种指标组合后所表明的运维意义。
最后,总结一下,本文主要介绍了GaussDB(DWS)数据库智能监控运维服务体系的设计规划和现状。本文做为DMS系列文章的第一篇,主要起到一个概要介绍的做用,让你们对GaussDB(DWS)数据库智能监控运维服务体系有个概略的认识,更多干货细节欢迎期待后续的文章。
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料哦~