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