一种旁路的数据库监控方法及系统与流程

文档序号:26584845发布日期:2021-09-10 18:48阅读:222来源:国知局
一种旁路的数据库监控方法及系统与流程

1.本发明涉及数据库监控技术领域,具体地,涉及一种旁路的数据库监控方法及系统。


背景技术:

2.数据库是现代软件系统的重要组成部分,其功能是提供持久化的数据存储,并通过sql提供事物处理能力或者数据分析能力。数据库一般以特定端口服务的方式为系统提供服务。数据库的监控,尤其是数据库性能监控是软件系统运维的重要部分,对于保障整体系统运行有着举足轻重的作用。
3.传统的数据库运行性能与业务指标的监控基于对数据库日志的解析,这种方法存在如下不足:
4.1)需要侵入数据库运行所在系统,存在安全隐患。
5.2)需要消耗服务器的资源,对数据库本身的运行性能造成影响。
6.3)受限于数据库的日志生成形式,无法并发高效解析,性能上存在瓶颈。
7.专利文献cn112540897(申请号:202011445234.9)公开了一种数据库监控方法、装置、服务器及介质,包括:在目标虚拟机运行时,获取所述目标虚拟机所对应数据库语句块的监控信息;获取所述数据库语句块所包含语句的指令偏移和语句类型,其中,所述数据库语句块包括至少一个语句;根据所述监控信息、所述指令偏移和所述语句类型,确定所述目标虚拟机运行中执行时间最长的目标语句。


技术实现要素:

8.针对现有技术中的缺陷,本发明的目的是提供一种旁路的数据库监控方法及系统。
9.根据本发明提供的一种旁路的数据库监控方法,包括:
10.步骤s1:在数据链路层增加旁路处理,在数据库服务器与客户端交互时,服务器发送和接收的数据包通过linux内核做过滤和缓冲处理,并将处理后的数据包传递给上层应用程序;
11.步骤s2:上层应用程序解析旁路获取的数据包帧结构以及数据包负载,获得客户端与数据库服务器每次交互的详细内容;
12.步骤s3:依据不同数据库相对应的交易模型,将解析出来的数据记录关联汇聚,形成对客户端与数据库服务器一次操作的完整交互记录,定义为一次交易;
13.步骤s4:对交易记录中预设字段进行提取汇聚,形成不同的报表,依据相对应预设的告警规则生成告警记录;
14.步骤s5:对提取的指标进行分析处理,挖掘性能相关信息;
15.所述交易模型将解析的数据记录关联汇聚形成完整的交易记录。
16.优选地,所述步骤s1中旁路技术包括:网络镜像、采用物理交换机采集以及虚拟交
换机设备采集;
17.所述网络镜像包括:通过libpcap或dpdk对通过数据链路层的数据包进行拷贝或者缓冲,获得网络数据流量的镜像;
18.所述采用物理交换机采集包括:通过tap设备对通过物理交换机的数据流量进行实时捕获,并适用内置的流量复制/汇聚引擎进行复制或汇聚,获得网络数据流量;
19.所述虚拟交换机设备采集包括:通过控制器软件对经过虚拟交换机设备的数据流量进行复制与转发。
20.优选地,所述步骤s2包括:
21.步骤s2.1:数据库登陆session,解析客户端访问数据库服务器的登陆过程,获取数据库的相关信息与当前session的内容,数据库服务器版本、登入模式以及是否加密;
22.步骤s2.2:通过解析数据包将复用的语句与使用的游标建立联系,从而在语句复用的调用中获得实际执行的语句内容;
23.步骤s2.3:对sql语句的执行结果进行解析,获得语句是否执行成功以及执行结果信息。
24.优选地,所述步骤s3中依据不同数据库相对应的交易模型包括:同步模型、异步模型以及数据驱动状态转移模型;
25.所述同步模型包括请求

响应模式下的交易关联模型,用于sql语句的调用,在客户端发出的请求流量被数据库服务器处理后,将执行结果返回给客户端;
26.所述异步模型包括总线模式下的交易关联模型,客户端在发送请求流量给数据库服务器后,通过主动查询或被动通知的方式得到执行结果;
27.所述数据驱动状态转移模型包括数据库服务器对sql语句的执行涉及在多个执行状态上的转移,通过不同执行状态之间的转移条件将多次交互的数据记录关联起来的交易模型。
28.优选地,所述步骤s4包括:对交易记录中预设字段通过高离散度sql动态基线告警方法进行特征提取汇聚,形成不同的报表,依据相对应预设的告警规则生成告警记录。
29.根据本发明提供的一种旁路的数据库监控系统,包括:
30.模块m1:在数据链路层增加旁路处理,在数据库服务器与客户端交互时,服务器发送和接收的数据包通过linux内核做过滤和缓冲处理,并将处理后的数据包传递给上层应用程序;
31.模块m2:上层应用程序解析旁路获取的数据包帧结构以及数据包负载,获得客户端与数据库服务器每次交互的详细内容;
32.模块m3:依据不同数据库相对应的交易模型,将解析出来的数据记录关联汇聚,形成对客户端与数据库服务器一次操作的完整交互记录,定义为一次交易;
33.模块m4:对交易记录中预设字段进行提取汇聚,形成不同的报表,依据相对应预设的告警规则生成告警记录;
34.模块m5:对提取的指标进行分析处理,挖掘性能相关信息;
35.所述交易模型将解析的数据记录关联汇聚形成完整的交易记录。
36.优选地,所述模块m1中旁路技术包括:网络镜像、采用物理交换机采集以及虚拟交换机设备采集;
37.所述网络镜像包括:通过libpcap或dpdk对通过数据链路层的数据包进行拷贝或者缓冲,获得网络数据流量的镜像;
38.所述采用物理交换机采集包括:通过tap设备对通过物理交换机的数据流量进行实时捕获,并适用内置的流量复制/汇聚引擎进行复制或汇聚,获得网络数据流量;
39.所述虚拟交换机设备采集包括:通过控制器软件对经过虚拟交换机设备的数据流量进行复制与转发。
40.优选地,所述模块m2包括:
41.模块m2.1:数据库登陆session,解析客户端访问数据库服务器的登陆过程,获取数据库的相关信息与当前session的内容,数据库服务器版本、登入模式以及是否加密;
42.模块m2.2:通过解析数据包将复用的语句与使用的游标建立联系,从而在语句复用的调用中获得实际执行的语句内容;
43.模块m2.3:对sql语句的执行结果进行解析,获得语句是否执行成功以及执行结果信息。
44.优选地,所述模块m3中依据不同数据库相对应的交易模型包括:同步模型、异步模型以及数据驱动状态转移模型;
45.所述同步模型包括请求

响应模式下的交易关联模型,用于sql语句的调用,在客户端发出的请求流量被数据库服务器处理后,将执行结果返回给客户端;
46.所述异步模型包括总线模式下的交易关联模型,客户端在发送请求流量给数据库服务器后,通过主动查询或被动通知的方式得到执行结果;
47.所述数据驱动状态转移模型包括数据库服务器对sql语句的执行涉及在多个执行状态上的转移,通过不同执行状态之间的转移条件将多次交互的数据记录关联起来的交易模型。
48.优选地,所述模块m4包括:对交易记录中预设字段通过高离散度sql动态基线告警方法进行特征提取汇聚,形成不同的报表,依据相对应预设的告警规则生成告警记录。
49.与现有技术相比,本发明具有如下的有益效果:
50.1、本发明基于旁路数据方案,实行了无侵入的数据监控,大大提高了部署的安全性和灵活性,有着广阔的适用前景;
51.2、本发明由于无侵入,不输出log,因此该发明对数据库运行时环境,没有运行时干扰,没有cpu、内存和磁盘等额外负担,尤其适用于高负荷、高实时等关键场景,譬如促销、秒杀等,有非常高的实际业务价值;
52.3、本发明的旁路技术,可以实现高并发的监控和分析,可以高效处理大流量场景,适用于大型复杂场景;
53.4、本发明是一种通用的方案,与数据库类型解耦,与部署数据库的硬件平台和操作系统等无关,实现相应的数据库协议解码和模型即可通过本方案进行监控,因此对比传统方案,本发明具有更好的通用性和兼容性;
54.5、本发明可以实现多种数据库(包括多种数据版本)混合的统一监控,对于业务迁移,尤其是现在传统数据库到分布式数据的迁移,可以起到充分有效的业务监控和保障。
附图说明
55.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
56.图1为一种旁路的数据库监控系统示意图。
具体实施方式
57.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
58.实施例1
59.针对上述现有技术中的缺陷,本发明要解决的技术问题体现在以下几点:
60.1、提出了通过旁路抓包手段来获取数据库业务流量进行解析的方案,避免侵入数据库所在系统。
61.2、提出了基于客户端与数据库服务器操作交互的交易关联模型,解决了在无法直接使用日志的情况下对数据库业务及其内部数据状态的定位与还原的难题。
62.3、提出了高离散度sql动态基线告警方法及系统等数据指标提取算法,解决了数据库sql语句高离散度下监控与告警的性能瓶颈。
63.本发明提供的一种旁路的数据库监控方法,通过对数据库服务器所在系统会用旁路技术获取的数据包进行解析,并依据定义的交易模型关联出交易记录数据,对交易数据的指标进行提取分析,从而实现对数据库系统的性能监控与业务告警等功能。
64.参考图1,一种旁路的数据库监控方法,包括如下步骤:
65.步骤1:旁路数据获取,在数据链路层增加一个旁路处理,不干扰数据库服务器所在的系统自身的网络协议栈的处理,数据库服务器与客户端之间交互时,服务器所发送和接受的数据包,包括数据库的操作指令和业务数据,通过linux内核做过滤和缓冲处理,最后直接传递给上层应用程序;使用旁路处理的目的是为了避免低数据库服务器所在系统的侵入,同时也避免了对具体数据库系统实现的依赖;
66.步骤2:解析数据,通过解析旁路获取的数据包帧结构与其负载,获得客户端与数据库服务器每一次交互的详细内容。本步骤输入为帧结构的数据包负载,输出为时间有序的数据帧详细内容记录。
67.步骤3:交易关联,依据不同数据库相对应的交易模型,将解析出来的数据记录关联汇聚,即将解析出来的时间有序的数据帧详细内容记录之间,关联成一笔或多笔交易记录,形成对客户端与数据库服务器一次操作的完整交互的记录,定义为一次交易。本步骤输入为时间有序、键值对结构的数据帧详细内容记录,输出为交易记录。
68.步骤4:指标提取,通过对交易记录中特定字段进行提取汇聚,从而形成不同的报表,依据相对应的告警规则生成告警记录。本步骤输入为交易记录,输出为数据库性能监控报表或者告警记录。
69.步骤5:纬度分析,通过对提取的指标进行分析处理,挖掘性能相关信息,例如“高离散度sql动态基线告警方法及系统”是本发明的一种指标提取方法,但本发明不限于这种
方法,还可包括秒级数据提取展示、应用层视图展示等。
70.其中,步骤1包括如下步骤:
71.步骤1.1:网络镜像,通过libpcap或dpdk,对通过数据链路层的数据包进行拷贝或者缓冲,从而获得网络数据流量的镜像。
72.步骤1.2:物理交换机等设备采集,通过tap设备对通过物理交换机的数据流量进行实时捕获,并适用内置的流量复制/汇聚引擎进行复制或汇聚,获得网络数据流量。
73.步骤1.3:虚拟交换机设备采集,通过控制器软件,对经过虚拟交换机设备的数据流量进行复制与转发。虚拟交换机设备包括openstack、sdn(open flow)等。
74.步骤2包括如下步骤:
75.步骤2.1:数据库登陆session,解析客户端访问数据库服务器的登陆过程,获取数据库的相关信息与当前session的内容,包括但不限于数据库服务器版本、登入模式以及是否加密等。
76.步骤2.2:语句复用,在数据库系统中,使用游标等方式,对于执行的sql语句进行复用,包括静态语句与动态预编译语句,从而减小网络交互的流量。通过解析数据包,将复用的语句与使用的游标等建立联系,从而在语句复用的调用中获得实际执行的语句内容。
77.步骤2.3:sql执行结果,对sql语句的执行结果进行解析,获得语句是否执行成功以及执行结果等信息。
78.步骤3包括如下步骤:
79.步骤3.1:同步模型,请求

响应等模式下的交易关联模型,常用于简单的sql语句的调用,在客户端发出的请求流量被数据库服务器处理后,将执行结果返回给客户端。
80.步骤3.2:异步模型,总线等模式下的交易关联模型,客户端在发送请求流量给数据库服务器后,并不直接获得执行结果,而是通过主动查询或者被动通知的方式得到执行结果。
81.步骤3.3:数据驱动状态转移模型,数据库服务器对复杂的sql语句的执行涉及在多个执行转台上的转移,通过这些不同执行状态与其之间的转移条件将多次交互的数据记录关联起来的交易模型。
82.本发明提供的旁路的数据库监控系统,可以通过本发明提供的旁路的数据库监控方法中的步骤流程实现。本领域技术人员,可以将所述旁路的数据库监控方法理解为旁路的数据库监控系统的一个优选例。
83.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
84.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相
互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1